Amazon Cognito 사용자 풀에서 SAML 자격 증명 공급자로서 AD FS를 설정하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 2월 7일

Amazon Cognito 사용자 풀에서 SAML 2.0(Security Assertion Markup Language 2.0) IdP(자격 증명 공급자)로 AD FS(Active Directory Federation Services)를 사용하고 싶습니다. 그러려면 어떻게 설정해야 합니까?

간략한 설명

Amazon Cognito 사용자 풀은 AD FS와 같은 SAML IdP를 통한 로그인을 비롯하여 타사(연동)를 통한 로그인을 허용합니다. 자세한 내용은 타사를 통한 사용자 풀 로그인 추가사용자 풀에 SAML 자격 증명 공급자 추가를 참조하십시오.

Amazon Elastic Compute Cloud(Amazon EC2) Windows 인스턴스에서 AD FS 서버 및 도메인 컨트롤러를 설정한 후 Amazon Cognito의 호스팅 웹 UI를 사용하여 설정을 사용자 풀과 통합할 수 있습니다.

중요: 이 해결 방법을 수행하려면 사용자가 소유한 도메인 이름이 필요합니다. 도메인을 소유하지 않은 경우 Amazon Route 53 또는 다른 DNS(Domain Name System) 서비스를 통해 새 도메인을 등록할 수 있습니다.

해결 방법

앱 클라이언트가 있는 Amazon Cognito 사용자 풀 생성

자세한 내용은 자습서: 사용자 풀 생성앱 클라이언트 추가(AWS Management Console)를 참조하십시오.

참고: 사용자 풀을 생성할 때 표준 속성 email이 기본적으로 선택됩니다. 사용자 풀 속성에 대한 자세한 내용은 사용자 풀 속성 구성을 참조하십시오.

EC2 Windows 인스턴스 설치

EC2 Windows 인스턴스를 구성한 후 시작하고 거기에 AD FS 서버와 도메인 컨트롤러를 설치합니다. 자세한 내용은 Amazon Cognito 사용자 풀의 연동 기능을 지원하는 AD FS를 Amazon EC2 Windows 인스턴스에 설치하려면 어떻게 해야 합니까?를 참조하십시오.

Amazon Cognito에서 AD FS 서버를 SAML IdP로서 구성

자세한 내용은 사용자 풀의 SAML 자격 증명 공급자 생성 및 관리(AWS Management Console)를 참조하고 사용자 풀에 SAML 2.0 자격 증명 공급자를 구성하려면의 지침을 따릅니다.

SAML IdP를 생성할 때 [Metadata document]에는 메타데이터 문서 엔드포인트 URL을 붙여 넣거나 .xml 메타데이터 파일을 업로드합니다.

IdP 속성에서 사용자 풀 속성으로 이메일 주소 매핑

자세한 내용은 사용자 풀의 자격 증명 공급자 속성 매핑 지정을 참조하고 SAML 공급자 속성 매핑을 지정하려면의 지침을 따르십시오.

SAML 속성을 추가할 때 [SAML Attribute]에는 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress를 입력합니다. [User pool attribute]의 목록에서 [Email]을 선택합니다.

Amazon Cognito에서 앱 클라이언트 설정 변경

  1. Amazon Cognito 콘솔의 사용자 풀 관리 페이지에 있는 [App integration]에서 [App client settings]를 선택합니다. 그리고 다음을 수행합니다.
    [Enabled identity providers]에서 구성한 SAML IdP의 확인란을 선택합니다. 예를 들어 ADFS를 선택합니다.
    [Callback URL(s)]에 로그인 후 사용자를 리디렉션할 URL을 입력합니다.
    [Sign out URL(s)]에 로그아웃 후 사용자를 리디렉션할 URL을 입력합니다.
    [Allowed OAuth Flows]에서 [Authorization code grant] 및 [Implicit Grant] 확인란을 선택합니다.
    [Allowed OAuth Scopes]에서 확인란을 모두 선택합니다.
  2. [Save changes]를 선택합니다. 자세한 내용은 앱 클라이언트 설정 개요를 참조하십시오.

Amazon Cognito 호스팅 웹 UI를 사용하여 설정 테스트

  1. 웹 브라우저에 다음 URL을 입력합니다.
    https://domainNamePrefix.auth.region.amazoncognito.com/login?response_type=token&client_id=appClientId&redirect_uri=https://www.example.com
    참고:
    URL에는 사용자 풀 및 앱 클라이언트에서 가져온 값을 사용합니다. 사용자 풀의 도메인(도메인 이름 접두사 및 AWS 리전 포함)은 Amazon Cognito 콘솔의 [App integration] 페이지에서 확인할 수 있습니다. 앱 클라이언트 ID는 [App client settings]에서 확인할 수 있습니다. https://www.example.com은 실제 SAML IdP의 콜백 URL로 대치합니다.
  2. 구성한 SAML IdP의 이름을 선택합니다. AD FS 인증 페이지로 리디렉션됩니다.
  3. [Sign in with your organizational account]에 Active Directory 사용자의 사용자 이름과 암호를 입력합니다.
  4. [Sign in]을 선택합니다. 성공적으로 로그인되면 Amazon Cognito에서 사용자 풀 토큰과 성공 SAML 응답이 반환됩니다. SAML 응답을 확인하는 방법에 대한 자세한 내용은 문제 해결을 위해 브라우저에서 SAML 응답을 보는 방법을 참조하십시오.
    참고:
    디코딩된 SAML 응답에는 필수 속성인 NameID가 포함되어 있습니다.