

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

# 타사 ID 제공업체를 통한 사용자 풀 로그인
<a name="cognito-user-pools-identity-federation"></a>

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

## Amazon Cognito 사용자 풀에서 페더레이션 로그인이 작동하는 방식
<a name="cognito-user-pools-identity-federation-how-it-works"></a>

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

![소셜 로그인의 인증 개요](http://docs.aws.amazon.com/ko_kr/cognito/latest/developerguide/images/scenario-authentication-cup.png)


Amazon Cognito는 사용자 디렉터리이자 OAuth 2.0 아이덴티티 제공업체(IdP)입니다. Amazon Cognito 디렉터리에 *로컬 사용자*를 로그인할 때 사용자 풀은 앱의 IdP입니다. 로컬 사용자는 외부 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 토큰 및 새로 고침 토큰을 생성합니다. 토큰에 대한 자세한 내용은 [사용자 풀 JSON 웹 토큰(JWT) 이해](amazon-cognito-user-pools-using-tokens-with-identity-providers.md) 섹션을 참조하세요.

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

## Amazon Cognito에서 서비스 공급자로서 앱의 책임
<a name="cognito-user-pools-identity-federation-how-it-works-app-responsibilities"></a><a name="cognito-user-pools-identity-federation-how-it-works-app-responsibilities"></a>

**토큰의 정보 확인 및 처리**  
대부분의 시나리오에서 Amazon Cognito는 인증된 사용자를 인증 코드와 함께 추가한 앱 URL로 리디렉션합니다. 앱에서는 액세스, ID 및 새로 고침 토큰용 [코드를 교환합니다](https://docs.aws.amazon.com/cognito/latest/developerguide/token-endpoint.html). 그런 다음 [토큰의 유효성을 확인](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-verifying-a-jwt.html)하고 토큰의 클레임을 기반으로 사용자에게 정보를 제공해야 합니다.

**Amazon Cognito API 요청으로 인증 이벤트에 응답**  
앱은 [Amazon Cognito 사용자 풀 API](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/Welcome.html) 및 [인증 API 엔드포인트](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-userpools-server-contract-reference.html)와 통합되어야 합니다. 인증 API는 사용자를 로그인 및 로그아웃하고 토큰을 관리합니다. 사용자 풀 API에는 사용자 풀, 사용자 및 인증 환경의 보안을 관리하는 다양한 작업이 있습니다. 앱은 Amazon Cognito로부터 응답을 받을 때 다음에 수행할 작업을 알아야 합니다.

## Amazon Cognito 사용자 풀 타사 로그인에 대해 알아야 할 사항
<a name="cognito-user-pools-identity-federation-how-it-works-considerations"></a><a name="cognito-user-pools-identity-federation-how-it-works-considerations"></a>
+ 사용자가 페더레이션 공급자로 로그인하도록 하려면 도메인을 선택해야 합니다. 이렇게 하면 [관리형 로그인](cognito-userpools-server-contract-reference.md)을 위한 페이지가 설정됩니다. 자세한 내용은 [관리형 로그인에 자체 도메인 사용](cognito-user-pools-add-custom-domain.md) 단원을 참조하십시오.
+ API 작업 [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html) 및 [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)를 통해 페더레이션 사용자로 로그인할 수 없습니다. 페더레이션 사용자는 [Login 엔드포인트](login-endpoint.md) 또는 [권한 부여 엔드포인트](authorization-endpoint.md)를 사용해서만 로그인할 수 있습니다.
+ [권한 부여 엔드포인트](authorization-endpoint.md)는 *리디렉션* 엔드포인트입니다. 요청에 `idp_identifier` 또는 `identity_provider` 파라미터를 입력하면 관리형 로그인을 우회하여 자동으로 IdP로 리디렉션됩니다. 그렇지 않으면 관리형 로그인 [Login 엔드포인트](login-endpoint.md)로 리디렉션됩니다.
+ 관리형 로그인이 세션을 페더레이션 IdP로 리디렉션하면 Amazon Cognito는 요청에 `user-agent` 헤더인 `Amazon/Cognito`를 포함합니다.
+ Amazon Cognito는 고정 식별자와 IdP의 이름 조합에서 페더레이션 사용자 프로필의 `username` 속성을 추출합니다. 사용자 지정 요구 사항에 맞는 사용자 이름을 생성하려면 `preferred_username` 속성에 대한 매핑을 만듭니다. 자세한 내용은 [매핑에 대해 알아야 할 사항](cognito-user-pools-specifying-attribute-mapping.md#cognito-user-pools-specifying-attribute-mapping-requirements) 단원을 참조하십시오.

  예시: `MyIDP_bob@example.com`
+ Amazon Cognito는 [사용자 풀에 추가하는 각 OIDC, SAMl 및 소셜 IdP에 대한 사용자 그룹](cognito-user-pools-user-groups.md)을 생성합니다. 그룹 이름은 `us-east-1_EXAMPLE_MYSSO` 또는 `us-east-1_EXAMPLE_Google`과 같은 `[user pool ID]_[IdP name]` 형식입니다. 자동으로 생성된 각 고유 IdP 사용자 프로필이 이 그룹에 자동으로 추가됩니다. [연결된 사용자](cognito-user-pools-identity-federation-consolidate-users.md)는 이 그룹에 자동으로 추가되지 않지만 별도의 프로세스에서 그룹에 프로필을 추가할 수 있습니다.
+ Amazon Cognito는 페더레이션 사용자의 ID 정보를 속성과 `identities`라는 ID 토큰의 클레임에 기록합니다. 이 클레임에는 사용자의 제공업체와 제공업체의 고유 ID가 포함됩니다. 사용자 프로필에서 `identities` 속성을 직접 변경할 수 없습니다. 페더레이션 사용자를 연결하는 방법에 대한 자세한 내용은 [페더레이션 사용자를 기존 사용자 프로필에 연결](cognito-user-pools-identity-federation-consolidate-users.md) 색션을 참조하세요.
+ [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html) API 요청에서 IdP를 업데이트하면, 변경 사항이 관리형 로그인에 표시되기까지 최대 1분이 걸립니다.
+ Amazon Cognito는 Amazon Cognito와 사용자 IdP 간의 HTTP 리디렉션을 20개까지 지원합니다.
+ 사용자가 관리형 로그인으로 로그인하면 브라우저는 로그인에 사용한 클라이언트 및 제공업체를 기록하는 암호화된 로그인 세션 쿠키를 저장합니다. 동일한 파라미터로 다시 로그인을 시도하면 관리형 로그인은 *만료되지 않은* 기존 세션을 재사용하며, 사용자는 보안 인증을 다시 제공하지 않고 인증합니다. 사용자는 다른 IdP로 다시 로그인할 경우(로컬 사용자 풀 로그인으로 전환하거나 로컬 사용자 풀 로그인에서 전환하는 경우 포함) 보안 인증을 제공하고 새 로그인 세션을 생성해야 합니다.

  사용자 풀 IdP는 어떤 앱 클라이언트에도 할당할 수 있으며, 사용자는 사용자의 앱 클라이언트에 할당된 IdP로만 로그인할 수 있습니다.

**Topics**
+ [Amazon Cognito 사용자 풀에서 페더레이션 로그인이 작동하는 방식](#cognito-user-pools-identity-federation-how-it-works)
+ [Amazon Cognito에서 서비스 공급자로서 앱의 책임](#cognito-user-pools-identity-federation-how-it-works-app-responsibilities)
+ [Amazon Cognito 사용자 풀 타사 로그인에 대해 알아야 할 사항](#cognito-user-pools-identity-federation-how-it-works-considerations)
+ [사용자 풀의 자격 증명 공급자 구성](cognito-user-pools-identity-provider.md)
+ [사용자 풀에서 소셜 ID 제공업체 사용](cognito-user-pools-social-idp.md)
+ [사용자 풀에서 SAML ID 제공업체 사용](cognito-user-pools-saml-idp.md)
+ [사용자 풀에서 OIDC ID 제공업체 사용](cognito-user-pools-oidc-idp.md)
+ [프로필 및 토큰에 IdP 속성 매핑](cognito-user-pools-specifying-attribute-mapping.md)
+ [페더레이션 사용자를 기존 사용자 프로필에 연결](cognito-user-pools-identity-federation-consolidate-users.md)