3단계. 사용자 풀에 소셜 로그인 추가(선택 사항) - Amazon Cognito

3단계. 사용자 풀에 소셜 로그인 추가(선택 사항)

앱 사용자가 Facebook, Google, Amazon 및 Apple과 같은 소셜 자격 증명 공급자(IdP)를 통해 로그인하도록 할 수 있습니다. 사용자가 직접 또는 타사를 통해 로그인하는지 여부와 무관하게 모든 사용자는 사용자 풀에 프로필을 보유합니다. 소셜 로그인 자격 증명 공급자를 통한 로그인 추가를 원치 않는 경우 이 단계를 건너뛰세요.

1단계: 소셜 IdP에 등록

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

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

  2. Facebook 자격 증명으로 로그인합니다.

  3. My Apps(내 앱) 메뉴에서 Create New App(새 앱 생성)을 선택합니다.

  4. Facebook 앱의 이름을 입력하고 [앱 ID 생성(Create App ID)]을 선택합니다.

  5. 왼쪽 탐색 모음에서 [설정(Settings)], [기본 사항(Basic)]을 차례로 선택합니다.

  6. App ID(앱 ID)앱 보안을 메모합니다. 다음 섹션에서 이 둘을 사용합니다.

  7. 페이지 하단에서 + Add Platform(플랫폼 추가)을 선택합니다.

  8. 웹 사이트를 선택합니다.

  9. [웹 사이트(Website)] 아래의 [사이트 URL(Site URL)]에 앱 클라이언트 엔드포인트의 로그인 URL을 입력합니다. 로그인 URL의 포맷은 다음과 같아야 합니다.

    https://your_user_pool_domain/login?response_type=code&client_id=your_app_client_id&redirect_uri=your_callback_url
  10. 변경 사항 저장(Save changes)을 선택합니다.

  11. [앱 도메인(App Domains)]에서 사용자 풀 도메인을 입력합니다.

    https://your_user_pool_domain
  12. 변경 사항 저장(Save changes)을 선택합니다.

  13. 탐색 모음에서 [제품(Products)]을 선택한 다음 [Facebook 로그인(Facebook Login)]에서 [설정(Set up)]을 선택합니다.

  14. 탐색 모음에서 [Facebook 로그인(Facebook Login)]과 [설정(Settings)]을 차례로 선택합니다.

    유효한 OAuth 리디렉션 URI(Valid OAuth Redirect URIs)에 리디렉션 URL을 입력합니다. 리디렉션 URL은 /oauth2/idpresponse 엔드포인트가 있는 사용자 풀 도메인으로 구성됩니다.

    https://your_user_pool_domain/oauth2/idpresponse
  15. 변경 사항 저장(Save changes)을 선택합니다.

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

  2. Amazon 자격 증명으로 로그인합니다.

  3. Amazon 보안 프로파일을 생성하여 Amazon 클라이언트 ID와 클라이언트 암호를 받아야 합니다.

    페이지 상단의 탐색 모음에서 Apps and Services(앱 및 서비스)를 선택한 다음 Login with Amazon을 선택합니다.

  4. Create a Security Profile(보안 프로필 생성)을 선택합니다.

  5. 보안 프로파일 이름(Security Profile Name), 보안 프로파일 설명(Security Profile Description), 개인 정보 보호 정책 동의 URL(Consent Privacy Notice URL)을 입력합니다.

  6. 저장(Save)을 선택합니다.

  7. 클라이언트 ID클라이언트 암호를 선택하여 클라이언트 ID 및 암호를 표시합니다. 다음 섹션에서 이 둘을 사용합니다.

  8. 톱니 모양 아이콘을 마우스로 가리키고 [웹 설정(Web Settings)]을 선택한 다음, [편집(Edit)]을 선택합니다.

  9. [허용된 원본(Allowed Origins)]에 사용자 풀 도메인을 입력합니다.

    https://<your-user-pool-domain>
  10. [허용된 반환 URL(Allowed Return URLs)]에 /oauth2/idpresponse 엔드포인트가 있는 사용자 풀 도메인을 입력합니다.

    https://<your-user-pool-domain>/oauth2/idpresponse
  11. 저장(Save)을 선택합니다.

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

  2. Google 자격 증명으로 로그인합니다.

  3. CONFIGURE A PROJECT(프로젝트 구성)를 선택합니다.

  4. 프로젝트 이름을 입력하고 [다음(NEXT)]을 선택합니다.

  5. 제품 이름을 입력하고 [다음(NEXT)]을 선택합니다.

  6. [어디에서 호출하고 있습니까?(Where are you calling from?)] 드롭다운 목록에서 [웹 브라우저(Web browser)]를 선택합니다.

  7. [권한 있는 JavaScript 원본(Authorized JavaScript origins)] 필드에 사용자 풀 도메인을 입력합니다.

    https://<your-user-pool-domain>
  8. 생성(CREATE)을 선택합니다. 이 단계에서는 클라이언트 ID클라이언트 보안을 사용하지 않습니다.

  9. DONE을 선택합니다.

  10. Google 콘솔에 로그인합니다.

  11. 왼쪽 탐색 모음에서 Credentials(자격 증명)를 선택합니다.

  12. [자격 증명 생성(Create credentials)] 드롭다운 목록에서 [OAuth 클라이언트 ID(OAuth client ID)]를 선택하여 OAuth 2.0 자격 증명을 생성합니다.

  13. Web application(웹 애플리케이션)을 선택합니다.

  14. [권한 있는 JavaScript 원본(Authorized JavaScript origins)] 필드에 사용자 풀 도메인을 입력합니다.

    https://<your-user-pool-domain>
  15. 권한 있는 리디렉션 URI(Authorized Redirect URIs) 필드에 /oauth2/idpresponse 엔드포인트가 있는 사용자 풀 도메인을 입력합니다.

    https://<your-user-pool-domain>/oauth2/idpresponse
  16. Create(생성)를 두 번 선택합니다.

  17. OAuth 클라이언트 ID클라이언트 암호를 메모합니다. 다음 섹션에서 이 둘이 필요합니다.

  18. 확인(OK)을 선택합니다.

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

  2. Apple 자격 증명으로 로그인합니다.

  3. 왼쪽 탐색 모음에서 Certificates, IDs & Profiles(인증서, ID 및 프로필)를 선택합니다.

  4. 왼쪽 탐색 모음에서 Identifiers(식별자)를 선택합니다.

  5. Identifiers(식별자) 페이지에서 + 아이콘을 선택합니다.

  6. Register a New Identifier(새 식별자 등록) 페이지에서 App IDs(앱 ID)를 선택한 다음 계속을 선택합니다.

  7. Register an App ID(앱 ID 등록) 페이지에서 다음을 수행합니다.

    1. 설명에 설명을 입력합니다.

    2. App ID Prefix(앱 ID 접두사)에서 식별자를 입력합니다. [앱 ID 접두사(App ID Prefix)] 아래의 값을 적어 둡니다. 2단계: 사용자 풀에 소셜 IdP 추가에서 자격 증명 공급자로 Apple을 선택한 후 이 값을 사용합니다.

    3. 기능에서 Sign In with Apple을 선택한 다음 편집을 선택합니다.

    4. [Sign in with Apple: 앱 ID구성(Sign in with Apple: App ID Configuration)] 페이지에서 앱에 적절한 설정을 선택하고 [저장(Save)]을 선택합니다.

    5. 계속(Continue)을 선택합니다.

  8. Confirm your App ID(앱 ID 확인) 페이지에서 등록을 선택합니다.

  9. 식별자 페이지에서 페이지 오른쪽의 앱 ID(App IDs)에 마우스 커서를 올리고 서비스 ID(Services IDs)를 선택한 다음 + 아이콘을 선택합니다.

  10. Register a New Identifier(새 식별자 등록) 페이지에서 Services IDs(서비스 ID)를 선택한 다음 계속을 선택합니다.

  11. Register a Services ID(서비스 ID 등록) 페이지에서 다음을 수행합니다.

    1. 설명에 설명을 입력합니다.

    2. Identifier(식별자)에 식별자를 입력합니다. 2단계: 사용자 풀에 소셜 IdP 추가에서 ID 공급자로 Apple을 선택한 후 이 값이 필요하므로 이 서비스 ID를 기록해 두세요.

    3. Sign In with Apple을 선택한 다음 구성을 선택합니다.

    4. Web Authentication Configuration(웹 인증 구성) 페이지에서 Primary App ID(기본 앱 ID)를 선택합니다. Web Domain(웹 도메인)에서 사용자 풀 도메인을 입력합니다. [반환 URL(Return URLs)] 아래에 사용자 풀 도메인을 입력하고 /oauth2/idpresponse 엔드포인트를 포함합니다. 예:

      https://<your-user-pool-domain>/oauth2/idpresponse
    5. 추가, 저장을 차례로 선택합니다. 도메인을 확인할 필요는 없습니다.

    6. 계속, 등록을 차례로 선택합니다.

  12. 왼쪽 탐색 모음에서 를 선택합니다.

  13. 페이지에 + 아이콘을 선택합니다.

  14. Register a New Key(새 키 등록) 페이지에서 다음을 수행합니다.

    1. [키 이름(Key Name)] 아래에 키 이름을 입력합니다.

    2. Sign In with Apple을 선택한 다음 구성을 선택합니다.

    3. Configure Key(키 구성) 페이지에서 Primary App ID(기본 앱 ID)를 선택하고 저장을 선택합니다.

    4. 계속, 등록을 차례로 선택합니다.

  15. [키 다운로드(Download Your Key)] 페이지에서 [다운로드(Download)]를 선택하여 프라이빗 키를 다운로드하고 표시된 [키 ID(Key ID)]를 적어 둔 다음 [완료(Done)]를 선택합니다. 이 프라이빗 키와 이 페이지에 표시되는 키 ID(Key ID) 값은 2단계: 사용자 풀에 소셜 IdP 추가에서 자격 증명 공급자로 Apple을 선택한 후에 필요합니다.

