사용자 풀에서 SAML 자격 증명 공급자 추가 및 관리 - Amazon Cognito

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

사용자 풀에서 SAML 자격 증명 공급자 추가 및 관리

Amazon Cognito 에서 작동하도록 자격 증명 공급자를 구성한 후 사용자 풀 및 앱 클라이언트에 추가할 수 있습니다. 다음 절차에서는 Amazon Cognito 사용자 풀에서 SAML 공급자를 생성, 수정 및 삭제하는 방법을 보여줍니다.

AWS Management Console

를 사용하여 SAML 자격 증명 공급자() AWS Management Console 를 생성하고 삭제할 수 있습니다IdPs.

IdP 를 생성하기 전에 타사 SAML IdP 에서 가져오는 SAML 메타데이터 문서가 있어야 합니다. 필요한 SAML 메타데이터 문서를 가져오거나 생성하는 방법에 대한 지침은 섹션을 참조하세요타사 SAML 자격 증명 공급자 구성.

사용자 풀에서 SAML 2.0 IdP를 구성하려면
  1. Amazon Cognito 콘솔로 이동합니다. 메시지가 표시되면 AWS 자격 증명을 입력합니다.

  2. [사용자 풀(User Pools)]을 선택합니다.

  3. 목록에서 기존 사용자 풀을 선택하거나 사용자 풀을 생성합니다.

  4. [로그인 환경(Sign-in experience)] 탭을 선택합니다. 페더레이션 로그인(Federated sign-in)을 찾아서 자격 증명 공급자 추가(Add an identity provider)를 선택합니다.

  5. SAML IdP 를 선택합니다.

  6. 공급자 이름 을 입력합니다. identity_provider 요청 파라미터에서 이 표시 이름을 에 전달할 수 있습니다권한 부여 엔드포인트.

  7. 식별자(Identifiers)를 쉼표로 구분하여 입력합니다. 식별자는 사용자가 로그인할 때 입력한 이메일 주소를 확인한 다음, 사용자 도메인에 해당하는 공급자로 사용자를 보내도록 Amazon Cognito에 지시합니다.

  8. 사용자가 로그아웃할 때 Amazon Cognito에서 서명된 로그아웃 요청을 공급자에게 보내도록 하려는 경우 로그아웃 흐름 추가(Add sign-out flow)를 선택합니다. 호스팅 SAML UI를 구성할 때 생성된 https://mydomain.us-east-1.amazoncognito.com/saml2/logout 엔드포인트에 로그아웃 응답을 보내도록 2.0 IdP를 구성해야 합니다. saml2/logout 엔드포인트는 POST 바인딩을 사용합니다.

    참고

    이 옵션을 선택하고 SAML IdP가 서명된 로그아웃 요청을 예상하는 경우 사용자 풀의 서명 인증서도 SAML IdP에 제공해야 합니다.

    SAML IdP는 서명된 로그아웃 요청을 처리하고 Amazon Cognito 세션에서 사용자를 로그아웃합니다.

  9. IdP 시작 SAML 로그인 구성을 선택합니다. 보안 모범 사례로 SP 시작 SAML어설션만 수락을 선택합니다. 원치 않는 SAML 로그인 세션을 안전하게 수락하도록 환경을 준비한 경우 SP 시작 및 IdP 시작 SAML어설션 수락을 선택합니다. 자세한 내용은 SAML Amazon Cognito 사용자 풀에서 세션 시작 단원을 참조하십시오.

  10. 메타데이터 문서 소스(Metadata document source)를 선택합니다. IdP가 퍼블릭 에서 SAML 메타데이터를 제공하는 경우 메타데이터 문서를 URL 선택하고 해당 퍼블릭 를 입력할 URL수 있습니다URL. 그렇지 않은 경우 메타데이터 문서 업로드(Upload metadata document)를 선택한 다음, 이전에 공급자로부터 다운로드한 메타데이터 파일을 선택합니다.

    참고

    공급자에 파일을 업로드하는 대신 퍼블릭 엔드포인트가 있는 URL 경우 메타데이터 문서를 입력하는 것이 좋습니다. Amazon Cognito는 메타데이터 에서 메타데이터를 자동으로 새로 고칩니다URL. 일반적으로 메타데이터 새로 고침은 6시간마다 또는 메타데이터가 만료되기 전 중 더 빠른 시간에 발생합니다.

  11. SAML 공급자와 사용자 풀 간의 속성을 매핑하여 SAML 공급자 속성을 사용자 풀의 사용자 프로파일에 매핑합니다. 속성 맵에 사용자 풀 필수 속성을 포함합니다.

    예를 들어 사용자 풀 속성 을 선택할 때 IdP 의 SAML어설션에 나타나는 SAML 속성 이름을 email입력합니다. IdP가 샘플 SAML어설션을 제공하는 경우 이러한 샘플 어설션을 사용하여 이름을 찾을 수 있습니다. 일부는 와 같은 간단한 이름을 IdPs 사용하는 반면email, 다른 일부는 다음과 같은 이름을 사용합니다.

    http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
  12. 생성(Create)을 선택합니다.

