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
Kumpulan identitas Amazon Cognito berfungsi dengan Login with Amazon untuk menyediakan otentikasi gabungan 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
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
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)
-
Pilih kumpulan Identitas dari konsol Amazon Cognito
. Pilih kumpulan identitas. -
Pilih tab Akses pengguna.
-
Pilih Tambahkan penyedia identitas.
-
Pilih Login with Amazon.
-
Masukkan ID Aplikasi OAuth proyek yang Anda buat saat Login with Amazon
. Untuk informasi selengkapnya, lihat Login with Amazon Documentation . -
Untuk menyetel peran yang diminta Amazon Cognito saat mengeluarkan kredensional kepada pengguna yang telah mengautentikasi dengan penyedia ini, konfigurasikan setelan Peran.
-
Anda dapat menetapkan pengguna dari IDP tersebut peran Default yang Anda atur saat mengonfigurasi peran Terautentikasi, atau Anda dapat Memilih peran dengan aturan.
-
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.
-
Pilih Resolusi Peran. Jika klaim pengguna tidak sesuai dengan aturan, Anda dapat menolak kredensi atau mengeluarkan kredensi untuk peran yang Diautentikasi.
-
-
-
Untuk mengubah tag utama yang ditetapkan Amazon Cognito saat mengeluarkan kredensi kepada pengguna yang telah diautentikasi dengan penyedia ini, konfigurasikan Atribut untuk kontrol akses.
-
Untuk tidak menerapkan tag utama, pilih Tidak aktif.
-
Untuk menerapkan tag utama berdasarkan
sub
danaud
klaim, pilih Gunakan pemetaan default. -
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.
-
-
Pilih Simpan perubahan.
Menggunakan Login with Amazon: Android
Setelah Anda mengautentikasi login Amazon, Anda dapat meneruskan token ke penyedia kredensi Amazon Cognito dalam metode antarmuka onSuccess . 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 kredensi Amazon Cognito dengan metode: requestDidSucceed 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 }; } }}
Menggunakan Login with Amazon: iOS - Swift
Setelah Anda mengautentikasi login Amazon, Anda dapat meneruskan token ke penyedia kredensi 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()); } }