Menyiapkan Login with Amazon sebagai kumpulan identitas IDP - Amazon Cognito

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menyiapkan Login with Amazon sebagai kumpulan identitas IDP

Amazon Cognito terintegrasi dengan Login with Amazon untuk memberikan otentikasi federasi bagi pengguna aplikasi seluler dan web Anda. Bagian ini menjelaskan cara mendaftar dan menyiapkan aplikasi Anda dengan Login with Amazon sebagai penyedia identitas (iDP).

Siapkan Login with Amazon untuk bekerja dengan Amazon Cognito di Portal Pengembang. Untuk informasi selengkapnya, lihat Menyiapkan Login with Amazon di FAQ Login with Amazon.

catatan

Untuk mengintegrasikan Login with Amazon ke dalam aplikasi Xamarin, ikuti Panduan Memulai Xamarin.

catatan

Anda tidak dapat mengintegrasikan Login with Amazon secara native di platform Unity. Sebagai gantinya, gunakan tampilan web dan buka alur masuk browser.

Menyiapkan Login with Amazon

Menerapkan Login with Amazon

Di portal pengembang Amazon, Anda dapat menyiapkan aplikasi OAuth untuk diintegrasikan dengan kumpulan identitas Anda, menemukan dokumentasi Login with Amazon, dan mengunduh SDK. Pilih Konsol pengembang, lalu Login with Amazon di portal pengembang. Anda dapat membuat profil keamanan untuk aplikasi Anda dan kemudian membangun Login with Amazon mekanisme autentikasi ke dalam aplikasi Anda. Lihat Mendapatkan kredensil untuk informasi selengkapnya tentang cara mengintegrasikan otentikasi Login with Amazon dengan aplikasi Anda.

Amazon mengeluarkan ID klien OAuth 2.0 untuk profil keamanan baru Anda. Anda dapat menemukan ID klien di tab Pengaturan Web profil keamanan. Masukkan ID Profil Keamanan di bidang ID Aplikasi Login with Amazon iDP di kumpulan identitas Anda.

catatan

Anda memasukkan ID Profil Keamanan di bidang ID Aplikasi Login with Amazon iDP di kumpulan identitas Anda. Ini berbeda dari kumpulan pengguna, yang menggunakan ID klien.

Konfigurasikan penyedia eksternal di konsol Amazon Cognito

Untuk menambahkan Login with Amazon identity provider (IDP)
  1. Pilih kumpulan Identitas dari konsol Amazon Cognito. Pilih kumpulan identitas.

  2. Pilih tab Akses pengguna.

  3. Pilih Tambahkan penyedia identitas.

  4. Pilih Login with Amazon.

  5. Masukkan ID Aplikasi proyek OAuth yang Anda buat saat Login with Amazon. Untuk informasi selengkapnya, lihat Login with Amazon Documentation.

  6. Untuk menyetel peran yang diminta Amazon Cognito saat mengeluarkan kredensyal kepada pengguna yang telah mengautentikasi dengan penyedia ini, konfigurasikan setelan Peran.

    1. Anda dapat menetapkan pengguna dari IDP tersebut peran Default yang Anda atur saat mengonfigurasi peran Terautentikasi, atau Anda dapat Memilih peran dengan aturan.

      1. Jika Anda memilih Pilih peran dengan aturan, masukkan Klaim sumber dari autentikasi pengguna Anda, Operator yang ingin Anda bandingkan dengan klaim, Nilai yang akan menyebabkan kecocokan dengan pilihan peran ini, dan Peran yang ingin Anda tetapkan saat penetapan Peran cocok. Pilih Tambahkan yang lain untuk membuat aturan tambahan berdasarkan kondisi yang berbeda.

      2. Pilih Resolusi Peran. Jika klaim pengguna tidak sesuai dengan aturan, Anda dapat menolak kredensi atau mengeluarkan kredensi untuk peran yang Diautentikasi.

  7. Untuk mengubah tag utama yang ditetapkan Amazon Cognito saat mengeluarkan kredensil kepada pengguna yang telah diautentikasi dengan penyedia ini, konfigurasikan Atribut untuk kontrol akses.

    1. Untuk tidak menerapkan tag utama, pilih Tidak aktif.

    2. Untuk menerapkan tag utama berdasarkan sub dan aud klaim, pilih Gunakan pemetaan default.

    3. Untuk membuat skema atribut kustom Anda sendiri ke tag utama, pilih Gunakan pemetaan khusus. Kemudian masukkan kunci Tag yang ingin Anda sumber dari setiap Klaim yang ingin Anda wakili dalam tag.

  8. Pilih Simpan perubahan.

Menggunakan Login with Amazon: Android

Setelah Anda mengautentikasi login Amazon, Anda dapat meneruskan token ke penyedia kredensyal Amazon Cognito dalam metode onSuccess antarmuka. TokenListener Kodenya terlihat seperti ini:

@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); }

Menggunakan Login with Amazon: iOS - Objective-C

Setelah Anda mengautentikasi login Amazon, Anda dapat meneruskan token ke penyedia kredensyal Amazon Cognito dalam requestDidSucceed metode AMZN: AccessTokenDelegate

- (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 }; } }}

Menggunakan Login with Amazon: iOS - Swift

Setelah Anda mengautentikasi login Amazon, Anda dapat meneruskan token ke penyedia kredensyal Amazon Cognito dengan metode: requestDidSucceed AMZNAccessTokenDelegate

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] } }

Gunakan Login with Amazon: JavaScript

Setelah pengguna mengautentikasi dengan Login with Amazon dan diarahkan kembali ke situs web Anda, access_token Login with Amazon disediakan dalam string kueri. Berikan token itu ke dalam peta login kredensial.

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

Menggunakan Login with Amazon: Xamarin

Xamarin untuk Android

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);

Xamarin untuk iOS

Di AppDelegate.cs, masukkan berikut ini:

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; }

Kemudian, di ViewController.cs, lakukan hal berikut:

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()); } }