사용자 풀에서 소셜 자격 증명 공급자 사용 - Amazon Cognito

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

사용자 풀에서 소셜 자격 증명 공급자 사용

웹 및 모바일 앱 사용자들이 Facebook, Google, Amazon 및 Apple 같은 소셜 자격 증명 공급자(IdP)를 통해 로그인할 수 있습니다. Amazon Cognito는 기본 제공 호스트된 웹 UI를 사용하여 모든 인증된 사용자에 대한 토큰 처리 및 관리 기능을 제공합니다. 이렇게 하면 백엔드 시스템을 한 세트의 사용자 풀 토큰에서 표준화할 수 있습니다. 지원되는 소셜 자격 증명 공급자와 통합할 호스트된 UI를 사용하도록 설정해야 합니다. Amazon Cognito가 호스팅 UI를 빌드하면 Amazon Cognito와 OIDC 및 소셜이 정보를 교환하는 데 IdPs 사용하는 OAuth 2.0 엔드포인트가 생성됩니다. 자세한 내용은 Amazon Cognito 사용자 풀 인증 API 참조를 참조하세요.

에서 소셜 IdP를 추가 AWS Management Console하거나 또는 Amazon Cognito 를 AWS CLI 사용할 수 있습니다API.

소셜 로그인의 인증 개요
참고

서드 파티(페더레이션)를 통한 로그인을 Amazon Cognito 사용자 풀에서 사용할 수 있습니다. 이 기능은 Amazon Cognito 자격 증명 풀(페더레이션 자격 증명)을 통한 페더레이션과 무관합니다.

사전 조건

시작하려면 다음이 필요합니다.

  • 앱 클라이언트와 사용자 풀 도메인이 있는 사용자 풀. 자세한 내용은 사용자 풀 생성을 참조하세요.

  • 소셜 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. 앱 ID(App ID)앱 보안(App Secret)을 메모합니다. 다음 섹션에서 이 둘을 사용합니다.

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

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

  9. 웹 사이트 에서 앱의 로그인 페이지 경로를 사이트 URL에 입력합니다.

    https://mydomain.us-east-1.amazoncognito.com/login?response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com
  10. 변경 사항 저장(Save changes)을 선택합니다.

  11. [앱 도메인(App Domains)]에 사용자 풀 도메인 루트의 경로를 입력합니다.

    https://mydomain.us-east-1.amazoncognito.com
  12. 변경 사항 저장(Save changes)을 선택합니다.

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

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

    사용자 풀 도메인의 /oauth2/idpresponse 엔드포인트 경로를 유효한 OAuth 리디렉션 URIs에 입력합니다.

    https://mydomain.us-east-1.amazoncognito.com/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. 보안 프로필 이름 , 보안 프로필 설명 , 동의 개인정보 보호 고지 URL를 입력합니다.

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

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

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

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

    https://mydomain.us-east-1.amazoncognito.com
  10. /oauth2/idpresponse 엔드포인트가 있는 사용자 풀 도메인을 허용된 반환 URLs에 입력합니다.

    https://mydomain.us-east-1.amazoncognito.com/oauth2/idpresponse
  11. 저장(Save)을 선택합니다.

Google Cloud 플랫폼의 OAuth 2.0에 대한 자세한 내용은 Google Workspace for Developers 설명서의 인증 및 권한 부여에 대해 알아보기를 참조하세요.

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

  2. Google Cloud Platform 콘솔에 로그인합니다.

  3. 상단 탐색 모음에서 프로젝트 선택(Select a project)을 선택합니다. Google 플랫폼에 프로젝트가 이미 있는 경우 이 메뉴에는 대신 기본 프로젝트가 표시됩니다.

  4. NEW 를 PROJECT선택합니다.

  5. 제품의 이름을 입력한 다음 를 선택합니다CREATE.

  6. 왼쪽 탐색 모음에서 APIs 및 서비스를 선택한 다음 Oauth 동의 화면 을 선택합니다.

  7. 앱 정보(App information), 앱 도메인(App domain), 공인 도메인(Authorized domains)개발자 연락처 정보(Developer contact information)를 입력합니다. 공인 도메인(Authorized domains)amazoncognito.com 및 사용자 지정 도메인의 루트를 포함해야 합니다(예: example.com). SAVE AND 를 CONTINUE선택합니다.

  8. 1. 범위 에서 범위 추가 또는 제거 를 선택하고 최소한 다음 OAuth 범위를 선택합니다.

    1. .../auth/userinfo.email

    2. .../auth/userinfo.profile

    3. openid

  9. 사용자 테스트(Test users)에서 사용자 추가(Add users)를 선택합니다. 이메일 주소와 다른 승인된 테스트 사용자를 입력한 다음 SAVE AND CONTINUE를 선택합니다.

  10. 왼쪽 탐색 모음을 다시 확장하고 APIs 및 서비스 를 선택한 다음 자격 증명 을 선택합니다.

  11. CREATE CREDENTIALS를 선택한 다음 OAuth 클라이언트 ID 를 선택합니다.

  12. 애플리케이션 유형(Application type)을 선택하고 클라이언트 이름을 지정합니다.

  13. 승인된 JavaScript 오리진에서 를 선택합니다ADDURI. 사용자 풀 도메인을 입력합니다.

    https://mydomain.us-east-1.amazoncognito.com
  14. 승인된 리디렉션URIs에서 ADD URI를 선택합니다. 사용자 풀 도메인의 /oauth2/idpresponse 엔드포인트에 대한 경로를 입력합니다.

    https://mydomain.us-east-1.amazoncognito.com/oauth2/idpresponse
  15. 를 선택합니다CREATE.

  16. 클라이언트 ID(Your client ID)클라이언트 암호(Your client secret)에서 Google이 표시하는 값을 안전하게 저장합니다. Google IdP를 추가할 때 이러한 값을 Amazon Cognito에 입력합니다.

