기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon을 사용하여 자격 증명 풀 IdP로 로그인 설정
Amazon Cognito 자격 증명 풀은 Amazon의 로그인과 함께 작동하여 모바일 및 웹 앱 사용자에게 페더레이션 인증을 제공합니다. 이 섹션에서는 Login with Amazon을 자격 증명 공급자(IdP)로 사용하여 애플리케이션을 등록하고 설정하는 방법을 설명합니다.
개발자 포털
참고
Login with Amazon을 Xamarin 애플리케이션에 통합하려면 Xamarin Getting Started Guide
참고
Unity 플랫폼에서는 Login with Amazon을 기본적으로 통합할 수 없습니다. 대신 웹 보기를 사용하여 브라우저 로그인 흐름을 수행합니다.
Login with Amazon 설정
Login with Amazon 구현
Amazon 개발자 포털
Amazon은 새 보안 프로필에 대해 OAuth 2.0 클라이언트 ID를 발급합니다. 보안 프로필 웹 설정(Web Settings) 탭에서 클라이언트 ID(client ID)를 찾을 수 있습니다. 자격 증명 풀에서 Login with Amazon IdP의 App ID 필드에 보안 프로필 ID를 입력합니다.
참고
자격 증명 풀에서 Login with Amazon IdP의 App ID 필드에 보안 프로필 ID를 입력합니다. 이는 클라이언트 ID를 사용하는 사용자 풀과 다릅니다.
Amazon Cognito 콘솔에서 외부 공급자 구성
Login with Amazon ID 제공업체(idP)를 추가하려면
-
Amazon Cognito 콘솔
에서 자격 증명 풀을 선택합니다. 자격 증명 풀을 선택합니다. -
사용자 액세스 탭을 선택합니다.
-
ID 제공업체 추가를 선택합니다.
-
Login with Amazon을 선택합니다.
-
Amazon 로 로그인
시 생성한 OAuth 프로젝트의 앱 ID를 입력합니다. 자세한 내용은 Login with Amazon 설명서 를 참조하세요. -
Amazon Cognito가 이 공급자를 통해 인증된 사용자에게 보안 인증을 발급할 때 요청하는 역할을 설정하려면 역할 설정을 구성하세요.
-
인증된 역할을 구성할 때 설정한 기본 역할을 이 IdP의 사용자에게 할당하거나 규칙을 사용하여 역할 선택을 선택할 수 있습니다.
-
규칙을 사용하여 역할 선택을 선택한 경우 사용자 인증의 소스 클레임, 클레임 비교 기준으로 사용할 운영자, 이 역할 선택과 일치하도록 하는 값, 역할 할당이 일치할 때 할당할 역할을 입력합니다. 다른 조건에 따라 추가 규칙을 생성하려면 다른 항목 추가를 선택합니다.
-
역할 해결을 선택합니다. 사용자의 클레임이 규칙과 일치하지 않는 경우 보안 인증을 거부하거나 인증된 역할의 보안 인증을 발급할 수 있습니다.
-
-
-
Amazon Cognito가 이 공급자를 통해 인증한 사용자에게 보안 인증을 발급할 때 할당하는 보안 주체 태그를 변경하려면 액세스 제어를 위한 속성을 구성합니다.
-
보안 주체 태그를 적용하지 않으려면 비활성을 선택합니다.
-
sub
및aud
클레임 기반 보안 주체 태그를 적용하려면 기본 매핑 사용을 선택합니다. -
보안 주체 태그에 대한 속성의 자체 사용자 지정 스키마를 생성하려면 사용자 지정 매핑 사용을 선택합니다. 그런 다음 태그에 표시하려는 각 클레임에서 소싱하려는 태그 키를 입력합니다.
-
-
변경 사항 저장(Save changes)을 선택합니다.
Login with Amazon 사용: Android
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
Amazon 로그인을 인증한 후 의 requestDidSucceed 방법으로 Amazon Cognito 자격 증명 제공업체에 토큰을 전달할 수 있습니다AMZNAccessTokenDelegate.
- (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
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] } }
Amazon에서 로그인 사용: JavaScript
사용자가 Login with Amazon으로 인증하고 다시 웹 사이트로 리디렉션되면 쿼리 문자열에 Login with Amazon 액세스 토큰이 제공됩니다. 이 토큰을 자격 증명 로그인 맵에 전달하세요.
AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: 'IDENTITY_POOL_ID', Logins: { 'www.amazon.com': 'Amazon Access Token' } });
Login with Amazon 사용: Xamarin
Android용 Xamarin
AmazonAuthorizationManager manager = new AmazonAuthorizationManager(this, Bundle.Empty); var tokenListener = new APIListener { Success = response => { // Get the auth token var token = response.GetString(AuthzConstants.BUNDLE_KEY.Token.Val); credentials.AddLogin("www.amazon.com", token); } }; // Try and get existing login manager.GetToken(new[] { "profile" }, tokenListener);
iOS용 Xamarin
AppDelegate.cs
에서 다음을 삽입합니다.
public override bool OpenUrl (UIApplication application, NSUrl url, string sourceApplication, NSObject annotation) { // Pass on the url to the SDK to parse authorization code from the url bool isValidRedirectSignInURL = AIMobileLib.HandleOpenUrl (url, sourceApplication); if(!isValidRedirectSignInURL) return false; // App may also want to handle url return true; }
그런 다음 ViewController.cs
에서 다음을 수행합니다.
public override void ViewDidLoad () { base.LoadView (); // Here we create the Amazon Login Button btnLogin = UIButton.FromType (UIButtonType.RoundedRect); btnLogin.Frame = new RectangleF (55, 206, 209, 48); btnLogin.SetTitle ("Login using Amazon", UIControlState.Normal); btnLogin.TouchUpInside += (sender, e) => { AIMobileLib.AuthorizeUser (new [] { "profile"}, new AMZNAuthorizationDelegate ()); }; View.AddSubview (btnLogin); } // Class that handles Authentication Success/Failure public class AMZNAuthorizationDelegate : AIAuthenticationDelegate { public override void RequestDidSucceed(ApiResult apiResult) { // Your code after the user authorizes application for requested scopes var token = apiResult["access_token"]; credentials.AddLogin("www.amazon.com",token); } public override void RequestDidFail(ApiError errorResponse) { // Your code when the authorization fails InvokeOnMainThread(() => new UIAlertView("User Authorization Failed", errorResponse.Error.Message, null, "Ok", null).Show()); } }