Amazon Cognito 사용자 풀에 Google을 연동 자격 증명 공급자로 설정하려면 어떻게 해야 합니까?

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

Amazon Cognito 사용자 풀에서 Google을 연동 자격 증명 공급자(IdP)로 사용하고 싶습니다. 어떻게 설정해야 합니까?

​해결 방법

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

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

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

Google API Console 프로젝트 생성

아직 프로젝트가 없으면 새 프로젝트를 생성합니다.

  1. Google 계정으로 Google API 콘솔에 로그인합니다. 자세한 내용은 Google Help 웹사이트의 API 콘솔 도움말을 참조하십시오.
  2. [Dashboard(APIs & Services)]에서 [CREATE]를 선택합니다.
  3. [New Project]에 [Project name]을 입력합니다.
  4. [Location]에서 [BROWSE]를 선택한 다음, 위치를 선택합니다.
  5. [CREATE]를 선택합니다.

자세한 내용은 Google Sign-in for Websites 웹사이트의 웹 앱에 Google 로그인 통합을 참조하십시오.

OAuth 동의 화면 구성

  1. Google API 콘솔의 왼쪽 탐색 창에서 [OAuth consent screen]을 선택합니다.
  2. 동의 화면 양식을 작성합니다. 최소한 다음 작업을 수행하십시오.
    [Application name]에 이름을 입력합니다.
    [Authorized domains]에 amazoncognito.com을 입력합니다.
    중요: 이 도메인을 입력하지 않으면 나중에 OAuth 클라이언트 ID를 생성할 때 Amazon Cognito 도메인을 사용할 수 없게 됩니다.
  3. [Save]를 선택합니다. 자격 증명 페이지로 리디렉션됩니다.

자세한 내용은 Google Apps Script 웹사이트의 OAuth 동의 화면 작성을 참조하십시오.

