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

최종 업데이트 날짜: 2019년 6월 27일

내 앱의 사용자가 LinkedIn을 사용하여 로그인하게 하려고 합니다. LinkedIn을 Amazon Cognito 사용자 풀에 소셜 자격 증명 공급자(IdP)로 설정하려면 어떻게 해야 합니까?

간략한 설명

LinkedIn은 사용자 풀에 OpenID Connect(OIDC) 공급자를 추가할 때 Amazon Cognito에 필요한 모든 필드를 제공하지 않습니다.

LinkedIn과 Amazon Cognito 간에 중간 에이전트로서 Auth0같은 타사 서비스를 사용해야 합니다. Auth0는 LinkedIn에서 자격 증명을 가져오고 Amazon Cognito는 Auth0에서 이러한 자격 증명을 가져옵니다.

참고: Auth0는 AWS와 관련 없는 타사 서비스입니다. Auth0를 사용하면 별도의 요금이 부과될 수 있습니다.

이 설정은 유사한 통합 문제가 있을 수 있는 다른 소셜 IdP에서도 사용할 수 있습니다. 자세한 내용은 Auth0 웹 사이트의 Connections를 참조하십시오.

​해결 방법

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

이러한 사전 조건 생성에 대한 자세한 내용은 다음을 참조하십시오.

Auth0 계정 가입

참고: Auth0 계정이 이미 있는 경우 로그인합니다.

Auth0 웹 사이트 가입 페이지에서 이메일 주소와 암호를 입력하여 시작합니다.

로그인 후 사용자의 Auth0 테넌트 이름을 기록합니다.

Auth0 애플리케이션 생성

참고: 사용하려는 Auth0 애플리케이션을 이미 생성한 경우 다음 섹션으로 계속 진행합니다.

  1. [Auth0 웹 사이트 대시보드]에서 [+Create Application]을 선택합니다.
  2. [Create Application] 대화 상자에서 애플리케이션의 이름을 입력합니다. 예를 들어 My App으로 입력할 수 있습니다.
  3. [Choose an application type]에서 [Single Page Web Applications]를 선택합니다.
  4. [Create]를 선택합니다.
  5. 새 애플리케이션의 [Settings] 창에서 다음을 수행합니다.
    클라이언트 ID클라이언트 암호를 찾아서 복사합니다. Auth0를 Amazon Cognito 사용자 풀에 연결할 때 나중에 이 정보가 필요합니다.
    Allowed Callback URLshttps://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/idpresponse를 입력합니다.
    참고: yourDomainPrefixregion을 실제 사용자 풀의 값으로 바꾸십시오. 이 두 값은 Amazon Cognito 콘솔의 사용자 풀 관리 페이지에 있는 [Domain name] 탭에서 확인할 수 있습니다.
  6. [Save changes]를 선택합니다.

LinkedIn 계정에 가입

참고: 이미 LinkedIn 계정이 있는 경우에는 로그인합니다.

[LinkedIn 웹 사이트 가입 페이지]에 이메일 주소와 암호를 입력하여 시작합니다.

LinkedIn 앱 생성

  1. LinkedIn 개발자 웹 사이트에서 [Create app]을 선택합니다..
  2. [Create an app] 페이지에서 모든 필수 및 기본 필드를 작성하여 LinkedIn 앱을 사용자 지정한 후 [Create app]을 선택합니다.
  3. [Auth] 창을 선택합니다.
    참고: [Permissions]에서 r_emailaddressr_liteprofile이 나열되는지 확인합니다. 이 권한은 Auth0이 필수 LinkedIn 사용자 정보에 액세스하는 데 필요합니다.
  4. [Application credentials]에서 클라이언트 ID클라이언트 암호를 찾아 복사합니다. 이 두 개는 나중에 LinkedIn을 Auth0 앱에 연결할 때 필요합니다.
  5. [OAuth 2.0 설정]에서 [Redirect URLs] 옆의 연필 아이콘을 선택하고 [+Add redirect URL]을 선택합니다.
  6. [Redirect URL:]에 https://tenantName.auth0.com/login/callback을 입력하여 tenantNameAuth0 tenant name 또는 Auth0 custom domain으로 바꿉니다.

자세한 내용은 Auth0 웹 사이트에서 Add LinkedIn Login to Your App을 참조하십시오.

Auth0에서 LinkedIn에 연결

  1. [Auth0 웹 사이트 대시보드]의 왼쪽 탐색 창에서 [Connections]를 선택한 다음 [Social]을 선택합니다.
  2. LinkedIn을 선택합니다.
  3. LinkedIn 대화 상자의 [Settings] 창에서 다음을 수행합니다.
    [API Key]에 LinkedIn 앱에서 복사한 클라이언트 ID를 입력합니다.
    [Secret Key]에 사용자의 LinkedIn 앱에서 복사한
    클라이언트 암호를 입력합니다.
    [Attributes]에서 [Email address] 확인란을 선택합니다.
  4. [저장]을 선택하십시오.
  5. LinkedIn 대화 상자의 [Applications] 창에서 소셜 IdP로서 LinkedIn을 활성화하려는 애플리케이션을 선택합니다.
  6. [저장]을 선택하십시오.