2단계: 사용자 풀에 소셜 IdP 추가

이 섹션에서는 이전 섹션의 클라이언트 ID와 클라이언트 암호를 사용하여 사용자 풀에 소셜 IdP를 구성합니다.

Original console

AWS Management Console을 사용하여 사용자 풀 소셜 자격 증명 공급자를 구성하려면

  1. Amazon Cognito 콘솔로 이동합니다. 메시지가 표시되면 AWS 자격 증명을 입력합니다.

  2. Manage User Pools(사용자 풀 관리)를 선택합니다.

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

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

  5. ID 공급자를 선택합니다. Facebook, Google, Login with Amazon 또는 Apple.

  6. 선택한 소셜 ID 공급자에 따라 다음 단계 중에서 선택합니다.

    • GoogleLogin with Amazon - 이전 섹션에서 생성된 [앱 클라이언트 ID(app client ID)]와 [앱 클라이언트 암호(app client secret)]를 입력합니다.

    • Facebook - 이전 섹션에서 생성된 앱 클라이언트 ID(app client ID)앱 클라이언트 암호(app client secret)를 입력하고 API 버전(예: 버전 2.12)을 선택합니다. 각 Facebook API에는 수명 주기와 사용 중단 날짜가 있으므로 가능한 한 최신 버전을 선택하는 것이 좋습니다. Facebook 범위와 속성은 API 버전마다 다를 수 있습니다. Facebook에서 소셜 ID 로그인을 테스트하여 페더레이션이 의도한 대로 작동하는지 확인하는 것이 좋습니다.

    • Apple로 로그인(Sign in with Apple) - 이전 섹션에서 생성된 서비스 ID(Services ID), 팀 ID(Team ID), 키 ID(Key ID), 프라이빗 키(private key)를 입력합니다.

  7. 권한을 부여할 범위의 이름을 입력합니다. 범위는 앱에서 액세스하고자 하는 사용자 속성(예: nameemail)을 정의합니다. Facebook의 경우 쉼표로 구분해야 합니다. Google 및 Login with Amazon의 경우 공백으로 구분해야 합니다. Apple로 로그인의 경우, 액세스하려는 범위의 확인란을 선택합니다.

    소셜 자격 증명 공급자 예제 범위
    Facebook public_profile, email
    Google profile email openid
    Login with Amazon profile postal_code
    Apple로 로그인 email name

    앱 사용자는 앱에 이러한 속성들을 제공한다는 데 동의하라는 요청 메시지를 받게 됩니다. 범위에 대한 자세한 내용은 Google, Facebook, Login with Amazon 또는 Sign in with Apple의 설명서를 참조하세요.

    Sign in with Apple의 경우 다음은 범위가 반환되지 않을 수 있는 사용자 시나리오입니다.

    • 최종 사용자가 Apple 로그인 페이지를 벗어난 후 오류 발생(Amazon Cognito 내부 오류 또는 개발자가 작성한 항목에서 발생할 수 있음)

    • 서비스 ID 식별자가 여러 사용자 풀 및/또는 다른 인증 서비스에서 사용됨

    • 최종 사용자가 이전에 로그인한 후 개발자가 추가 범위를 추가함(새로운 정보가 검색되지 않음)

    • 개발자가 사용자를 삭제한 후 해당 사용자가 Apple ID 프로필에서 앱을 제거하지 않고 다시 로그인함

  8. 구성 중인 소셜 자격 증명 공급자에 대해 Enable(활성화)을 선택합니다.

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

  10. 사용자 풀 앱의 활성화된 자격 증명 공급자 중 하나로 소셜 자격 증명 공급자를 선택합니다.

  11. 사용자 풀 앱의 [콜백 URL(Callback URL(s))]에 콜백 URL을 입력합니다. 이것은 인증 성공 이후에 사용자가 리디렉션되는 페이지의 URL입니다.

    https://www.example.com
  12. 변경 사항 저장(Save changes)을 선택합니다.

  13. 속성 매핑 탭에서 다음과 같이 최소한의 필수 속성(일반적으로 email)에 대한 매핑을 추가합니다.

    1. 확인란을 선택하여 Facebook, Google 또는 Amazon 속성 이름을 선택합니다. Amazon Cognito 콘솔에 나열되지 않은 추가 속성의 이름도 입력할 수 있습니다.

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

    3. 변경 사항 저장(Save changes)을 선택합니다.

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

