

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

# Amazon을 사용하여 ID 풀 IdP로 로그인 설정
<a name="amazon"></a>

Amazon Cognito ID 풀은 Login with Amazon과 함께 작동하여 모바일 및 웹 앱 사용자에게 페더레이션 인증을 제공합니다. 이 섹션에서는 Login with Amazon을 자격 증명 공급자(IdP)로 사용하여 애플리케이션을 등록하고 설정하는 방법을 설명합니다.

[개발자 포털](https://developer.amazon.com/login-with-amazon)에서 Login with Amazon이 Amazon Cognito와 연동하도록 설정합니다. 자세한 내용은 Login with Amazon FAQ에서 [Setting Up Login with Amazon](https://developer.amazon.com/docs/login-with-amazon/faq.html#setting-up-login-with-amazon)(Login with Amazon 설정)을 참조하세요.

**참고**  
Login with Amazon을 Xamarin 애플리케이션에 통합하려면 [Xamarin Getting Started Guide](https://developer.xamarin.com/guides/cross-platform/getting_started/)(Xamarin 시작 안내서)를 따릅니다.

**참고**  
Unity 플랫폼에서는 Login with Amazon을 기본적으로 통합할 수 없습니다. 대신 웹 보기를 사용하여 브라우저 로그인 흐름을 수행합니다.

## Login with Amazon 설정
<a name="login-with-amazon-setup"></a>

**Login with Amazon 구현**

[Amazon 개발자 포털](https://developer.amazon.com/apps-and-games/login-with-amazon)에서 OAuth 애플리케이션을 자격 증명 풀과 통합하도록 설정하고, Login with Amazon 설명서를 찾고, SDK를 다운로드할 수 있습니다. **개발자 콘솔(Developer console)**을 선택한 다음 개발자 포털에서 **Login with Amazon**을 선택합니다. 애플리케이션에 대한 보안 프로필을 생성한 다음 앱에 대한 Login with Amazon 인증 메커니즘을 빌드할 수 있습니다. Login with Amazon 인증을 앱과 통합하는 방법에 대한 자세한 내용은 [자격 증명 얻기](getting-credentials.md) 섹션을 참조하세요.

Amazon에서는 새 보안 프로필에 대한 OAuth 2.0 **클라이언트 ID(client ID)**를 발급합니다. 보안 프로필 **웹 설정(Web Settings)** 탭에서 **클라이언트 ID(client ID)**를 찾을 수 있습니다. 자격 증명 풀에서 Login with Amazon IdP의 **App ID** 필드에 **보안 프로필 ID**를 입력합니다.

**참고**  
자격 증명 풀에서 Login with Amazon IdP의 **App ID** 필드에 **보안 프로필 ID**를 입력합니다. 이는 **클라이언트 ID**를 사용하는 사용자 풀과 다릅니다.

## Amazon Cognito 콘솔에서 외부 공급자 구성
<a name="login-with-amazon-configure-provider"></a>

**Login with Amazon ID 제공업체(idP)를 추가하려면**

1. [Amazon Cognito 콘솔](https://console.aws.amazon.com/cognito/home)에서 **자격 증명 풀**을 선택합니다. 자격 증명 풀을 선택합니다.

1. **사용자 액세스** 탭을 선택합니다.

1. **ID 제공업체 추가**를 선택합니다.

1. **Login with Amazon**을 선택합니다.

1. [Login with Amazon](https://developer.amazon.com/apps-and-games/login-with-amazon)에서 생성한 OAuth 프로젝트의 **앱 ID**를 입력합니다. 자세한 내용은 [Login with Amazon 설명서](https://developer.amazon.com/docs/login-with-amazon/documentation-overview.html)를 참조하세요.

1. Amazon Cognito가 이 공급자를 통해 인증된 사용자에게 보안 인증을 발급할 때 요청하는 역할을 설정하려면 **역할 설정**을 구성하세요.

   1. **인증된 역할**을 구성할 때 설정한 **기본 역할**을 이 IdP의 사용자에게 할당하거나 **규칙을 사용하여 역할 선택**을 선택할 수 있습니다.

     1. **규칙을 사용하여 역할 선택**을 선택한 경우 사용자 인증의 소스 **클레임**, 클레임을 비교할 **연산자**, 이 역할 선택과 일치하도록 하는 **값** 및 **역할 할당**이 일치할 때 할당할 **역할**을 입력합니다. 다른 조건에 따라 추가 규칙을 생성하려면 **다른 항목 추가**를 선택합니다.

     1. **역할 해결**을 선택합니다. 사용자의 클레임이 규칙과 일치하지 않는 경우 보안 인증을 거부하거나 **인증된 역할**의 보안 인증을 발급할 수 있습니다.

1. Amazon Cognito가 이 공급자를 통해 인증한 사용자에게 보안 인증을 발급할 때 할당하는 보안 주체 태그를 변경하려면 **액세스 제어를 위한 속성**을 구성합니다.

   1. 보안 주체 태그를 적용하지 않으려면 **비활성**을 선택합니다.

   1. `sub` 및 `aud` 클레임 기반 보안 주체 태그를 적용하려면 **기본 매핑 사용**을 선택합니다.

   1. 보안 주체 태그에 대한 속성의 자체 사용자 지정 스키마를 생성하려면 **사용자 지정 매핑 사용**을 선택합니다. 그런 다음 태그에 표시하려는 각 **클레임**에서 소싱하려는 **태그 키**를 입력합니다.

1. **변경 사항 저장**을 선택합니다.

## Login with Amazon 사용: Android
<a name="set-up-amazon-1.android"></a>

Amazon 로그인을 승인한 후 TokenListener 인터페이스의 onSuccess 메서드에서 Amazon Cognito 자격 증명 공급자에 토큰을 전달할 수 있습니다. 코드는 다음과 같습니다.

```
@Override
public void onSuccess(Bundle response) {
    String token = response.getString(AuthzConstants.BUNDLE_KEY.TOKEN.val);
    Map<String, String> logins = new HashMap<String, String>();
    logins.put("www.amazon.com", token);
    credentialsProvider.setLogins(logins);
}
```

## Login with Amazon 사용: iOS - Objective-C
<a name="set-up-amazon-1.ios-objc"></a>

Amazon 로그인을 승인한 후 AMZNAccessTokenDelegate의 requestDidSucceed 메서드에서 Amazon Cognito 자격 증명 공급자에 토큰을 전달할 수 있습니다.

```
- (void)requestDidSucceed:(APIResult \*)apiResult {
    if (apiResult.api == kAPIAuthorizeUser) {
        [AIMobileLib getAccessTokenForScopes:[NSArray arrayWithObject:@"profile"] withOverrideParams:nil delegate:self];
    }
    else if (apiResult.api == kAPIGetAccessToken) {
        credentialsProvider.logins = @{ @(AWSCognitoLoginProviderKeyLoginWithAmazon): apiResult.result };
    }
}}
```

## Login with Amazon 사용: iOS - Swift
<a name="set-up-amazon-1.ios-swift"></a>

Amazon 로그인을 승인한 후 `AMZNAccessTokenDelegate`의 `requestDidSucceed` 메서드에서 Amazon Cognito 자격 증명 공급자에 토큰을 전달할 수 있습니다.

```
func requestDidSucceed(apiResult: APIResult!) {
    if apiResult.api == API.AuthorizeUser {
        AIMobileLib.getAccessTokenForScopes(["profile"], withOverrideParams: nil, delegate: self)
    } else if apiResult.api == API.GetAccessToken {
        credentialsProvider.logins = [AWSCognitoLoginProviderKey.LoginWithAmazon.rawValue: apiResult.result]
    }
}
```

## Login with Amazon 사용: JavaScript
<a name="set-up-amazon-1.javascript"></a>

사용자가 Login with Amazon으로 인증하고 다시 웹 사이트로 리디렉션되면 쿼리 문자열에 Login with Amazon 액세스 토큰이 제공됩니다. 이 토큰을 자격 증명 로그인 맵에 전달하세요.

```
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
   IdentityPoolId: 'IDENTITY_POOL_ID',
   Logins: {
       'www.amazon.com': 'Amazon Access Token'
   }
});
```