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

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

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

앱 사용자는 사용자 풀을 통해 직접 로그인하거나 타사 자격 증명 공급자(IdP )를 통해 페더레이션할 수 있습니다. 사용자 풀은 소셜 로그인에서 Facebook, Google, Amazon 및 Apple을 통해, OpenID Connect(OIDC) 및 에서 반환되는 토큰을 처리하는 오버헤드를 관리합니다SAML IdPs. 호스팅 웹 UI가 내장된 Amazon Cognito는 모든 의 인증된 사용자를 위한 토큰 처리 및 관리를 제공합니다 IdPs. 이렇게 하면 백엔드 시스템을 한 세트의 사용자 풀 토큰에서 표준화할 수 있습니다.

Amazon Cognito 사용자 풀에서 페더레이션 로그인이 작동하는 방식

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

소셜 로그인의 인증 개요

Amazon Cognito는 사용자 디렉터리 및 OAuth 2.0 자격 증명 공급자(IdP )입니다. Amazon Cognito 디렉터리에 로컬 사용자를 로그인할 때 사용자 풀은 앱의 IdP입니다. 로컬 사용자는 외부 IdP를 통한 페더레이션 없이 사용자 풀 디렉터리에만 존재합니다.

Amazon Cognito를 소셜, SAML또는 OpenID Connect(OIDC)에 연결하면 IdPs사용자 풀이 여러 서비스 공급자와 앱 간의 브리지 역할을 합니다. IdP에 있어 Amazon Cognito는 서비스 제공업체(SP)입니다. OIDC ID 토큰 또는 어SAML설션을 Amazon Cognito 에 IdPs 전달합니다. Amazon Cognito는 토큰 또는 어설션에서 사용자에 대한 클레임을 읽고 이러한 클레임을 사용자 풀 디렉터리의 새 사용자 프로필에 매핑합니다.

그런 다음 Amazon Cognito는 페더레이션 사용자에 대한 사용자 프로필을 자체 디렉터리에 생성합니다. Amazon Cognito는 IdP의 클레임을 기반으로 사용자에게 속성을 추가하고, OIDC 및 소셜 자격 증명 공급자의 경우 IdP에서 운영하는 퍼블릭 userinfo 엔드포인트를 추가합니다. 매핑된 IdP 속성이 변경되면 사용자 풀에서 사용자 속성이 변경됩니다. IdP와 별개로 속성을 더 추가할 수도 있습니다.

Amazon Cognito가 페더레이션 사용자 프로필을 생성한 후에는 해당 함수가 변경되고 앱의 IdP로 표시되어 SP가 됩니다. Amazon Cognito는 OIDC 및 OAuth 2.0 IdP 의 조합입니다. 액세스 토큰, ID 토큰 및 새로 고침 토큰을 생성합니다. 토큰에 대한 자세한 내용은 사용자 풀 JSON 웹 토큰 이해(JWTs) 섹션을 참조하세요.

Amazon Cognito와 통합되는 앱을 설계하여 페더레이션 사용자든 로컬 사용자든 상관없이 사용자를 인증하고 권한을 부여해야 합니다.

Amazon Cognito에서 서비스 공급자로서 앱의 책임

토큰의 정보 확인 및 처리

대부분의 시나리오에서 Amazon Cognito는 인증된 사용자를 권한 부여 코드가 URL 추가된 앱으로 리디렉션합니다. 앱에서는 액세스, ID 및 새로 고침 토큰용 코드를 교환합니다. 그런 다음 토큰의 유효성을 확인하고 토큰의 클레임을 기반으로 사용자에게 정보를 제공해야 합니다.

Amazon Cognito API 요청을 사용하여 인증 이벤트에 응답

앱은 Amazon Cognito 사용자 풀 API 인증 API 엔드포인트 와 통합되어야 합니다. 인증은 사용자가 로그인 및 API 로그아웃하고 토큰을 관리합니다. 사용자 풀에는 사용자 풀, 사용자 및 인증 환경의 보안을 관리하는 API 다양한 작업이 있습니다. 앱은 Amazon Cognito로부터 응답을 받을 때 다음에 수행할 작업을 알아야 합니다.

Amazon Cognito 사용자 풀 타사 로그인에 대해 알아야 할 사항

  • 사용자가 페더레이션 공급자로 로그인하도록 하려면 도메인을 선택해야 합니다. 이렇게 하면 Amazon Cognito 호스팅 UI와 호스팅 UI 및 OIDC 엔드포인트 가 설정됩니다. 자세한 내용은 호스트된 UI에 고유한 도메인 사용 단원을 참조하십시오.

  • InitiateAuth 및 와 같은 API 작업을 사용하여 페더레이션 사용자에 로그인할 수 없습니다AdminInitiateAuth. 페더레이션 사용자는 Login 엔드포인트 또는 권한 부여 엔드포인트를 사용해서만 로그인할 수 있습니다.

  • 권한 부여 엔드포인트리디렉션 엔드포인트입니다. 요청에 idp_identifier 또는 identity_provider 파라미터를 입력하면 호스팅된 UI를 우회하여 자동으로 IdP로 리디렉션됩니다. 그렇지 않으면 호스팅된 UI Login 엔드포인트로 리디렉션됩니다.

  • 호스팅 UI가 세션을 페더레이션 IdP로 리디렉션하면 Amazon Cognito는 요청에 user-agent 헤더인 Amazon/Cognito를 포함합니다.

  • Amazon Cognito는 고정 식별자와 IdP의 이름 조합에서 페더레이션 사용자 프로필의 username 속성을 추출합니다. 사용자 지정 요구 사항에 맞는 사용자 이름을 생성하려면 preferred_username 속성에 대한 매핑을 만듭니다. 자세한 내용은 매핑에 대해 알아야 할 사항 단원을 참조하십시오.

    예시: MyIDP_bob@example.com

  • Amazon Cognito는 페더레이션 사용자의 ID 정보를 속성과 identities라는 ID 토큰의 클레임에 기록합니다. 이 클레임에는 사용자의 제공업체와 제공업체의 고유 ID가 포함됩니다. 사용자 프로필에서 identities 속성을 직접 변경할 수 없습니다. 페더레이션 사용자를 연결하는 방법에 대한 자세한 내용은 페더레이션 사용자를 기존 사용자 프로필에 연결 색션을 참조하세요.

  • 에서 IdP를 업데이트할 때 UpdateIdentityProvider API 요청 시 변경 사항이 호스팅 UI에 표시되는 데 최대 1분이 걸릴 수 있습니다.

  • Amazon Cognito는 자신과 IdP 간에 최대 20개의 HTTP리디렉션을 지원합니다.

  • 사용자가 호스팅 UI로 로그인하면 브라우저는 로그인에 사용한 클라이언트 및 공급자를 기록하는 암호화된 로그인 세션 쿠키를 저장합니다. 동일한 파라미터로 다시 로그인을 시도하면 호스팅 UI는 만료되지 않은 기존 세션을 재사용하며, 사용자는 보안 인증을 다시 제공하지 않고 인증합니다. 사용자는 다른 IdP로 다시 로그인할 경우(로컬 사용자 풀 로그인으로 전환하거나 로컬 사용자 풀 로그인에서 전환하는 경우 포함) 보안 인증을 제공하고 새 로그인 세션을 생성해야 합니다.

    모든 앱 클라이언트 IdPs 에 사용자 풀을 할당할 수 있으며 사용자는 앱 클라이언트에 할당한 IdP로만 로그인할 수 있습니다.