사용자 풀의 자격 증명 공급자 구성 - Amazon Cognito

사용자 풀의 자격 증명 공급자 구성

참고

기존 사용자 풀을 편집할 때에만 자격 증명 공급자 탭이 나타납니다.

자격 증명 공급자 탭에서 사용자 풀의 IdP(자격 증명 공급자)를 지정할 수 있습니다. 자세한 내용은 서드 파티를 통한 사용자 풀 로그인 추가 섹션을 참조하세요.

소셜 IdP를 사용하여 사용자 로그인 설정

페더레이션을 사용하여 Amazon Cognito 사용자 풀을 Facebook, Google, Login with Amazon 등의 소셜 자격 증명 공급자와 통합할 수 있습니다.

소셜 자격 증명 공급자를 추가하려면 먼저 자격 증명 공급자에서 개발자 계정을 생성합니다. 개발자 계정이 생성되면 자격 증명 공급자에 앱을 등록합니다. 자격 증명 공급자가 앱에 대한 ID와 암호를 생성하면 Amazon Cognito 사용자 풀에 이들 값을 구성합니다.

아래는 소셜 자격 증명 공급자의 이용에 도움이 되는 몇 가지 기본 용어들입니다.

Original console

사용자 로그인을 소셜 IdP와 통합하려면

  1. Login with Amazon 또는 Facebook, Google, Apple로 로그인(Sign In with Apple)과 같은 소셜 자격 증명 공급자를 선택합니다.

  2. 선택한 IdP에 따라 다음 단계 중 하나를 완료하여 소셜 자격 증명 공급자의 정보를 입력합니다.

    Facebook, Google 및 Login with Amazon

    클라이언트 앱을 생성할 때 수신한 앱 ID 및 앱 암호를 입력합니다.

    Apple로 로그인

    Apple에 제공한 서비스 ID와 앱 클라이언트를 생성할 때 수신한 팀 ID, 키 ID, 프라이빗 키를 입력합니다.

  3. 앱 보안에 클라이언트 앱을 생성할 때 받았던 앱 암호를 입력합니다.

  4. [권한 있는 범위(Authorized scopes)]에서 사용자 풀 속성에 매핑할 소셜 자격 증명 공급자 범위의 이름을 입력합니다. 범위는 앱에서 액세스하려는 사용자 속성(예: name, email)을 정의합니다. 범위를 입력하는 경우 선택한 IdP에 따라 다음 지침을 따르세요.

    • Facebook - 범위를 쉼표로 구분합니다. 예:

      public_profile, email

    • Google, Login with Amazon, Sign In with Apple - 범위를 공백으로 구분합니다. 예:

      • Google: profile email openid

      • Login with Amazon: profile postal_code

      • Sign In with Apple: name email

        참고

        Sign In with Apple(콘솔)의 경우 확인란을 사용하여 범위를 선택합니다.

    사용자는 앱에 이러한 속성을 제공하는 것에 동의하라는 메시지를 받게 됩니다. 각 소셜 자격 증명 공급자의 범위에 대한 자세한 내용은 Google, Facebook, Login with Amazon 또는 Sign In with Apple의 설명서를 참조하세요.

  5. Facebook 활성화, Google 활성화, Login with Amazon 활성화 또는 Apple로 로그인 활성화를 선택합니다.

New console

사용자 로그인을 소셜 IdP와 통합하려면

  1. Amazon Cognito 콘솔에 로그인합니다. 메시지가 표시되면 AWS 자격 증명을 입력합니다.

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

  3. 로그인 환경(Sign-in experience) 탭을 선택하고 페더레이션 로그인(Federated sign-in)을 찾습니다.

  4. 자격 증명 공급자 추가(Add an identity provider)를 선택하거나, 구성한 Facebook, Google, Amazon 또는 Apple 자격 증명 공급자를 선택하고 자격 증명 공급자 정보(Identity provider information)를 찾은 다음 편집(Edit)을 선택합니다. 소셜 자격 증명 공급자를 추가하는 방법에 대한 자세한 내용은 사용자 풀에 소셜 자격 증명 공급자 추가 섹션을 참조하세요.

  5. 선택한 IdP에 따라 다음 단계 중 하나를 완료하여 소셜 자격 증명 공급자의 정보를 입력합니다.

    Facebook, Google 및 Login with Amazon

    클라이언트 앱을 생성할 때 수신한 앱 ID 및 앱 암호를 입력합니다.

    Apple로 로그인

    Apple에 제공한 서비스 ID와 앱 클라이언트를 생성할 때 수신한 팀 ID, 키 ID, 프라이빗 키를 입력합니다.

  6. 권한 있는 범위(Authorized scopes)에서 사용자 풀 속성에 매핑할 소셜 자격 증명 공급자 범위의 이름을 입력합니다. 범위는 앱에서 액세스하려는 사용자 속성(예: 이름, 이메일)을 정의합니다. 범위를 입력하는 경우 선택한 IdP에 따라 다음 지침을 따르세요.

    • Facebook - 범위를 쉼표로 구분합니다. 예:

      public_profile, email

    • Google, Login with Amazon, Sign In with Apple - 범위를 공백으로 구분합니다. 예:

      • Google: profile email openid

      • Login with Amazon: profile postal_code

      • Sign In with Apple: name email

        참고

        Sign In with Apple(콘솔)의 경우 확인란을 사용하여 범위를 선택합니다.

  7. 변경 사항 저장(Save changes)을 선택합니다.

  8. [앱 클라이언트 통합(App client integration)] 탭의 목록에서 [앱 클라이언트(App clients)] 중 하나를 선택한 다음, [호스트된 UI 설정 편집(Edit hosted UI settings)]을 선택합니다. [자격 증명 공급자(Identity providers)]에서 앱 클라이언트에 새 소셜 자격 증명 공급자를 추가합니다.

  9. 변경 사항 저장(Save changes)을 선택합니다.