자세한 내용은 Auth0 웹 사이트에서 Add LinkedIn Login to Your App을 참조하십시오.

LinkedIn과 Auth0의 소셜 연결을 테스트합니다.

  1. LinkedIn 대화 상자에서 [Try]를 선택합니다. 또는 왼쪽 탐색 창에서 Auth0 대시보드에서 [Connections]를 선택하고 [Social]을 선택한 다음, LinkedIn 옆에 있는 [Try]를 선택합니다. 새 브라우저 탭 또는 창이 LinkedIn 로그인 페이지에 열립니다.
  2. 이메일 주소 및 암호로 LinkedIn에 로그인합니다.
  3. 앱이 LinkedIn 사용자 정보에 액세스를 허용한다는 메시지가 표시되면 Allow를 선택합니다.

자세한 내용은 Auth0 웹 사이트의 Test Social Connections를 참조하십시오.

사용자 풀에 OIDC 공급자 추가

  1. 사용자 풀의 Amazon Cognito 콘솔 관리 페이지에서 [Federation] 아래에서 [Identity Providers]를 선택합니다.
  2. [OpenID Connect]를 선택합니다.
  3. OIDC 공급자 세부 정보에 Auth0 앱 세부 정보를 다음과 같이 입력합니다.
    [Provider name]에 이름을 입력합니다(예: Auth0-LinkedIn). Amazon Cognito 호스팅 웹 UI에 이 이름이 표시됩니다.
    참고: 공급자를 생성한 후에는 이필드를 변경할 수 없습니다. 이 필드를 사용자 앱에 포함하거나 Amazon Cognito 호스팅 웹 UI을 사용하려면 앱 사용자들이 보기에 적합한 이름을 사용하십시오.
    [Client ID]에 Auth0 애플리케이션에서 복사한 클라이언트 ID를 입력합니다.
    [Client secret (optional)]에 Auth0 애플리케이션에서 복사한 클라이언트 암호를 입력합니다.
    [Attributes request method]를 [
    GET]으로 설정된 상태로 두십시오.
    [Authorize scope]에 openid profile 이메일을 입력합니다.
    [Issuer]에 Auth0 프로파일 URL을 입력합니다. 예를 들어 https://tenantName.auth0.com에서 tenantName를 사용자의 Auth0 테넌트 이름으로 교체합니다.
    [Identifiers(optional)]에 사용자 지정 문자열을 입력하여 OIDC 공급자 이름 대신 나중에 엔드인트 URL을 사용할 수도 있습니다.
  4. [Run discovery]를 선택하여 Auth0의 OIDC 구성 엔드포인트를 가져옵니다.
  5. [Create provider]를 선택합니다.

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

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

  1. Amazon Cognito 콘솔의 사용자 풀 관리 페이지에 있는 [App integration]에서 [App client settings]를 선택합니다.
  2. 앱 클라이언트 페이지에서 다음 작업을 수행하십시오.
    [Enabled Identity Providers]에서 OIDC 공급자(예: Auth0-LinkedIn) 및 [Cognito User Pool] 확인란을 선택합니다.
    로그인 후 귀하의 사용자가 리디렉션하기를 원하는 URL을 [Callback URL(s)]에 입력합니다. https://example.com과 같은 유효한 URL을 입력하여 테스트할 수 있습니다.
    로그아웃 후 귀하의 사용자가 리디렉션하기를 원하는 URL을 Sign out URL(s)에 입력합니다. https://example.com과 같은 유효한 URL을 입력하여 테스트할 수 있습니다.
    [Allowed OAuth Flows]에서 [Authorization code grant] 또는 [Implicit Grant] 확인란을 선택하거나 원하는 경우 두 개 모두 선택합니다.
    참고: 사용자가 활성화한 허용된 OAuth 흐름은 엔드포인트 URL의 파라미터 response_type에 사용할 수 있는 값("code" 또는 "token")을 결정합니다.
    [Allowed OAuth Scopes]에서 [email] 및 [openid] 확인란을 선택합니다.
  3. [Save changes]를 선택합니다.

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

