사용자 풀에 OIDC 자격 증명 공급자 추가 - Amazon Cognito

문서의 영문과 번역 사이에 충돌이 있는 경우에는 영문 버전을 따릅니다. 번역 버전은 기계 번역을 사용하여 제공합니다.

사용자 풀에 OIDC 자격 증명 공급자 추가

이미 계정이 있는 사용자를 활성화할 수 있습니다. openid Connect(OIDC) ID 공급자(idps)(유사 영업부 또는 Ping ID) 가입 단계를 건너뜁니다.—기존 계정을 사용하여 애플리케이션에 로그인합니다. 내장된 호스트 웹 UI를 사용하여 Amazon Cognito가 모든 자격 증명 공급자의 모든 인증 사용자에 대한 토큰 처리 및 관리를 제공하기 때문에 사용자의 백엔드 시스템을 한 세트의 사용자 풀 토큰에서 표준화할 수 있습니다.


                OIDC IdP 인증 개요
참고

타사(연동)를 통한 로그인을 Amazon Cognito 사용자 풀에서 사용할 수 있습니다. 이 기능은 Amazon Cognito 자격 증명 풀(연동 자격 증명)을 통한 연동과 무관합니다.

AWS Management Console에서 AWS CLI 또는 사용자 풀 API 메서드 CreateIdentityProvider를 사용하여 OIDC IdP를 사용자 풀에 추가할 수 있습니다.

Prerequisites

시작하려면 다음이 필요합니다.

  • 애플리케이션 클라이언트 및 사용자 풀 도메인이 있는 사용자 풀. 자세한 내용은 사용자 풀 생성 단원을 참조하십시오.

  • OIDC IdP.

단계 1. OIDC IdP로 등록

Amazon Cognito로 OIDC IdP를 생성하려면 먼저 애플리케이션을 OIDC IdP에 등록하여 클라이언트 ID와 클라이언트 암호를 받아야 합니다.

OIDC IdP로 등록하려면

  1. OIDC IdP에서 개발자 계정을 생성합니다.

    OIDC IdP 링크
    OIDC IdP 설치 방법 OIDC 검색 URL
    Salesforce

    Salesforce 자격 증명 공급자 설치

    https://login.salesforce.com

    Ping Identity

    Ping Identity 자격 증명 공급자 설치

    '^https://.+$'Your Ping domain address:9031/idp/userinfo.openid

    예, https://pf.company.com:9031/idp/userinfo.openid

    Okta

    Okta 자격 증명 공급자 설치

    '^https://.+$'Your Okta subdomain.oktapreview.com

    또는 https://Your Okta subdomain.okta.com

    Microsoft Azure Active Directory (Azure AD)

    Microsoft Azure AD 자격 증명 공급자 설치

    https://login.windows.net/common

    Google

    Google 자격 증명 공급자 설치

    https://accounts.google.com

    참고

    Amazon Cognito는 통합 소셜 로그인 IdP로 Google을 제공합니다. 통합 IdP 사용을 권장합니다. 사용자 풀에 소셜 자격 증명 공급자 추가을(를) 참조하십시오.

  2. 엔드포인트가 /oauth2/idpresponse인 사용자 풀 도메인 URL을 OIDC IdP에 등록합니다. 그래야만 사용자를 인증할 때 나중에 Amazon Cognito에서 OIDC IdP를 수락합니다.

    https://<your-user-pool-domain>/oauth2/idpresponse
  3. Cognito 사용자 풀에 콜백 URL을 등록합니다. 이것은 인증 성공 이후에 사용자가 리디렉션되는 페이지의 URL입니다.

    https://www.example.com
  4. 사용자의 범위를 선택합니다. 범위 openid는 필수 항목입니다. 이메일 범위가 있어야만 이메일email_verified 클레임에 대한 액세스 권한을 받을 수 있습니다.

  5. OIDC IdP에서 클라이언트 ID와 클라이언트 암호를 제공합니다. 사용자 풀에서 OIDC IdP를 설정할 때 이 둘을 사용하게 됩니다.

예: 사용자 풀을 사용하여 Salesforce를 OIDC Idp로 사용