소셜 IdP에 대한 자세한 내용은 사용자 풀에 소셜 자격 증명 공급자 추가를 참조하세요.

OIDC IdP를 사용하여 사용자 로그인 설정

사용자 로그인을 Salesforce 또는 Ping Identity와 같은 OpenID Connect(OIDC) 자격 증명 공급자(IdP)와 통합할 수 있습니다.

Original console
  1. Amazon Cognito 콘솔로 이동합니다. 메시지가 표시되면 AWS 자격 증명을 입력합니다.

  2. Manage User Pools(사용자 풀 관리)를 선택합니다.

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

  4. 왼쪽 탐색 모음에서 자격 증명 공급자를 선택합니다.

  5. OpenId Connect를 선택합니다.

  6. [공급자 이름(Provider name)]에 고유한 이름을 입력합니다.

  7. OIDC IdP의 클라이언트 ID를 클라이언트 ID에 입력합니다.

  8. OIDC IdP의 클라이언트 암호를 클라이언트 암호에 입력합니다.

  9. 드롭다운 목록에서 Amazon Cognito가 userinfo 엔드포인트에 있는 사용자 세부 정보를 속성 요청 메서드(Attributes request method)로 가져올 때 사용하는 HTTP 메서드(GET 또는 POST)를 선택합니다.

  10. 권한을 부여할 범위의 이름을 입력합니다. 범위는 애플리케이션서 액세스하고자 하는 사용자 속성(예: nameemail)을 정의합니다. 범위는 OAuth 2.0 사양에 따라 공백으로 구분됩니다.

    애플리케이션 사용자는 앱에 이러한 속성들을 제공한다는 데 동의하라는 요청 메시지를 받게 됩니다.

  11. IdP의 URL을 입력하고 검색 실행(Run discovery)을 선택합니다. 예를 들어, Salesforce는 다음 URL을 사용합니다.

    https://login.salesforce.com

    참고

    URL은 https://로 시작해야 하며, 슬래시 /로 끝나면 안 됩니다.

    1. 검색 실행(Run discovery)에 실패한 경우에는 권한 부여 엔드포인트(Authorization endpoint), 토큰 엔드포인트(Token endpoint), Userinfo 엔드포인트(Userinfo endpoint)Jwks URI(Jwks uri)(JSON 웹 키(JSON web key)의 위치)를 제공해야 합니다.

  12. 공급자 생성을 선택합니다.

  13. 왼쪽 탐색 모음에서 앱 클라이언트 설정을 선택합니다.

  14. OIDC 공급자를 활성화된 자격 증명 공급자 중 하나로 선택합니다.

  15. Amazon Cognito 권한 부여 서버에 대한 콜백 URL을 입력하여 사용자가 인증된 후 호출합니다. 이는 로그인 성공 후 Amazon Cognito에서 사용자를 리디렉션하는 페이지의 URL입니다.

    https://www.example.com
  16. 허용된 OAuth Flows(Allowed OAuth Flows)에서 권한 부여 코드 허용(Authorization code grant)암시적 코드 허용(Implicit code grant)을 모두 활성화합니다.

    특별히 하나를 제외하고 싶은 경우가 아니라면 허용된 OAuth Scopes 확인란을 모두 선택합니다.

  17. 변경 사항 저장(Save changes)을 선택합니다.

  18. 왼쪽 탐색 모음의 속성 매핑 탭에서 OIDC 클레임 매핑을 사용자 풀 속성에 추가합니다.

    1. 기본적으로 OIDC 클레임 sub는 사용자 풀 속성 사용자 이름으로 매핑됩니다. 이 외의 OIDC 클레임도 사용자 풀 속성으로 매핑할 수 있습니다. OIDC 클레임을 입력하고, 드롭다운 목록에서 해당하는 사용자 풀 속성을 선택합니다. 예를 들어, 클레임 email은 주로 사용자 풀 속성 Email로 매핑됩니다.

    2. 드롭다운 목록에서 대상 사용자 풀 속성을 선택합니다.

    3. 변경 사항 저장(Save changes)을 선택합니다.

    4. 요약본으로 이동을 선택합니다.

