Okta를 Amazon Cognito 사용자 풀의 OIDC 자격 증명 공급자로 설정하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 12월 20일

Okta를 Amazon Cognito 사용자 풀의 OpenID Connect(OIDC) 자격 증명 공급자(IdP)로 사용하고 싶습니다. 어떻게 설정해야 합니까?

간략한 설명

Amazon Cognito 사용자 풀은 Okta와 같은 IdP를 통한 로그인을 비롯하여 타사(연동)를 통한 로그인을 허용합니다. 자세한 내용은 타사를 통한 사용자 풀 로그인 추가사용자 풀에 OIDC 자격 증명 공급자 추가를 참조하십시오.

사용자 풀을 Okta와 통합하면 Okta 앱의 사용자가 Amazon Cognito에서 사용자 풀 토큰을 받을 수 있습니다. 자세한 내용은 사용자 풀을 통해 토큰 사용을 참조하십시오.

​해결 방법

앱 클라이언트와 도메인 이름이 있는 Amazon Cognito 사용자 풀 생성

  1. 사용자 풀을 생성하십시오.
    참고: 생성 중에 표준 속성 이메일이 기본적으로 선택됩니다. 자세한 내용은 사용자 풀 속성 구성을 참조하십시오.
  2. 사용자 풀에서 앱 클라이언트를 생성합니다. 자세한 내용은 호스팅 웹 UI 활성화를 위한 앱 추가를 참조하십시오.
  3. 사용자 풀에 도메인 이름을 추가합니다.

Okta 개발자 계정 가입

참고: 이미 Okta 개발자 계정이 있는 경우에는 로그인합니다.

  1. Okta 개발자 가입 웹 페이지에서 개인 정보를 입력한 다음, [GET STARTED]를 선택합니다. Okta 개발자 팀이 입력한 이메일 주소로 확인 이메일을 보냅니다.
  2. 확인 이메일에서 계정의 로그인 정보를 찾습니다. [ACTIVATE MY ACCOUNT]를 선택하여 로그인한 후 계정 생성을 완료합니다.

Okta 앱 생성

  1. Okta 개발자 콘솔을 엽니다. 콘솔에 대한 자세한 내용은 Okta 개발자 블로그의 Okta 개발자 콘솔: 여러분을 위한 완전히 새로운 개편을 참조하십시오.
  2. 왼쪽 상단 모서리에서 [Developer Console]을 잠시 멈추고 [Classic UI]를 선택합니다. 그러면 관리자 콘솔이 열립니다. 자세한 내용은 Okta 개발자 웹사이트의 Okta 조직 페이지에서 관리자 콘솔을 참조하십시오.
  3. [Shortcuts]에서 [Add Applications]를 선택합니다. 또는 [Applications]를 선택한 다음, [Add Application]을 선택합니다.
  4. [Add Application] 페이지에서 [Create New App]을 선택합니다.
  5. [Create a New Application Integration] 대화 상자에서 [Platform]이 [Web]으로 설정되었는지 확인합니다.
  6. [Sign on method]에서 [OpenID Connect]를 선택합니다.
  7. [Create]를 선택합니다.

Okta 앱에 대한 설정 구성

  1. [Create OpenID Connect Integration] 페이지의 [GENERAL SETTINGS]에서 앱 이름을 입력합니다. 예를 들어 TestApp을 입력할 수 있습니다.
  2. (선택 사항) 로고를 업로드하고 앱의 가시성 설정을 선택합니다.
  3. [CONFIGURE OPENID CONNECT]의 [Login redirect URIs]에서 https://myUserPoolDomain/oauth2/idpresponse를 입력합니다. 여기에서 Okta가 인증 응답과 ID 토큰을 보냅니다.
    참고: myUserPoolDomain을 Amazon Cognito 사용자 풀 도메인으로 변경합니다. 이 도메인은 [Amazon Cognito console]에서 해당 사용자 풀에 대한 [Domain name] 페이지에서 찾을 수 있습니다.
  4. [Save]를 선택합니다. Okta 앱의 [General] 탭으로 리디렉션됩니다.
  5. [General Settings]의 [Allowed grant types]에서 [Authorization Code] 확인란이 선택되었는지 확인합니다. 사용자 풀은 이 흐름을 사용하여 연동 사용자 로그인을 위해 Okta OIDC와 통신합니다.
  6. [Client Credentials]에서 클라이언트 ID클라이언트 시크릿을 찾아 나중을 위해 메모합니다. Amazon Cognito 사용자 풀에서 Okta를 구성할 때 이 정보가 필요합니다. 자세한 내용은 Okta 개발자 웹사이트에서 애플리케이션 자격 증명 찾기 안내서를 참조하십시오.
  7. [Sign On]을 선택합니다.
  8. [Sign On] 탭의 [OpenID Connect ID Token]에서 발행자 URL을 메모합니다. 나중에 사용자 풀에서 Okta를 구성할 때 이 정보가 필요합니다.