Authh0의 속성을 사용자 풀에 매핑

  1. 사용자 풀의 Amazon Cognito 콘솔 관리 페이지에 [Federation]아래에서 [Attribute mapping]을 선택합니다.
  2. 속성 매핑 페이지에서 [OIDC] 탭을 선택합니다.
  3. 사용자 풀에 두 개 이상의 OIDC 공급자가 있는 경우 드롭다운에서 새 공급자를 선택합니다.
  4. OIDC 속성 sub이 사용자 풀 속성 Username에 매핑되는지 확인합니다.
  5. OIDC 속성 추가를 선택합니다. 새로운 OIDC 속성에서 이메일을 입력합니다. 사용자 풀 속성에서 이메일을 선택합니다.
  6. (선택 사항) Auth0에서 전달하려는 추가 OIDC 속성을 추가합니다. 예를 들어, given_namefamily_name을 해당하는 Amazon Cognito 사용자 풀 속성에 매핑합니다.
    참고: Auth0 사용자에 대해 저장된 모든 OIDC 속성을 보려면 왼쪽 탐색 창의 [Auth0 웹 사이트]에서 [Users & Roles]을 선택하고 [Users] 및 [Raw JSON]을 선택합니다.

자세한 내용은 사용자 풀에 대한 자격 증명 공급자 속성 매핑 지정을 참조하십시오.

엔드포인트 URL 구성

자체 설정 값을 사용하여 다음 엔드포인트 URL을 구성합니다.

https://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/authorize?response_type=code&client_id=yourClientId&redirect_uri=redirectUrl

다음 작업을 수행하여 설정에 대한 URL을 사용자 지정할 수 있습니다.

  • yourDomainPrefixregion을 실제 사용자 풀의 값으로 바꾸십시오. 이 두 값은 Amazon Cognito 콘솔의 사용자 풀 관리 페이지에 있는 [Domain name] 탭에서 확인할 수 있습니다.
  • 이전에 [Allowed OAuth Flows]에 대해 조기에 [Implicit grant] 흐름만 선택한 경우, response_type=coderesponse_type=token으로 변경합니다.
  • yourClientId는 앱 클라이언트의 ID로, redirectUrl은 앱 클라이언트의 콜백 URL로 각각 바꾸십시오. 이 ID와 URL은 Amazon Cognito 콘솔의 사용자 풀 관리 페이지에 있는 [App client settings] 탭에서 확인할 수 있습니다.

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

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

  1. 웹 브라우저에 구성된 엔드포인트 URL을 입력합니다.
  2. [Sign in with your corporate ID]에서 OIDC 공급자 이름(예: Auth0-LinkedIn)을 선택합니다. Auth0 애플리케이션의 로그인 페이지로 리디렉션됩니다.
  3. [Log in with LinkedIn]을 선택합니다. LinkedIn 로그인 페이지로 리디렉션됩니다.
    참고: 대신 Amazon Cognito 앱 클라이언트의 콜백 URL로 리디렉션된 경우 이미 LinkedIn에 로그인되었다는 것입니다.
  4. LinkedIn 로그인 페이지에서 LinkedIn 계정의 이메일 주소(또는 전화 번호)및 암호를 입력합니다.
  5. [Sign in]을 선택합니다.

로그인하고 나면 앱 클라이언트의 콜백 URL로 리디렉션됩니다. 승인 코드 또는 사용자 풀 토큰은 웹 브라우저의 주소 표시줄에 있는 URL에 표시됩니다.

(선택 사항) Amazon Cognito 호스팅 UI 건너뛰기

엡에 로그인할 때 사용자가 Amazon Cognito 호스팅 웹 UI를 건너뛰게 하려면 엔드포인트 URL로서 다음 URL을 사용합니다.

https://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/authorize?response_type=code&identity_provider=oidcProviderName&client_id=yourClientId&redirect_uri=redirectUrl&scope=allowedOauthScopes

다음 작업을 수행하여 설정에 대한 URL을 사용자 지정할 수 있습니다.

  • yourDomainPrefixregion을 실제 사용자 풀의 값으로 바꾸십시오. 이 두 값은 Amazon Cognito 콘솔의 사용자 풀 관리 페이지에 있는 [Domain name] 탭에서 확인할 수 있습니다.
  • 이전에 [Allowed OAuth Flows]에 대해 조기에 [Implicit grant] 흐름만 선택한 경우, response_type=coderesponse_type=token으로 변경합니다.
  • oidcProviderName을 사용자 풀의 OIDC 공급자 이름으로 교체합니다. 예를 들어, Auth0-LinkedIn입니다.
  • (선택 사항) OIDC 공급자의 식별자를 이미 Identifiers (optional) 필드에 추가한 경우, identity_provider=oidcProviderNameidp_identifier=idpIdentifier로, idpIdentifier를 사용자 지정 식별자 문자열로 교체합니다.
  • yourClientId는 앱 클라이언트의 ID로, redirectUrl은 앱 클라이언트의 콜백 URL로 각각 바꾸십시오. 이 ID와 URL은 Amazon Cognito 콘솔의 사용자 풀 관리 페이지에 있는 [App client settings] 탭에서 확인할 수 있습니다.
  • allowedOauthScopes를 Amazon Cognito 앱 클라이언트가 요청하려는 특정 범위로 교체합니다.

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


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

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


도움이 필요하십니까?