Amazon Cognito 사용자 풀에서 페더레이션 ID 공급자로 Google을 설정하려면 어떻게 해야 하나요?

5분 분량
0

Amazon Cognito 사용자 풀의 페더레이션 ID 공급자(IdP)로 Google을 사용하고 싶습니다.

해결 방법

Amazon Cognito 사용자 풀은 서드 파티(페더레이션)를 통한 로그인을 허용합니다. 여기에는 Google이나 Facebook과 같은 소셜 IdP를 통한 로그인도 포함됩니다. 자세한 내용을 보려면 사용자 풀에 소셜 ID 공급자 추가를 참고하세요.

앱 클라이언트 및 도메인 이름을 사용해 Amazon Cognito 사용자 풀 만들기

  1. 사용자 풀을 생성합니다.
    참고: 만드는 동안 표준 속성이메일이 기본적으로 선택됩니다. 자세한 내용을 보려면 사용자 풀 속성을 참고하세요.
  2. 사용자 풀에서 앱 클라이언트를 생성합니다. 자세한 내용을 보려면 앱을 추가해 호스팅된 웹 UI 켜기를 참고하세요.
  3. 사용자 풀에 도메인 이름을 추가합니다.

Google API 콘솔 프로젝트 만들기

이미 프로젝트가 있다면 새 프로젝트를 만듭니다.

  1. Google 계정으로 Google API 콘솔에 로그인합니다. 자세한 내용을 보려면 Google 도움말 웹 사이트에서 API 콘솔에서 API 관리를 참고하세요.
  2. 대시보드(API & 서비스)에서 생성을 선택합니다.
  3. 새 프로젝트에서 프로젝트 이름을 입력합니다.
  4. 위치에서 찾아보기를 선택하고 위치를 선택합니다.
  5. 생성을 선택합니다.

자세한 내용을 보려면 Google ID 웹 사이트에서 웹에서 Google로 로그인하기 설명서를 참고하세요.

OAuth 동의 화면 구성

  1. Google API 콘솔의 왼쪽 탐색 창에서 OAuth 동의 화면을 선택합니다.
  2. 동의 화면 양식을 작성합니다. 최소한 다음 작업을 실행해야 다음으로 진행할 수 있습니다.
    애플리케이션 이름에 이름을 입력합니다.
    승인된 도메인amazoncognito.com을 입력합니다.
    중요: 이 도메인을 입력하지 않으면 나중에 OAuth 클라이언트 ID를 생성할 때 Amazon Cognito 도메인을 사용할 수 없습니다.
  3. 저장을 선택합니다. 자격 증명 페이지로 리디렉션됩니다.

자세한 내용을 보려면 Google Workspace 웹 사이트에서 OAuth 동의 화면 작성을 참고하세요.

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

  1. Google API 콘솔의 자격 증명 페이지에서 자격 증명 생성을 선택합니다. 그리고 OAuth 클라이언트 ID를 선택합니다.
  2. OAuth 클라이언트 ID 생성 페이지에서 애플리케이션 유형으로 웹 애플리케이션을 선택합니다.
  3. 다음을 실행합니다.
    OAuth 클라이언트 ID 이름을 입력합니다.
    승인된 JavaScript 원점에 Amazon Cognito 도메인을 입력합니다. 예: https://yourDomainPrefix.auth.region.amazoncognito.com.
    참고: YourDomainPrefix리전을 사용자 풀 값으로 바꿉니다. 사용자 풀에 대한 도메인 이름 페이지의 Amazon Cognito 콘솔에서 이 값을 찾을 수 있습니다.
    승인된 리디렉션 URI에는 https://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/idpresponse을 입력합니다.
    참고: YourDomainPrefix리전을 사용자 풀 값으로 바꿉니다. 자세한 내용을 보려면 이전 단계를 참고하세요.
  4. OAuth 클라이언트 대화 상자에서 클라이언트 ID와 클라이언트 암호를 찾은 후 나중에 사용할 수 있도록 기록해 둡니다. Amazon Cognito 사용자 풀에 Google을 구성할 때 필요합니다.

자세한 내용을 보려면 Google ID 웹사이트에서 OAuth 2.0을 사용해 Google API에 액세스를 참고하세요.

