사용자 풀에서 SAML ID 제공업체 사용 - Amazon Cognito

사용자 풀에서 SAML ID 제공업체 사용

Microsoft Active Directory Federation Services(ADFS) 또는 Shibboleth 같은 SAML ID 제공업체(idP)를 통해 웹 및 모바일 앱 사용자가 로그인하게 할 수 있습니다. SAML 2.0 표준을 지원하는 SAML IdP를 선택해야 합니다.

Amazon Cognito는 호스팅 UI 및 페더레이션 엔드포인트를 사용하여 로컬 및 타사 IdP 사용자를 인증하고 JSON 웹 토큰(JWT)을 발급합니다. Amazon Cognito에서 발급하는 토큰을 사용하면 여러 ID 소스를 모든 앱에 걸쳐 범용 OpenID Connect(OIDC) 표준으로 통합할 수 있습니다. Amazon Cognito는 타사 제공업체의 SAML 어설션을 해당 SSO 표준으로 처리할 수 있습니다. AWS Management Console에서 AWS CLI를 통해 또는 Amazon Cognito 사용자 풀 API를 사용하여 SAML IdP를 생성하고 관리할 수 있습니다. AWS Management Console에서 첫 번째 SAML IdP를 생성하려면 사용자 풀에서 SAML ID 제공업체 추가 및 관리 섹션을 참조하세요.

SAML 로그인의 인증 개요
참고

타사 IdP를 통해 로그인하는 페더레이션은 Amazon Cognito 사용자 풀의 기능입니다. Amazon Cognito 페더레이션 ID라고도 하는 Amazon Cognito ID 풀은 각 ID 풀에서 별도로 설정해야 하는 페더레이션의 구현입니다. 사용자 풀은 ID 풀에 대한 타사 IdP일 수 있습니다. 자세한 내용은 Amazon Cognito 자격 증명 풀 단원을 참조하십시오.

IdP 구성에 대한 빠른 참조

요청을 수락하고 사용자 풀로 응답을 보내도록 SAML IdP를 구성해야 합니다. SAML IdP에 대한 설명서에는 SAML 2.0 IdP에 대한 신뢰 당사자 또는 애플리케이션으로 사용자 풀을 추가하는 방법에 대한 정보가 포함되어 있습니다. 다음 설명서에서는 SP 엔터티 ID 및 어설션 소비자 서비스(ACS) URL에 제공해야 하는 값을 제공합니다.

사용자 풀 SAML 값 빠른 참조
SP 엔터티 ID
urn:amazon:cognito:sp:us-east-1_EXAMPLE
ACS URL
https://Your user pool domain/saml2/idpresponse

ID 제공업체를 지원하도록 사용자 풀을 구성해야 합니다. 외부 SAML IdP를 추가하는 상위 단계는 다음과 같습니다.

  1. IdP 에서 SAML 메타데이터를 다운로드하거나 메타데이터 엔드포인트에 대한 URL을 검색합니다. 타사 SAML ID 제공업체 구성 섹션을 참조하세요.

  2. 사용자 풀에 새 IdP를 추가합니다. SAML 메타데이터를 업로드하거나 메타데이터 URL을 제공합니다. 사용자 풀에서 SAML ID 제공업체 추가 및 관리 섹션을 참조하세요.

  3. 앱 클라이언트에 IdP를 할당합니다. 앱 클라이언트를 사용한 애플리케이션별 설정 섹션 참조

SAML 사용자 이름의 대/소문자 구분

페더레이션 사용자가 로그인을 시도할 때 SAML ID 제공업체(IdP)는 사용자의 SAML 어설션에서 Amazon Cognito에 고유한 NameId를 전달합니다. Amazon Cognito는 SAML 페더레이션 사용자를 해당 NameId 클레임으로 식별합니다. 사용자 풀의 대/소문자 구분 설정에 관계없이 Amazon Cognito는 고유하고 대소문자를 구분하는 NameId 클레임을 전달할 때 SAML IdP에서 반환된 페더레이션 사용자를 인식합니다. email과 같은 속성을 NameId에 매핑하고 사용자가 자신의 이메일 주소를 변경하는 경우 해당 사용자는 앱에 로그인할 수 없습니다.

변경되지 않는 값을 가진 IdP 속성의 SAML 어설션에서 NameId를 매핑합니다.

예를 들어 Carlos라는 사용자가 NameId 값인 Carlos@example.com을 전달한 Active Directory Federation Services(ADFS) SAML 어설션에서 가져온 대/소문자를 구분하지 않는 사용자 풀에서 사용자 프로필을 갖고 있는 경우 Carlos가 다음에 로그인을 시도할 때 ADFS IdP에서 NameId 값인 carlos@example.com을 전달합니다. NameId는 대/소문자를 정확하게 구분해야 하기 때문에 로그인이 실패합니다.

사용자가 NameID 변경 이후에 로그인할 수 없는 경우 사용자 풀에서 해당 사용자 프로필을 삭제합니다. Amazon Cognito는 이러한 사용자가 다음에 로그인할 때 새 사용자 프로필을 생성합니다.