IAM Identity Center를 Amazon Cognito 사용자 풀과 통합하려면 어떻게 해야 하나요?

4분 분량
0

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 사용자 풀 만들기

  1. 사용자 풀을 만듭니다.

  2. 앱 클라이언트를 추가하고 호스팅된 웹 UI를 설정합니다.

  3. 사용자 풀의 도메인 이름을 추가합니다.

참고: 이미 작동하는 IAM Identity Center 환경이 있는 경우, 다음 섹션을 건너뜁니다.

IAM Identity Center 활성화 및 사용자 추가

  1. IAM Identity Center를 활성화하기 전에 전제 조건 및 고려 사항을 검토합니다.

  2. IAM Identity Center를 활성화합니다.

  3. ID 소스를 선택하고 사용자를 만듭니다.

IAM Identity Center 콘솔에서 SAML 애플리케이션 구성하기

  1. IAM Identity Center 콘솔을 연 다음, 탐색 창에서 애플리케이션을 선택합니다.

  2. 애플리케이션 추가사용자 지정 SAML 2.0 애플리케이션 추가를 선택한 후 다음을 선택합니다.

  3. 애플리케이션 구성 페이지에서 디스플레이 이름설명을 입력합니다.

  4. IAM Identity Center SAML 메타데이터 파일의 URL을 복사하거나 다운로드 하이퍼링크를 선택합니다. 이후 단계에서 이러한 리소스를 사용하여 사용자 풀에 IdP를 생성합니다.

  5. 애플리케이션 메타데이터에서 메타데이터 값 수동 입력을 선택합니다. 그런 다음, 다음 값을 입력합니다.

**중요:**도메인 접두사, 리전사용자 풀 ID 값을 사용자 환경에 맞는 정보로 바꾸어야 합니다.

애플리케이션 어설션 소비자 서비스(ACS) URL: https://<domain-prefix>.auth.<region>.amazoncognito.com/saml2/idpresponse
애플리케이션 SAML 대상: urn:amazon:cognito:sp:<userpool-id>

  1. 제출을 선택합니다. 그런 다음, 추가한 애플리케이션의 세부 정보 페이지로 이동합니다.

  2. 작업 드롭다운 목록을 선택하고 속성 매핑 편집을 선택합니다. 그런 다음, 다음 속성을 입력합니다.

애플리케이션의 사용자 속성: 주제
참고: 제목은 미리 채워져 있습니다.
IAM Identity Center에서 이 문자열 값 또는 사용자 속성에 매핑합니다: ${user:subject}
형식: 영구

애플리케이션의 사용자 특성입니다: 이메일
이 문자열 값 또는 IAM Identity Center의 사용자 속성에 매핑합니다: ${user:email}
형식: 기본

매핑된 속성은 로그인할 때, Amazon Cognito로 전송됩니다. 사용자 풀의 모든 필수 속성이 여기에 매핑되어 있는지 확인합니다. 매핑에 사용할 수 있는 속성에 대해 자세히 알아보려면, 지원되는 IAM Identity Center 속성을 참조합니다.

  1. 변경 사항을 저장합니다.

  2. 사용자 할당 버튼을 선택한 다음, 사용자를 애플리케이션에 할당합니다.

사용자 풀에서 IAM Identity Center를 SAML IdP로 구성하기

  1. 사용자 풀에서 SAML IdP를 구성합니다. 다음 설정을 적용합니다.

메타데이터 문서에서 메타데이터 URL을 제공하거나 이전 섹션의 4단계에서 다운로드한 파일을 업로드합니다. 자세한 내용은 타사 SAML ID 공급업체와 Amazon Cognito 사용자 풀 통합하기를 참조합니다.

SAML 공급자 이름을 입력합니다. 자세한 내용은 SAML ID 공급자 이름 선택을 참조합니다.

(선택 사항) SAML 식별자를 입력합니다.

  1. SAML 공급자 속성 매핑 구성을 클릭합니다. 다음 설정을 적용합니다.

SAML 속성 필드에 이전 섹션의 7단계에서 제공한 사용자 속성 값과 일치하는 이메일 값을 입력합니다. 사용자 풀 속성 필드의 드롭다운 목록에서 이메일을 선택합니다.

참고: 이전 섹션의 7단계에서 IAM Identity Center에 구성된 다른 특성을 추가합니다.

  1. 변경 사항을 저장합니다.

IdP와 사용자 풀 앱 클라이언트 통합

  1. Amazon Cognito 콘솔에 로그인합니다.

  2. 사용자 풀을 선택하고 적절한 사용자 풀을 선택합니다.

  3. 앱 통합 탭을 선택한 다음, 앱 클라이언트 목록을 선택합니다.

  4. 적절한 앱 클라이언트를 선택합니다.

  5. 호스팅된 UI 섹션에서 편집을 선택합니다.

  6. 적절한 IdP를 선택합니다.

  7. 변경 사항을 저장합니다.

설정 테스트하기

  1. 호스팅된 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=coderesponse_type=token로 바꿉니다.

  1. 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

  1. 사용자 자격 증명을 입력하고 로그인을 선택합니다.

  2. 브라우저의 주소 표시줄에 Amazon Cognito의 코드 또는 토큰이 포함된 콜백 URL로 리디렉션되면 설정이 완료된 것입니다.

참고: Amazon Cognito는 서비스 공급자(SP)가 시작한 로그인만 지원합니다. 설정을 테스트하려면, 로그인 엔드포인트 또는 권한 부여 엔드포인트를 사용해야 합니다. AWS 액세스 포털을 사용하여 IdP 시작 로그인을 IAM Identity Center에 시작하면 작동하지 않습니다.

AWS 공식
AWS 공식업데이트됨 일 년 전