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

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

앱 사용자는 사용자 풀을 통해 직접 로그인하거나 타사 자격 증명 공급자(IdP)를 통해 연동 로그인할 수 있습니다. 사용자 풀에서는 Facebook, Google 및 Apple, 그리고 Amazon을 통한 소셜 로그인에서 반환된 토큰과 OpenID Connect(OIDC) 및 SAML IdP에서 반환된 토큰의 처리 작업을 관리합니다. Amazon Cognito는 기본 제공되는 호스팅 웹 UI를 사용하여 모든 IdP에서 인증된 사용자에 대한 토큰 처리 및 관리 기능을 제공합니다. 이렇게 하면 백엔드 시스템을 한 세트의 사용자 풀 토큰에서 표준화할 수 있습니다.

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

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


                소셜 로그인의 인증 개요

Amazon Cognito는 사용자 디렉터리이자 OAuth 2.0 아이덴티티 제공업체(IdP)입니다. 기본 사용자로 Amazon Cognito 디렉터리에 로그인할 때 사용자 풀은 앱의 IdP입니다. 기본 사용자는 가입한 사용자이거나 관리자가 사용자 풀에서 직접 생성하는 사용자입니다.

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

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

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

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

Amazon Cognito SP로서 앱의 책임

토큰의 정보 확인 및 처리

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

Amazon Cognito API 요청으로 인증 이벤트에 응답

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

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

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

  • API 작업 InitiateAuthAdminInitiateAuth를 통해 페더레이션 사용자로 로그인할 수 없습니다. 페더레이션 사용자는 Login 엔드포인트 또는 권한 부여 엔드포인트를 사용해서만 로그인할 수 있습니다.

  • 권한 부여 엔드포인트를 사용하면 호스팅 UI를 통해 투명하게 사용자를 페더레이션 공급자 로그인으로 리디렉션할 수 있습니다. 예시는 엔터프라이즈 대시보드에서 Amazon Cognito 앱 북마크에서 확인하세요.

  • 호스팅 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 속성을 직접 변경할 수 없습니다. 페더레이션 사용자를 연결하는 방법에 대한 자세한 내용은 페더레이션 사용자를 기존 사용자 프로필에 연결 색션을 참조하세요.