사용자 풀에서 Google을 페더레이션 IdP로 구성

  1. Amazon Cognito 콘솔에서 사용자 풀을 선택합니다.
  2. 사용할 사용자 풀을 선택합니다.
  3. 로그인 경험 탭을 선택합니다.
  4. 페더레이션 ID 제공자 로그인에서 ID 제공자 추가를 선택합니다.
  5. Google을 선택합니다. 그리고 이 사용자 풀로 Google 페더레이션 설정에서 다음을 실행합니다.
    클라이언트 ID에 이전 단계에서 기록해 둔 클라이언트 ID를 붙여 넣습니다.
    클라이언트 암호에는 이전 단계에서 기록해 둔 클라이언트 암호를 붙여 넣습니다.
    승인된 범위에 프로필 이메일 OpenID를 입력합니다.
  6. Google과 사용자 풀 간 매핑 속성에서 다음을 실행합니다.
    이메일 속성의 사용자 풀 속성에는 이메일Google 속성에 매핑합니다.
    다른 속성 추가를 선택하고 사용자 이름사용자 풀 속성사용자 이름Google 속성에 매핑합니다.
  7. ID 제공자 추가를 선택합니다.

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

참고: 앱 클라이언트 설정에서 매핑된 사용자 풀 속성은 쓰기 가능해야 합니다. 자세한 내용을 보려면 사용자 풀의 ID 제공자 속성 매핑 지정을 참고하세요.

  1. Amazon Cognito 콘솔에서 사용자 풀을 선택합니다.
  2. 앱 통합 탭을 선택합니다.
  3. 앱 클라이언트 목록에서 앱 클라이언트 생성을 선택합니다.
  4. 앱 유형에서 공용 클라이언트를 선택합니다. 그런 후 앱 클라이언트의 이름을 입력합니다.
    인증 흐름에서 ALLOW_USER_PASSWORD_AUTHALLOW_REFRESH_TOKEN_AUTH를 선택합니다.
    허용된 콜백 URL에는 로그인 후 사용자를 리디렉션할 URL을 입력합니다. 테스트하려면 https://www.example.com/와 같은 유효한 URL을 입력합니다.
    로그아웃 URL에는 로그아웃 후 사용자를 리디렉션할 URL을 입력합니다. 테스트용으로 **https://www.example.com/**와 같은 유효한 URL을입력하세요.
    ID 공급자에서 Cognito 사용자 풀Google을 선택합니다.
    OAuth 2.0 권한 부여 유형에는 암시적 권한 부여를 선택합니다.
    OpenID Connect 범위에는 이메일, openid, 프로필을 선택합니다.
    중요:
    암시적 권한 부여 OAuth 흐름은 테스트 목적으로만 사용됩니다. 프로덕션 시스템에는 인증 코드 권한 부여를 사용하는 것이 좋습니다.
  5. 앱 클라이언트 생성을 선택합니다.

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

엔드포인트 URL 구성

사용자 풀 값을 사용해 Amazon Cognito에 호스팅된 웹 UI에 사용할 로그인 엔드포인트를 구축하세요. https://yourDomainPrefix.auth.region.amazoncognito.com/login?response_type=token&client_id=yourClientId&redirect_uri=redirectUrl

참고: YourDomainPrefix리전을 사용자 풀 값으로 바꿉니다. 사용자 풀에 대한 도메인 이름 페이지의 Amazon Cognito 콘솔에서 이 값을 찾을 수 있습니다. yourClientId를 Amazon Cognito 앱 클라이언트의 ID로 바꾸고, redirectUrl을 앱 클라이언트 콜백 URL로 바꿉니다. 사용자 풀 앱 클라이언트 설정 페이지의 Amazon Cognito 콘솔에서 이 값을 찾을 수 있습니다.

자세한 내용을 보려면 Amazon Cognito에 호스트된 웹 UI를 구성하려면 어떻게 해야 하나요?로그인 엔드포인트를 참고하세요.

엔드포인트 URL 테스트

  1. 사용자의 웹 브라우저에 구축된 로그인 엔드포인트 URL을 입력합니다.
  2. 로그인 엔드포인트 웹페이지에서 Google로 계속하기를 선택합니다.
    참고: 앱 클라이언트 콜백 URL로 리디렉션된다면, 이미 브라우저에서 Google 계정으로 로그인한 것입니다. 사용자의 웹 브라우저 주소 바에 있는 URL에 사용자 풀 토큰이 표시됩니다.
  3. Google로 로그인에서 Google 계정을 선택하고 로그인합니다.

인증에 성공하면 Amazon Cognito 앱 클라이언트의 콜백 URL로 리디렉션됩니다. 웹 브라우저의 주소 표시줄 URL에 사용자 풀에서 발행한 JSON 웹 토큰(JWT)이 표시됩니다.
참고: 실제 웹 앱에서 로그인 엔드포인트 URL이 JavaScript SDK를 통해 생성됩니다. 또 URL에 JWT 토큰이 파싱됩니다.

관련 정보

서드 파티를 통한 사용자 풀 로그인 추가

AWS 공식
AWS 공식업데이트됨 9달 전