API/CLI

다음 명령을 사용하여 SAML 자격 증명 공급자(IdP )를 생성하고 관리합니다.

IdP를 생성하고 메타데이터 문서를 업로드하려면
  • AWS CLI: aws cognito-idp create-identity-provider

    메타데이터 파일이 포함된 예제: aws cognito-idp create-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1 --provider-type SAML --provider-details file:///details.json --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

    여기서 details.json에 다음 사항이 포함됩니다.

    "ProviderDetails": { "MetadataFile": "<SAML metadata XML>", "IDPSignout" : "true", "RequestSigningAlgorithm" : "rsa-sha256", "EncryptedResponses" : "true", "IDPInit" : "true" }
    참고

    만약 <SAML metadata XML> 에는 문자 의 인스턴스가 포함되어 "있으므로 이스케이프 문자\로 를 추가해야 합니다\".

    메타데이터가 있는 예제URL: aws cognito-idp create-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1 --provider-type SAML --provider-details MetadataURL=https://myidp.example.com/sso/saml/metadata --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

  • AWS API: CreateIdentityProvider

IdP에 대한 새 메타데이터 문서를 업로드하려면
  • AWS CLI: aws cognito-idp update-identity-provider

    메타데이터 파일이 포함된 예제: aws cognito-idp update-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1 --provider-details file:///details.json --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

    여기서 details.json에 다음 사항이 포함됩니다.

    "ProviderDetails": { "MetadataFile": "<SAML metadata XML>", "IDPSignout" : "true", "RequestSigningAlgorithm" : "rsa-sha256", "EncryptedResponses" : "true", "IDPInit" : "true" }
    참고

    만약 <SAML metadata XML> 에는 문자 의 인스턴스가 포함되어 "있으므로 이스케이프 문자\로 를 추가해야 합니다\".

    메타데이터가 있는 예제URL: aws cognito-idp update-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1 --provider-details MetadataURL=https://myidp.example.com/sso/saml/metadata --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

  • AWS API: UpdateIdentityProvider

특정 IdP에 대한 정보를 가져오려면
  • AWS CLI: aws cognito-idp describe-identity-provider

    aws cognito-idp describe-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1

  • AWS API: DescribeIdentityProvider

모든 에 대한 정보를 나열하려면 IdPs
  • AWS CLI: aws cognito-idp list-identity-providers

    예시: aws cognito-idp list-identity-providers --user-pool-id us-east-1_EXAMPLE --max-results 3

  • AWS API: ListIdentityProviders

IdP를 삭제하려면
  • AWS CLI: aws cognito-idp delete-identity-provider

    aws cognito-idp delete-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1

  • AWS API: DeleteIdentityProvider

SAML IdP를 설정하여 사용자 풀을 의존 당사자로 추가하려면
  • 사용자 풀 서비스 공급자는 URN입니다urn:amazon:cognito:sp:us-east-1_EXAMPLE. Amazon Cognito에는 SAML 응답URN에서 이 값과 일치하는 대상 제한 값이 필요합니다. 응답 메시지에 다음과 같은 POST 바인딩 엔드포인트를 사용하도록 IdP를 IdP-to-SP 구성합니다.

    https://mydomain.us-east-1.amazoncognito.com/saml2/idpresponse
  • IdP는 어SAML설션에서 사용자 풀에 NameID 대한 및 필수 속성을 채워야 합니다. SAML NameID는 사용자 풀에서 SAML 페더레이션 사용자를 고유하게 식별하는 데 사용됩니다. IdP는 각 사용자의 SAML 이름 ID를 대/소문자를 구분하는 일관된 형식으로 전달해야 합니다. 사용자 이름 ID의 값을 변경하면 새 사용자 프로필이 생성됩니다.

SAML 2.0에 서명 인증서를 제공하려면 IDP
  • IdP가 SAML 로그아웃 요청을 검증하는 데 사용할 수 있는 Amazon Cognito의 퍼블릭 키 사본을 다운로드하려면 사용자 풀의 로그인 환경 탭을 선택하고 IdP 를 선택한 다음 서명 인증서 보기에서 .crt로 다운로드를 선택합니다.

Amazon Cognito 콘솔을 사용하여 사용자 풀에 설정한 모든 SAML 공급자를 삭제할 수 있습니다.

SAML 공급자를 삭제하려면
  1. Amazon Cognito 콘솔에 로그인합니다.

  2. 탐색 창에서 [사용자 풀(User Pools)]을 선택한 다음 편집할 사용자 풀을 선택합니다.

  3. 로그인 환경 탭을 선택하고 페더레이션 자격 증명 공급자 로그인 을 찾습니다.

  4. 삭제SAML IdPs 하려는 옆의 라디오 버튼을 선택합니다.

  5. 자격 증명 공급자 삭제 메시지가 표시되면 SAML 공급자 이름을 입력하여 삭제를 확인한 다음 삭제를 선택합니다.