사용자 풀에서 OIDC IdP 추가

  1. [Amazon Cognito console]에서 [Manage user pools]를 선택한 다음, 사용자 풀을 선택합니다.
  2. 왼쪽 탐색 창의 [Federation]에서 [Identity providers]를 선택합니다.
  3. [OpenID Connect]를 선택합니다.
  4. 다음을 수행합니다.
    [Provider name]에 IdP의 이름을 입력합니다. Amazon Cognito 호스팅 웹 UI에 이 이름이 표시됩니다.
    참고: 공급자를 생성한 후에는 이 필드를 변경할 수 없습니다. 이 필드를 사용자 앱에 포함하거나 Amazon Cognito 호스팅 웹 UI를 사용하려면 앱 사용자들이 보기에 적합한 이름을 사용하십시오.
    [Client ID]에 앞서 Okta에서 메모한 클라이언트 ID를 붙여넣습니다.
    [Client Secret(선택 사항)]에 앞서 Okta에서 메모한 클라이언트 시크릿을 붙여넣습니다.
    [Attributes request method]은 [GET]으로 설정된 상태로 두십시오.
    [Authorize scope]에 권한을 부여하고자 하는 OIDC 범위 값을 공백으로 구분하여 입력합니다. 자세한 내용은 OpenID 웹사이트의 OpenID 연결 기본 클라이언트 구현 안내서 1.0에서 범위 값을 참조하십시오.
    중요: OpenID 범위는 OIDC IdP에 필요하고 사용자 풀 구성에 따라 다른 범위를 추가할 수 있습니다. 예를 들어 사용자 풀을 생성할 때 이메일을 필수 속성으로 두었다면 이메일 OpenID를 입력하여 두 범위를 모두 포함하십시오. 이 설정 후반부에서 사용자 풀에 이메일 속성을 매핑할 수 있습니다.
    [Issuer]에는 앞서 Okta에서 복사한 발행자 URL을 붙여넣습니다.
    [Identifiers(optional)]에 사용자 지정 문자열을 입력하여 OIDC IdP 이름 대신 나중에 엔드포인트 URL을 사용할 수도 있습니다.
  5. [Run discovery]를 선택하고 Okta에 대한 OIDC 구성 엔드포인트를 가져옵니다.
  6. [Create provider]를 선택합니다.

자세한 내용은 OIDC IdP를 사용자 풀에 추가를 참조하십시오.

사용자 풀의 앱 클라이언트 설정 변경

  1. [Amazon Cognito console]에서 [Manage user pools]를 선택한 다음, 사용자 풀을 선택합니다.
  2. 왼쪽 탐색 창의 [App integration]에서 [App Client settings]를 선택합니다.
  3. 앱 클라이언트 페이지에서 다음 작업을 수행하십시오.
    [Enabled identity providers]에서 OIDC 공급자와 [Cognito User Pool] 확인란을 선택합니다.
    로그인 후 귀하의 사용자가 리디렉션하기를 원하는 URL을 [Callback URL(s)]에 입력합니다. https://example.com과 같은 유효한 URL을 입력하여 테스트할 수 있습니다.
    로그아웃 후 귀하의 사용자가 리디렉션하기를 원하는 URL을 Sign out URL(s)에 입력합니다. https://example.com과 같은 유효한 URL을 입력하여 테스트할 수 있습니다.
    [Allowed OAuth Flows]에서 앞서 Okta 앱에 대해 선택한 권한 부여 유형에 해당하는 흐름을 선택합니다.
    참고: 사용자가 활성화한 허용된 OAuth 흐름에 따라 엔드포인트 URL 파라미터 response_type에서 사용할 수 있는 값(코드 또는 토큰)이 결정됩니다.
    [Allowed OAuth Scopes]에서 [email] 및 [openid] 확인란을 선택합니다.
  4. [Save changes]를 선택합니다.

자세한 내용은 앱 클라이언트 설정 개요를 참조하십시오.

이메일 속성을 사용자 풀 속성에 매핑

앞서 이메일 OIDC 범위 값에 권한을 부여했다면 이를 사용자 속성에 매핑합니다.

  1. [Amazon Cognito console]에서 [Manage user pools]를 선택한 다음, 사용자 풀을 선택합니다.
  2. 왼쪽 탐색 창의 [Federation]에서 [Attribute mapping]을 선택합니다.
  3. 속성 매핑 페이지에서 [OIDC] 탭을 선택합니다.
  4. 사용자 풀에 두 개 이상의 OIDC 공급자가 있는 경우 드롭다운 목록에서 새 공급자를 선택합니다.
  5. OIDC 속성 sub이 사용자 풀 속성 Username에 매핑되는지 확인합니다.
  6. [Add OIDC attribute]를 선택하고 다음을 수행합니다.
    [OIDC attribute]에 email을 입력합니다.
    [User pool attribute]에서 [Email]을 선택합니다.

자세한 내용은 사용자 풀에 대한 자격 증명 공급자 속성 매핑 지정을 참조하십시오.

로그인하여 설정 테스트

Amazon Cognito 호스팅 웹 UI를 사용하여 Okta로 인증합니다. 로그인하고 나면 앱 클라이언트의 콜백 URL로 리디렉션됩니다. 승인 코드 또는 사용자 풀 토큰은 웹 브라우저의 주소 표시줄에 있는 URL에 표시됩니다.

자세한 내용은 가입 및 로그인에 Amazon Cognito 호스팅 UI 사용을 참조하십시오.