New console
  1. Amazon Cognito 콘솔로 이동합니다. 메시지가 표시되면 AWS 자격 증명을 입력합니다.

  2. 탐색 메뉴에서 [사용자 풀(User Pools)]을 선택합니다.

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

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

  5. OpenID Connect 자격 증명 공급자를 선택합니다.

  6. 공급자 이름(Provider name)에 고유한 이름을 입력합니다.

  7. 공급자로부터 수신한 클라이언트 ID를 클라이언트 ID(Client ID)에 입력합니다.

  8. 공급자로부터 수신한 클라이언트 암호를 클라이언트 암호(Client secret)에 입력합니다.

  9. 이 공급자의 권한 있는 범위(Authorized scopes)를 입력합니다. 범위는 애플리케이션이 공급자로부터 요청할 사용자 속성(예: name, email) 그룹을 정의합니다. OAuth 2.0 사양에 따라 범위를 공백으로 구분해야 합니다.

    사용자는 애플리케이션에 이러한 속성을 제공하는 것에 동의해야 합니다.

  10. 속성 요청 메서드(Attribute request method)를 선택하여 Amazon Cognito가 공급자가 운영하는 userInfo 엔드포인트에서 사용자 세부 정보를 가져오는 데 사용하는 HTTP 메서드(GET 또는 POST)를 Amazon Cognito에 제공합니다.

  11. 설정 메서드(Setup method)를 선택하여 발급자 URL을 통해 자동 채우기(Auto fill through issuer URL) 또는 수동 입력(Manual input)으로 OpenID Connect 엔드포인트를 검색합니다. 공급자에게 Amazon Cognito가 authorization, token, userInfojwks_uri 엔드포인트의 URL을 검색할 수 있는 퍼블릭 .well-known/openid-configuration 엔드포인트가 있는 경우 발급자 URL을 통해 자동 채우기(Auto fill through issuer URL)를 사용합니다.

  12. 발급자 URL이나 IdP의 authorization, token, userInfo, jwks_uri 엔드포인트 URL을 입력합니다.

    참고

    검색 URL, 자동으로 채워진 URL 및 수동으로 입력한 URL에는 포트 번호 443과 80만 사용할 수 있습니다. OIDC 공급자가 비표준 TCP 포트를 사용하는 경우 사용자 로그인이 실패합니다.

    발급자 URL은 https://로 시작해야 하며 / 문자로 시작하지 않아야 합니다. 예를 들어, Salesforce는 다음 URL을 사용합니다.

    https://login.salesforce.com

    발급자 URL과 연결된 openid-configuration 문서는 authorization_endpoint, token_endpoint, userinfo_endpointjwks_uri 값에 대해 HTTPS URL을 제공해야 합니다. 마찬가지로 수동 입력(Manual input)을 선택하면 HTTPS URL만 입력할 수 있습니다.

  13. OIDC 클레임 sub는 기본값으로 사용자 풀 속성 사용자 이름(Username)에 매핑됩니다. 이 외의 OIDC 클레임도 사용자 풀 속성으로 매핑할 수 있습니다. OIDC 클레임을 입력하고, 드롭다운 목록에서 해당하는 사용자 풀 속성을 선택합니다. 예를 들어, 클레임 email은 주로 사용자 풀 속성 Email로 매핑됩니다.

  14. 자격 증명 공급자의 추가 속성을 사용자 풀에 매핑합니다. 자세한 내용은 사용자 풀에 대한 자격 증명 공급자 속성 매핑 지정을 참조하세요.

  15. 생성(Create)을 선택합니다.

  16. [앱 클라이언트 통합(App client integration)] 탭의 목록에서 [앱 클라이언트(App clients)] 중 하나를 선택하고 [호스트된 UI 설정 편집(Edit hosted UI settings)]을 수행합니다. [자격 증명 공급자(Identity providers)]에서 앱 클라이언트에 새 OIDC 자격 증명 공급자를 추가합니다.

  17. 변경 사항 저장(Save changes)을 선택합니다.

