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

최종 업데이트 날짜: 2021년 9월 21일

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

간략한 설명

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

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

해결 방법

앱 클라이언트와 도메인 이름이 설정된 Amazon Cognito 사용자 풀 생성

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

Okta 개발자 계정 가입

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

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

Okta 앱 생성

  1. Okta 개발자 콘솔(Okta Developer Console)을 엽니다. 콘솔에 대한 자세한 내용은 Okta 개발자 블로그에서 Okta의 새롭게 디자인된 관리 콘솔 및 대시보드, 정식 버전을 참조하십시오.
  2. 탐색 창에서 애플리케이션을 확장한 다음 애플리케이션을 선택합니다. 이렇게 하면 애플리케이션 콘솔이 열립니다. 자세한 내용은 Okta 개발자 웹사이트의 Okta 조직 페이지에서 관리자 콘솔을 참조하십시오.
  3. 앱 통합 생성을 선택합니다.
  4. 새로운 앱 통합 생성 페이지에서 OpenID Connect를 선택하고 웹 애플리케이션을 선택한 후 다음을 선택합니다.

Okta 앱에 대한 설정 구성

  1. 새로운 웹 앱 통합 페이지의 General Settings 아래에 앱 이름을 입력합니다. 예를 들어 TestApp을 입력할 수 있습니다.
  2. Grant type아래에서 Authorization Code 확인란이 선택되어 있는지 확인합니다. 사용자 풀은 이 흐름을 사용하여 연동 사용자 로그인을 위해 Okta OIDC와 통신합니다.
  3. 로그인 리디렉션 URI의 경우, https://myUserPoolDomain/oauth2/idpresponse 을 입력합니다. 여기에서 Okta가 인증 응답과 ID 토큰을 보냅니다.
    참고: myUserPoolDomain을 Amazon Cognito 사용자 풀 도메인으로 변경합니다. 이 도메인은 Amazon Cognito 콘솔에서 해당 사용자 풀에 대한 도메인 이름 페이지에서 찾을 수 있습니다.
  4. [CONFIGURE OPENID CONNECT]의 [Login redirect URIs]에서 https://myUserPoolDomain/oauth2/idpresponse를 입력합니다. 여기에서 Okta가 인증 응답과 ID 토큰을 보냅니다.
    참고: myUserPoolDomain을 Amazon Cognito 사용자 풀 도메인으로 변경합니다. 이 도메인은 [Amazon Cognito console]에서 해당 사용자 풀에 대한 [Domain name] 페이지에서 찾을 수 있습니다.
  5. 제어된 액세스에서 원하는 액세스 설정을 선택한 다음 저장을 선택합니다.
  6. 클라이언트 자격 증명에서 클라이언트 ID클라이언트 암호를 복사합니다. Amazon Cognito 사용자 풀에서 Okta를 구성할 때 자격 증명이 필요합니다.
  7. [Sign On]을 선택합니다.
  8. Sign On 탭의 OpenID Connect ID Token에서 발급자 URL을 메모합니다. 사용자 풀에서 Okta를 구성하려면 이 URL가 필요합니다.

사용자 풀에서 OIDC IdP 추가

  1. Amazon Cognito 콘솔에서 사용자 풀 관리를 선택한 다음, 사용자 풀을 선택합니다.
  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 콘솔에서 사용자 풀 관리를 선택한 다음, 사용자 풀을 선택합니다.
  2. 왼쪽 탐색 창의 [App integration]에서 [App Client settings]를 선택합니다.
  3. 앱 클라이언트 페이지에서 다음 작업을 수행하십시오.
    Enabled Identity Providers아래에서 이전에 생성된 IdP에 대한 OIDC 공급자 확인란을 선택합니다.
    (선택 사항) Cognito 사용자 풀 확인란을 선택합니다.
    Callback URL(s)의 경우, 로그인 후 사용자를 리디렉션할 URL을 입력합니다. https://example.com과 같은 유효한 URL을 입력하여 테스트할 수 있습니다.
    로그아웃 후 귀하의 사용자가 리디렉션하기를 원하는 URL을 Sign out URL(s)에 입력합니다. https://example.com/과 같은 유효한 URL을 입력하여 테스트할 수 있습니다.
    Allowed OAuth Flows 아래에서 Cognito의 인증 후 애플리케이션이 수신할 권한 부여 유형에 해당하는 흐름을 선택합니다.
    참고: 사용자가 활성화한 허용된 OAuth 흐름에 따라 엔드포인트 URL 파라미터 response_type에서 사용할 수 있는 값(코드 또는 토큰)이 결정됩니다.
    [Allowed OAuth Scopes]에서 [email] 및 [openid] 확인란을 선택합니다.
  4. 변경 사항 저장을 선택합니다.

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

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

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

  1. Amazon Cognito 콘솔에서 사용자 풀 관리를 선택한 다음, 사용자 풀을 선택합니다.
  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 사용을 참조하십시오.