Apple로 로그인 설정에 대한 자세한 up-to-date 내용은 Apple 개발자 설명서의 Apple로 로그인을 위한 환경 구성을 참조하세요.

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

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

  3. 왼쪽 탐색 모음에서 인증서, 식별자 및 프로필(Certificates, Identifiers & Profiles)을 선택합니다.

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

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

  6. 새 식별자 등록 페이지에서 앱 IDs을 선택한 다음 계속 을 선택합니다.

  7. 유형 선택(Select a type) 페이지에서 앱(App)을 선택하고 계속(Continue)을 선택합니다.

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

    1. 설명(Description)에 설명을 입력합니다.

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

    3. 기능(Capabilities)에서 Apple로 로그인(Sign In with Apple)을 선택한 다음 편집(Edit)을 선택합니다.

    4. Apple로 로그인: 앱 ID 구성 페이지에서 앱을 기본 앱으로 설정하거나 다른 앱과 그룹화하도록 선택한 IDs다음 저장을 선택합니다.

    5. 계속을 선택합니다.

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

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

  11. 새 식별자 등록 페이지에서 서비스 IDs를 선택한 다음 계속 을 선택합니다.

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

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

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

    3. 계속(Continue)등록(Register)을 차례로 선택합니다.

  13. 식별자(Identifiers) 페이지에서 방금 생성한 서비스 ID를 선택합니다.

    1. Apple로 로그인(Sign In with Apple)을 선택한 다음 구성(Configure)을 선택합니다.

    2. 웹 인증 구성(Web Authentication Configuration) 페이지에서 앞서 생성한 앱 ID를 기본 앱 ID(Primary App ID)로 선택합니다.

    3. 웹 사이트 URLs옆의 + 아이콘을 선택합니다.

    4. 도메인 및 하위 도메인(Domains and subdomains)에서 https:// 접두사를 사용하지 않고 사용자 풀 도메인을 입력합니다.

      mydomain.us-east-1.amazoncognito.com
    5. 반환URLs에서 사용자 풀 도메인의 /oauth2/idpresponse 엔드포인트에 대한 경로를 입력합니다.

      https://mydomain.us-east-1.amazoncognito.com/oauth2/idpresponse
    6. 다음(Next)완료(Done)를 차례로 선택합니다. 도메인을 확인할 필요는 없습니다.

    7. 계속(Continue)저장(Save)을 차례로 선택합니다.

  14. 왼쪽 탐색 모음에서 키(Keys)를 선택합니다.

  15. 키(Keys) 페이지에 + 아이콘을 선택합니다.

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

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

    2. Apple로 로그인(Sign In with Apple)을 선택한 다음 구성(Configure)을 선택합니다.

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

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

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

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

를 사용하여 사용자 풀 소셜 IdP를 구성하려면 AWS Management Console
  1. Amazon Cognito 콘솔로 이동합니다. 메시지가 표시되면 AWS 자격 증명을 입력합니다.

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

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

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

  5. Login with Amazon 또는 Facebook, Google Apple로 로그인(Sign in with Apple) 소셜 IdP를 선택합니다.

  6. 선택한 소셜 IdP에 따라 다음 단계 중에서 선택합니다.

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

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

    • Apple로 로그인(Sign In with 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. IdP의 속성을 사용자 풀에 매핑합니다. 자세한 내용은 사용자 풀에 대한 자격 증명 공급자 속성 매핑 지정을 참조하세요.

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

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

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

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

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

https://mydomain.us-east-1.amazoncognito.com/login?response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com

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

참고

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