OIDC 자격 증명 공급자는 Salesforce 같은 OIDC 호환 IdP와 사용자 풀 사이에 신뢰를 구축해야 할 때 사용합니다.

  1. Salesforce 개발자 웹사이트에서 계정을 생성합니다.

  2. 이전 단계에서 설정한 개발자 계정을 통해 로그인합니다.

  3. Salesforce 페이지 상단을 살펴봅니다.

    • Lightning Experience를 사용 중인 경우에는 설정 기어 아이콘을 선택하고 Setup Home(설정 홈)을 선택합니다.

    • Salesforce Classic을 사용 중인 경우에는 사용자 인터페이스 헤더에 Setup(설정)이 표시됩니다. 이를 선택합니다.

    • Salesforce Classic을 사용 중인 경우에는 헤더에 Setup(설정)이 표시됩니다. 상단의 탐색 모음에서 이름을 선택하고 드롭다운 목록에서 Setup(설정)을 선택합니다.

  4. 왼쪽 탐색 모음에서 Company Settings(회사 설정)를 선택합니다.

  5. 탐색 모음에서 도메인을 선택하고, 도메인을 입력한 후, 생성을 선택합니다.

  6. 왼쪽 탐색 모음에서 Platform Tools(플랫폼 도구)로 이동하여 Apps(앱)를 선택합니다.

  7. App Manager(앱 관리자)를 선택합니다.

    1. new connected app(새로 연결된 앱)을 선택합니다.

    2. 필수 필드를 입력합니다.

      Start URL(시작 URL)에서 엔드포인트가 /oauth2/idpresponse인 사용자 풀 도메인 URL을 입력합니다.

      https://<your-user-pool-domain>/oauth2/idpresponse
    3. OAuth settings(OAuth 설정)을 활성화하고 콜백 URL에 콜백 URL을 입력합니다. 이것은 로그인 성공 후 사용자가 리디렉션되는 페이지의 URL입니다.

      https://www.example.com
  8. 사용자의 범위를 선택합니다. 범위 openid는 필수 항목입니다. 이메일 범위가 있어야만 이메일email_verified 클레임에 대한 액세스 권한을 받을 수 있습니다.

    범위는 공백으로 구분됩니다.

  9. 생성을 선택합니다.

    Salesforce에서는 클라이언트 ID를 Consumer Key(사용자 키)로 부르고, 클라이언트 암호를 Consumer Secret(사용자 암호)로 부릅니다. 클라이언트 ID와 클라이언트 암호를 메모합니다. 다음 섹션에서 이 둘을 사용합니다.

단계 2. 사용자 풀에 OIDC IdP 추가

이 섹션에서는 OIDC IdP에서 OIDC 기반 인증 요청을 처리하도록 사용자 풀을 구성합니다.

OIDC IdP를 추가하려면(Amazon Cognito 콘솔)

  1. Amazon Cognito 콘솔로 이동합니다. AWS 자격 증명을 입력하라는 메시지가 나타날 수 있습니다.

  2. Manage User Pools(사용자 풀 관리).

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

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

  5. OpenId Connect를 선택합니다.

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

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

  8. 이전 섹션의 클라이언트 암호를 클라이언트 암호에 입력합니다.

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

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

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

  11. IdP의 URL을 입력하고 검색 실행을 선택합니다.

    예를 들어, Salesforce는 다음 URL을 사용합니다.

    https://login.salesforce.com

    참고

    URL은 다음으로 시작해야 합니다. https://, 그리고 슬래시로 끝내야 합니다 /. 포트 번호 443 및 80만 이 URL과 함께 사용할 수 있습니다.

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

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

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

  14. 이전 단계에서 활성화된 자격 증명 공급자 중 하나로 설정한 OIDC 공급자를 선택합니다.

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

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

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

  17. 변경 사항 저장을 선택합니다.

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

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

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

    3. 변경 사항 저장을 선택합니다.

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

OIDC IdP를 추가하려면(AWS CLI)

  • 참조 파라미터를 위한 createidentityprovider API 방법.

    aws cognito-idp create-identity-provider --user-pool-id string --provider-name string --provider-type OIDC --provider-details map --attribute-mapping string --idp-identifiers (list) --cli-input-json string --generate-cli-skeleton string

    공급자 세부 정보의 이 맵을 사용합니다.

    { "client_id": "string", "client_secret": "string", "authorize_scopes": "string", "attributes_request_method": "string", "oidc_issuer": "string", "authorize_url": "string", "token_url": "string", "attributes_url": "string", "jwks_uri": "string" }

단계 3. OIDC IdP 구성 테스트

이전 두 섹션의 요소를 사용하여 인증 URL을 생성하고 OIDC IdP 구성을 테스트할 수 있습니다.

https://<your_user_pool_domain>/oauth2/authorize?response_type=code&client_id=<your_client_id>&redirect_uri=https://www.example.com

사용자 풀 도메인 이름 콘솔 페이지에서 사용자의 도메인을 찾을 수 있습니다. client_id는 일반 설정 페이지에 있습니다. redirect_uri 파라미터용 콜백 URL을 사용합니다. 이것은 인증 성공 이후에 사용자가 리디렉션되는 페이지의 URL입니다.