페더레이션 사용자를 기존 사용자 프로필에 연결 - Amazon Cognito

페더레이션 사용자를 기존 사용자 프로필에 연결

동일한 사용자에게 사용자 풀에 연결한 아이덴티티 제공업체(IdP)가 여러 개인 프로필이 있는 경우가 많습니다. Amazon Cognito는 사용자의 각 발생을 디렉터리에 있는 동일한 사용자 프로필에 연결할 수 있습니다. 이렇게 하면 여러 IdP 사용자를 보유한 한 사람이 앱에서 일관된 경험을 할 수 있습니다. AdminLinkProviderForUser는 Amazon Cognito에 페더레이션 디렉터리에 있는 사용자의 고유 ID를 사용자 풀의 사용자로 인식하도록 지시합니다. 사용자 프로필과 연결된 페더레이션 ID가 0개 이상인 경우 사용자 풀의 사용자는 청구 목적으로 1명의 월별 활성 사용자(MAU)로 계산됩니다.

중요

AdminLinkProviderForUser에서는 외부 페더레이션 ID를 가진 사용자가 사용자 풀에 기존 사용자로 로그인할 수 있도록 허용하므로, 애플리케이션 소유자가 신뢰하는 외부 IdP 및 공급자 속성으로만 사용해야 합니다.

예를 들어, 여러 고객과 공유하는 앱을 사용하는 관리형 서비스 제공업체(MSP)라고 가정해 봅니다. 각 고객은 Active Directory Federation Services(ADFS)를 통해 앱에 로그인합니다. IT 관리자인 Carlos는 각 고객 도메인에 계정을 가지고 있습니다. IdP에 관계없이 Carlos가 로그인할 때마다 앱 관리자로 인식되기를 원합니다.

ADFS IdP는 Carlos의 SAML 어설션에 대한 email 클레임에 있는 Carlos의 이메일 주소 msp_carlos@example.com을 Amazon Cognito에 제시합니다. 사용자 풀에 Carlos 사용자 이름으로 사용자를 생성합니다. 다음 AWS Command Line Interface(AWS CLI) 명령은 IdP ADFS1, ADFS2, ADFS3에서 Carlos의 ID를 연결합니다.

참고

특정 속성 클레임을 기반으로 사용자를 연결할 수 있습니다. 이 기능은 SAML IdP에 고유합니다. 다른 공급자 유형의 경우 고정된 소스 속성을 기반으로 연결해야 합니다. 자세한 내용은 AdminLinkProviderForUser를 참조하세요. OIDC 또는 소셜 IdP를 사용자 프로필에 연결할 때 ProviderAttributeNameCognito_Subject로 설정해야 합니다. ProviderAttributeValue는 IdP와 함께 사용자의 고유 식별자여야 합니다.

aws cognito-idp admin-link-provider-for-user \ --user-pool-id us-east-1_EXAMPLE \ --destination-user ProviderAttributeValue=Carlos,ProviderName=Cognito \ --source-user ProviderName=ADFS1,ProviderAttributeName=email,ProviderAttributeValue=msp_carlos@example.com aws cognito-idp admin-link-provider-for-user \ --user-pool-id us-east-1_EXAMPLE \ --destination-user ProviderAttributeValue=Carlos,ProviderName=Cognito \ --source-user ProviderName=ADFS2,ProviderAttributeName=email,ProviderAttributeValue=msp_carlos@example.com aws cognito-idp admin-link-provider-for-user \ --user-pool-id us-east-1_EXAMPLE \ --destination-user ProviderAttributeValue=Carlos,ProviderName=Cognito \ --source-user ProviderName=ADFS3,ProviderAttributeName=email,ProviderAttributeValue=msp_carlos@example.com

이제 사용자 풀의 Carlos 사용자 프로필에 다음 identities 속성이 있습니다.

[{ "userId": "msp_carlos@example.com", "providerName": "ADFS1", "providerType": "SAML", "issuer": "http://auth.example.com", "primary": false, "dateCreated": 111111111111111 }, { "userId": "msp_carlos@example.com", "providerName": "ADFS2", "providerType": "SAML", "issuer": "http://auth2.example.com", "primary": false, "dateCreated": 111111111111111 }, { "userId": "msp_carlos@example.com", "providerName": "ADFS3", "providerType": "SAML", "issuer": "http://auth3.example.com", "primary": false, "dateCreated": 111111111111111 }]

페더레이션 사용자 연결에 대해 알아야 할 사항

  • 최대 5명의 페더레이션 사용자를 각 사용자 프로필에 연결할 수 있습니다.

  • 페더레이션 사용자를 기존 페더레이션 사용자 프로필이나 기본 사용자에 연결할 수 있습니다.

  • AWS Management Console의 사용자 프로필에 공급자를 연결할 수 없습니다.

  • 사용자의 ID 토큰에는 identities 클레임에 연결된 모든 공급자가 포함되어 있습니다.

AWS SDK의 예 및 추가 명령 구문은 AdminLinkProviderForUser를 참조하세요.