New console

AWS Management Console을 사용하여 사용자 풀 소셜 자격 증명 공급자를 구성하려면

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

  2. [사용자 풀(User Pools)]을 선택합니다.

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

  4. [로그인 환경(Sign-in experience)] 탭을 선택합니다. [페더레이션 로그인(Federated sign-in)]을 찾아서 [자격 증명 공급자 추가(Add an identity provider)]를 선택합니다.

  5. Facebook, Google, Login with Amazon 또는 Sign in with Apple과 같은 소셜 자격 증명 공급자를 선택합니다.

  6. 선택한 소셜 ID 공급자에 따라 다음 단계 중에서 선택합니다.

    • GoogleLogin with Amazon - 이전 섹션에서 생성된 [앱 클라이언트 ID(app client ID)]와 [앱 클라이언트 암호(app client secret)]를 입력합니다.

    • Facebook - 이전 섹션에서 생성된 앱 클라이언트 ID(app client ID)앱 클라이언트 암호(app client secret)를 입력하고 API 버전(예: 버전 2.12)을 선택합니다. 각 Facebook API에는 수명 주기와 사용 중단 날짜가 있으므로 가능한 한 최신 버전을 선택하는 것이 좋습니다. Facebook 범위와 속성은 API 버전마다 다를 수 있습니다. Facebook에서 소셜 ID 로그인을 테스트하여 페더레이션이 의도한 대로 작동하는지 확인하는 것이 좋습니다.

    • Apple로 로그인 - 이전 섹션에서 생성된 서비스 ID(Services ID), 팀 ID(Team ID), 키 ID(Key ID), 프라이빗 키(private key)를 입력합니다.

  7. 사용할 [권한 있는 범위(Authorized scopes)]의 이름을 입력합니다. 범위는 앱에서 액세스하고자 하는 사용자 속성(예: nameemail)을 정의합니다. Facebook의 경우 쉼표로 구분해야 합니다. Google 및 Login with Amazon의 경우 공백으로 구분해야 합니다. Apple로 로그인의 경우, 액세스하려는 범위의 확인란을 선택합니다.

    소셜 자격 증명 공급자 예제 범위
    Facebook public_profile, email
    Google profile email openid
    Login with Amazon profile postal_code
    Apple로 로그인 email name

    앱에 이러한 속성을 제공하는 데 동의하라는 메시지가 앱 사용자에게 표시됩니다. 소셜 공급자 범위에 대한 자세한 내용은 Google, Facebook, Login with Amazon 또는 Sign in with Apple의 설명서를 참조하세요.

    Sign in with Apple의 경우 다음은 범위가 반환되지 않을 수 있는 사용자 시나리오입니다.

    • 최종 사용자가 Apple 로그인 페이지를 벗어난 후 오류 발생(Amazon Cognito 내부 오류 또는 개발자가 작성한 항목에서 발생할 수 있음)

    • 서비스 ID 식별자가 여러 사용자 풀 및/또는 다른 인증 서비스에서 사용됨

    • 최종 사용자가 이전에 로그인한 후 개발자가 추가 범위를 추가함(새로운 정보가 검색되지 않음)

    • 개발자가 사용자를 삭제한 후 해당 사용자가 Apple ID 프로필에서 앱을 제거하지 않고 다시 로그인함

  8. 자격 증명 공급자의 속성을 사용자 풀에 매핑합니다. 자세한 내용은 사용자 풀에 대한 자격 증명 공급자 속성 매핑 지정을 참조하세요.

  9. 생성(Create)을 선택합니다.

  10. [앱 클라이언트 통합(App client integration)] 탭의 목록에서 [앱 클라이언트(App clients)] 중 하나를 선택한 다음, [호스트된 UI 설정 편집(Edit hosted UI settings)]을 선택합니다. [자격 증명 공급자(Identity providers)]에서 앱 클라이언트에 새 소셜 자격 증명 공급자를 추가합니다.

  11. 변경 사항 저장(Save changes)을 선택합니다.

3단계: 소셜 IdP 구성 테스트

이전 두 섹션의 요소를 사용하여 로그인 URL을 생성할 수 있습니다. 이것을 사용하여 소셜 IdP 구성을 테스트합니다.

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

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

참고

Amazon Cognito는 5분 이내에 완료되지 않는 인증 요청을 취소하고 사용자를 호스팅 UI로 리디렉션합니다. 페이지에 Something went wrong 오류 메시지가 표시됩니다.

다음 단계

4단계. 사용자 풀에 SAML 자격 증명 공급자로 로그인 추가(선택 사항)