OIDC IdP에 대한 자세한 내용은 사용자 풀에 OIDC 자격 증명 공급자 추가를 참조하세요.

SAML IdP를 사용하여 사용자 로그인 설정

Amazon Cognito 사용자 풀에 페더레이션을 사용하여 SAML IdP(자격 증명 공급자)와 통합할 수 있습니다. 파일을 업로드하거나 메타데이터 문서 엔드포인트 URL을 입력하여 메타데이터 문서를 제공해야 합니다. 타사 SAML IdP의 메타데이터 문서를 얻는 방법에 대한 자세한 내용은 Amazon Cognito 사용자 풀과 서드 파티 SAML 자격 증명 공급자 통합을 참조하세요.

Original console

사용자 로그인을 SAML IdP와 통합하려면

  1. SAML을 선택하여 SAML 자격 증명 공급자 옵션을 표시합니다.

  2. 메타데이터 문서를 업로드하려면 파일 선택을 선택하거나 메타데이터 문서 엔드포인트 URL을 입력합니다. 메타데이터 문서는 유효한 XML 파일이어야 합니다.

  3. SAML [공급자 이름(Provider name)](예: "SAML_provider_1")과 원하는 [식별자(Identifiers)]를 입력합니다. 공급자 이름은 필수 사항이고 식별자는 선택 사항입니다. 자세한 내용은 사용자 풀에 SAML 자격 증명 공급자 추가 섹션을 참조하세요.

  4. 사용자가 Amazon Cognito에서 로그아웃하면 SAML IdP에서도 로그아웃되도록 하려면 [IdP 로그아웃 흐름 사용(Enable IdP sign out flow)]을 선택합니다.

    이 흐름을 활성화하면 Logout 엔드포인트가 호출될 때 서명된 로그아웃 요청이 SAML IdP로 전송됩니다.

    참고

    이 옵션을 선택했고 SAML IdP가 서명된 로그아웃 요청을 필요로 하는 경우 SAML IdP를 사용하여 Amazon Cognito에서 제공한 서명 인증서도 구성해야 합니다.

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

  5. 공급자 생성을 선택합니다.

  6. 추가 공급자를 생성하려면 이전 단계를 반복합니다.

New console

사용자 풀에 SAML 2.0 자격 증명 공급자를 구성하려면

  1. Amazon Cognito 콘솔로 이동합니다. 메시지가 표시되면 AWS 자격 증명을 입력합니다.

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

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

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

  5. [SAML] 자격 증명 공급자를 선택합니다.

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

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

    참고

    이 옵션을 선택했고 SAML 자격 증명 공급자가 서명된 로그아웃 요청을 필요로 하는 경우 SAML IdP를 사용하여 Amazon Cognito에서 제공한 서명 인증서도 구성해야 합니다.

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

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

    참고

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

  9. [SAML 공급자와 앱 간에 속성 매핑(Map attributes between your SAML provider and your app)]을 선택하여 SAML 공급자 속성을 사용자 풀의 사용자 프로파일에 매핑합니다. 속성 맵에 사용자 풀 필수 속성을 포함합니다.

    예를 들어 [사용자 풀 속성(User pool attribute)] email을 선택한 경우 자격 증명 공급자의 SAML 어설션에 표시된 대로 SAML 속성 이름을 입력합니다. 자격 증명 공급자가 참조용으로 샘플 SAML 어설션을 제공할 수도 있습니다. email과 같은 간단한 이름을 사용하는 자격 증명 공급자도 있고, 다음과 같이 URL 포맷의 속성 이름을 사용하는 자격 증명 공급자도 있습니다.

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

참고

HTTPS 메타데이터 엔드포인트 URL을 사용하여 SAML IdP를 생성하는 동안 InvalidParameterException이 나타나는 경우 메타데이터 엔드포인트에 SSL이 올바르게 설정되어 있고 유효한 SSL 인증서가 연결되어 있는지 확인합니다. 이러한 예외의 한 예로는 "<메타데이터 엔드포인트>에서 메타데이터를 수신하는 동안 오류가 발생했습니다.(Error retrieving metadata from <metadata endpoint>)"가 있습니다.

서명 인증서를 추가하도록 SAML IdP를 설정하려면

  • IdP가 서명된 로그아웃 요청을 확인하는 데 사용할 퍼블릭 키가 포함된 인증서를 가져오려면 페더레이션(Federation) 콘솔 페이지의 자격 증명 공급자(Identity providers)에서 SAML 대화 상자의 활성 SAML 공급자(Active SAML Providers) 아래에 있는 서명 인증서 표시(Show signing certificate)를 선택합니다.

SAML IdP에 관한 자세한 내용은 사용자 풀에 SAML 자격 증명 공급자 추가 섹션을 참조하세요.