Amazon Cognito 사용자 풀을 위한 타사 ID 제공업체(IdP)를 사용하여 AWS IAM Identity Center(AWS Single Sign-On의 후속 서비스)를 구성하려고 합니다.
간략한 설명
Amazon Cognito 사용자 풀을 사용하면 타사 IdP를 통해 로그인할 수 있습니다. 사용자는 IAM Identity Center를 사용하여 SAML 2.0(Security Assertion Markup Language 버전 2.0) IdP를 통해 페더레이션할 수 있습니다. 자세한 내용은 Amazon Cognito 사용자 풀에서 페더레이션 로그인이 작동하는 방법을 참조합니다.
사용자 풀은 IAM Identity Center와 통합되어 사용자가 Amazon Cognito에서 사용자 풀 토큰을 가져올 수 있습니다. 자세한 내용은 사용자 풀에 토큰 사용을 참조합니다.
해결 방법
Amazon Cognito 사용자 풀을 IAM Identity Center와 통합하려면, 다음 단계를 수행합니다.
참고: 앱 클라이언트가 있는 사용자 풀이 이미 있는 경우, 다음 섹션을 건너뜁니다.
앱 클라이언트 및 도메인 이름을 사용하여 Amazon Cognito 사용자 풀 만들기
-
사용자 풀을 만듭니다.
-
앱 클라이언트를 추가하고 호스팅된 웹 UI를 설정합니다.
-
사용자 풀의 도메인 이름을 추가합니다.
참고: 이미 작동하는 IAM Identity Center 환경이 있는 경우, 다음 섹션을 건너뜁니다.
IAM Identity Center 활성화 및 사용자 추가
-
IAM Identity Center를 활성화하기 전에 전제 조건 및 고려 사항을 검토합니다.
-
IAM Identity Center를 활성화합니다.
-
ID 소스를 선택하고 사용자를 만듭니다.
IAM Identity Center 콘솔에서 SAML 애플리케이션 구성하기
-
IAM Identity Center 콘솔을 연 다음, 탐색 창에서 애플리케이션을 선택합니다.
-
애플리케이션 추가 및 사용자 지정 SAML 2.0 애플리케이션 추가를 선택한 후 다음을 선택합니다.
-
애플리케이션 구성 페이지에서 디스플레이 이름과 설명을 입력합니다.
-
IAM Identity Center SAML 메타데이터 파일의 URL을 복사하거나 다운로드 하이퍼링크를 선택합니다. 이후 단계에서 이러한 리소스를 사용하여 사용자 풀에 IdP를 생성합니다.
-
애플리케이션 메타데이터에서 메타데이터 값 수동 입력을 선택합니다. 그런 다음, 다음 값을 입력합니다.
**중요:**도메인 접두사, 리전 및 사용자 풀 ID 값을 사용자 환경에 맞는 정보로 바꾸어야 합니다.
애플리케이션 어설션 소비자 서비스(ACS) URL: https://<domain-prefix>.auth.<region>.amazoncognito.com/saml2/idpresponse
애플리케이션 SAML 대상: urn:amazon:cognito:sp:<userpool-id>
-
제출을 선택합니다. 그런 다음, 추가한 애플리케이션의 세부 정보 페이지로 이동합니다.
-
작업 드롭다운 목록을 선택하고 속성 매핑 편집을 선택합니다. 그런 다음, 다음 속성을 입력합니다.
애플리케이션의 사용자 속성: 주제
참고: 제목은 미리 채워져 있습니다.
IAM Identity Center에서 이 문자열 값 또는 사용자 속성에 매핑합니다: ${user:subject}
형식: 영구
애플리케이션의 사용자 특성입니다: 이메일
이 문자열 값 또는 IAM Identity Center의 사용자 속성에 매핑합니다: ${user:email}
형식: 기본
매핑된 속성은 로그인할 때, Amazon Cognito로 전송됩니다. 사용자 풀의 모든 필수 속성이 여기에 매핑되어 있는지 확인합니다. 매핑에 사용할 수 있는 속성에 대해 자세히 알아보려면, 지원되는 IAM Identity Center 속성을 참조합니다.
-
변경 사항을 저장합니다.
-
사용자 할당 버튼을 선택한 다음, 사용자를 애플리케이션에 할당합니다.
사용자 풀에서 IAM Identity Center를 SAML IdP로 구성하기
- 사용자 풀에서 SAML IdP를 구성합니다. 다음 설정을 적용합니다.
메타데이터 문서에서 메타데이터 URL을 제공하거나 이전 섹션의 4단계에서 다운로드한 파일을 업로드합니다. 자세한 내용은 타사 SAML ID 공급업체와 Amazon Cognito 사용자 풀 통합하기를 참조합니다.
SAML 공급자 이름을 입력합니다. 자세한 내용은 SAML ID 공급자 이름 선택을 참조합니다.
(선택 사항) SAML 식별자를 입력합니다.
- SAML 공급자 속성 매핑 구성을 클릭합니다. 다음 설정을 적용합니다.
SAML 속성 필드에 이전 섹션의 7단계에서 제공한 사용자 속성 값과 일치하는 이메일 값을 입력합니다. 사용자 풀 속성 필드의 드롭다운 목록에서 이메일을 선택합니다.
참고: 이전 섹션의 7단계에서 IAM Identity Center에 구성된 다른 특성을 추가합니다.
- 변경 사항을 저장합니다.
IdP와 사용자 풀 앱 클라이언트 통합
-
새 Amazon Cognito 콘솔에 로그인합니다.
-
사용자 풀을 선택하고 적절한 사용자 풀을 선택합니다.
-
앱 통합 탭을 선택한 다음, 앱 클라이언트 목록을 선택합니다.
-
적절한 앱 클라이언트를 선택합니다.
-
호스팅된 UI 섹션에서 편집을 선택합니다.
-
적절한 IdP를 선택합니다.
-
변경 사항을 저장합니다.
설정 테스트하기
- 호스팅된 UI를 시작하거나 다음 명명 패턴을 사용하여 로그인 엔드포인트 URL을 구성합니다.
https://example_domain_prefix.auth.example_region.amazoncognito.com/login?response_type=token&client_id=example_client_id&redirect_uri=example_redirect_url
예시 https://my-user-pool.auth.us-east-1.amazoncognito.com/login?response_type=code&client_id=a1b2c3d4e5f6g7h8i9j0k1l2m3&redirect_uri=https://example.com
OAuth 2.0 부여 유형의 경우, 인증 코드 부여를 선택하여 사용자가 로그인할 때 로그인 엔드포인트가 Amazon Cognito에 인증 코드를 반환하라는 메시지를 표시하도록 합니다. OAuth 2.0 부여 유형의 경우, 사용자가 로그인할 때 Amazon Cognito가 액세스 토큰을 반환하도록 암시적 부여를 선택합니다. 그런 다음, URL에서 response_type=code를 response_type=token로 바꿉니다.
- IAM IdC를 선택합니다.
앱 클라이언트의 콜백 URL로 리디렉션되는 경우, 브라우저에서 이미 사용자로 로그인한 것입니다. 사용자 풀 토큰은 웹 브라우저의 주소 표시줄의 URL에 바로 나타납니다.
참고: 이 단계를 건너뛰려면, 다음 명명 패턴을 사용하여 인증 엔드포인트 URL을 만듭니다.
https://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/authorize?response_type=token&identity_provider=samlProviderName&client_id=yourClientId&redirect_uri=redirectUrl&scope=allowedOauthScopes
-
사용자 자격 증명을 입력하고 로그인을 선택합니다.
-
브라우저의 주소 표시줄에 Amazon Cognito의 코드 또는 토큰이 포함된 콜백 URL로 리디렉션되면 설정이 완료된 것입니다.
참고: Amazon Cognito는 서비스 공급자(SP)가 시작한 로그인만 지원합니다. 설정을 테스트하려면, 로그인 엔드포인트 또는 권한 부여 엔드포인트를 사용해야 합니다. AWS 액세스 포털을 사용하여 IdP 시작 로그인을 IAM Identity Center에 시작하면 작동하지 않습니다.