OAuth 2.0 클라이언트 자격 증명 가져오기

  1. Google API 콘솔의 [Credentials] 페이지에서 [Create credentials]를 선택한 다음, [OAuth client ID]를 선택합니다.
  2. [Create OAuth client ID] 페이지의 [Application type]에서 [Web application]을 선택합니다.
  3. 다음을 수행합니다.
    OAuth 클라이언트 ID에 이름을 입력합니다.
    [Authorized JavaScript origins]에 Amazon Cognito 도메인(https://yourDomainPrefix.auth.region.amazoncognito.com)을 입력합니다.
    참고: yourDomainPrefixregion은 실제 사용자 풀의 값으로 바꾸십시오. 이 값은 [Amazon Cognito console]에서 해당 사용자 풀에 대한 [Domain name] 페이지에서 찾을 수 있습니다.
    [Authorized redirect URIs]에 https://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/idpresponse를 입력합니다.
    참고: yourDomainPrefixregion은 실제 사용자 풀의 값으로 바꾸십시오. 자세한 내용은 이전 단계를 참조하십시오.
  4. [OAuth client] 대화 상자에서 클라이언트 ID와 클라이언트 시크릿을 찾은 다음, 나중을 위해 메모합니다. Amazon Cognito 사용자 풀에서 Google을 구성할 때 이 정보가 필요합니다.

자세한 내용은 Google Identity Platform 웹사이트의 OAuth 2.0을 사용하여 Google API에 액세스를 참조하십시오.

사용자 풀에서 Google을 연동 IdP로 구성

  1. [Amazon Cognito console]에서 [Manage user pools]를 선택한 다음, 사용자 풀을 선택합니다.
  2. 왼쪽 탐색 창의 [Federation]에서 [Identity providers]를 선택합니다.
  3. [Google]을 선택합니다.
  4. 다음을 수행합니다.
    [Google app ID]에 메모한 클라이언트 ID를 붙여넣습니다.
    [App secret]에 메모한 클라이언트 보안 암호를 붙여넣습니다.
    [Authorize scope]에 프로필 이메일 OpenID를 입력합니다.
  5. [Enable Google]을 선택합니다.

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

Google 속성에서 사용자 풀 속성으로 이메일 매핑

참고: 속성 매핑에서 매핑된 사용자 풀 속성은 변경 가능해야 합니다. 자세한 내용은 사용자 풀에 대한 자격 증명 공급자 속성 매핑 지정을 참조하십시오.

  1. [Amazon Cognito console]에서 [Manage user pools]를 선택한 다음, 사용자 풀을 선택합니다.
  2. 왼쪽 탐색 창의 [Federation]에서 [Attribute mapping]을 선택합니다.
  3. 속성 매핑 페이지에서 [Google] 탭을 선택합니다.
  4. [email]이라는 Google 속성 옆에 있는 [Capture] 확인란을 선택합니다.
  5. [email] 옆에 있는 [User pool attribute] 목록에서 [Email]을 선택합니다.
  6. [Save changes]를 선택합니다.

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

참고: 앱 클라이언트 설정에서 매핑된 사용자 풀 속성은 쓰기가 가능해야 합니다. 자세한 내용은 사용자 풀에 대한 자격 증명 공급자 속성 매핑 지정을 참조하십시오.

  1. [Amazon Cognito console]에서 [Manage user pools]를 선택한 다음, 사용자 풀을 선택합니다.
  2. 왼쪽 탐색 창의 [App integration]에서 [App client settings]를 선택합니다.
  3. 앱 클라이언트 페이지에서 다음 작업을 수행하십시오.
    [Enabled Identity Providers]에서 [Google] 확인란을 선택합니다.
    로그인 후 귀하의 사용자가 리디렉션하기를 원하는 URL을 [Callback URL(s)]에 입력합니다. https://www.example.com/과 같은 유효한 URL을 입력하여 테스트할 수 있습니다.
    [Sign out URL(s)]에 로그아웃 후 사용자를 리디렉션할 URL을 입력합니다. https://www.example.com/과 같은 유효한 URL을 입력하여 테스트할 수 있습니다.
    [Allowed OAuth Flows]에서 [Implicit grant] 확인란을 선택합니다.
    [Allowed OAuth Scopes]에서 적어도 [email], [openid], [profile] 확인란을 선택합니다.
  4. [Save changes]를 선택합니다.

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

엔드포인트 URL 구성

사용자 풀의 값을 사용하여 Amazon Cognito 호스팅 웹 UI에 대한 이 로그인 엔드포인트 URL을 구성합니다.

https://yourDomainPrefix.auth.region.amazoncognito.com/login?response_type=token&client_id=yourClientId&redirect_uri=redirectUrl

다음을 수행해야 합니다.

  • yourDomainPrefixregion을 실제 사용자 풀의 값으로 바꾸십시오. 이 값은 [Amazon Cognito console]에서 해당 사용자 풀에 대한 [Domain name] 페이지에서 찾을 수 있습니다.
  • yourClientId는 Amazon Cognito 앱 클라이언트 ID로 변경하고 redirectUrl을 앱 클라이언트 콜백 URL로 변경합니다. 이 정보는 Amazon Cognito 콘솔의 해당 사용자 풀에 대한 앱 클라이언트 설정 페이지에서 확인할 수 있습니다.

자세한 내용은 Amazon Cognito의 호스팅 웹 UI를 구성하려면 어떻게 해야 합니까?로그인 엔드포인트를 참조하십시오.

엔드포인트 URL을 테스트합니다.

  1. 웹 브라우저에 구성된 로그인 엔드포인트 URL을 입력합니다.
  2. 로그인 엔드포인트 웹페이지에서 [Continue with Google]을 선택합니다.
    참고: Amazon Cognito 앱 클라이언트의 콜백 URL로 리디렉션된다면 이미 브라우저에서 Google 계정에 로그인된 상태입니다. 웹 브라우저의 주소 표시줄에 있는 URL에 사용자 풀 토큰이 표시됩니다.
  3. [Sign in with Google]에서 Google 계정을 선택하고 로그인합니다.

인증에 성공하면 Amazon Cognito 앱 클라이언트 콜백 URL로 리디렉션됩니다. 웹 브라우저의 주소 표시줄에 있는 URL에 사용자 풀에서 발행한 JSON 웹 토큰(JWT)이 표시됩니다.

참고: 실제 웹 앱에서 LOGIN 엔드포인트의 URL은 JavaScript SDK에서 생성하는데, 이 SDK가 JWT 토큰의 구문 분석도 관리합니다.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?