Configurazione di Login with Amazon come IdP di pool di identità - Amazon Cognito

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazione di Login with Amazon come IdP di pool di identità

I pool di identità di Amazon Cognito funzionano con Login with Amazon per fornire l'autenticazione federata agli utenti delle app per dispositivi mobili e Web. Questa sezione spiega come registrare e impostare la tua applicazione con Login with Amazon come provider di identità.

Configura Login with Amazon per l'uso di Amazon Cognito nel portale per sviluppatori. Per ulteriori informazioni, consulta Configurazione del login con Amazon nella sezione Login with AmazonFAQ.

Nota

Per integrare Login with Amazon in un'applicazione Xamarin, segui la Guida introduttiva di Xamarin.

Nota

Non puoi integrare in modo nativo Login with Amazon nella piattaforma Unity. Puoi utilizzare invece una visualizzazione Web e seguire il flusso di accesso del browser.

Configurazione di Login with Amazon

Implementazione di Login with Amazon

Nel portale per sviluppatori di Amazon, puoi configurare un'OAuthapplicazione da integrare con il tuo pool di identità, trovare la documentazione di Login with Amazon e scaricarlaSDKs. Scegli Developer console (Console per sviluppatori), quindi Login with Amazon nel portale per gli sviluppatori. Puoi creare un profilo di sicurezza per la tua applicazione e quindi costruire meccanismi di autenticazione Login with Amazon nella tua app. Consulta Ottenere le credenziali per ulteriori informazioni su come integrare l'autenticazione Login with Amazon con la tua app.

Amazon rilascia un ID client OAuth 2.0 per il tuo nuovo profilo di sicurezza. Puoi trovare l'ID client nella scheda Web Settings (Impostazioni Web) del profilo di sicurezza. Inserisci l'ID del profilo di sicurezza nel campo ID app dell'IdP Login with Amazon nel pool di identità.

Nota

Inserisci l'ID del profilo di sicurezza nel campo ID app dell'IdP Login with Amazon nel pool di identità. Ciò differisce dai pool di utenti, che utilizzano l'ID client.

Configurazione del provider esterno nella console di Amazon Cognito

Per aggiungere un gestore dell'identità digitale Login with Amazon
  1. Scegli Pool di identità dalla console di Amazon Cognito. Seleziona un pool di identità.

  2. Seleziona la scheda Accesso utente.

  3. Seleziona Aggiungi provider di identità.

  4. Scegli Login with Amazon.

  5. Inserisci l'ID app del OAuth progetto che hai creato in Login with Amazon. Per ulteriori informazioni, consultare la documentazione di Login with Amazon.

  6. Per impostare il ruolo richiesto da Amazon Cognito quando emette credenziali per gli utenti che hanno eseguito l'autenticazione con questo provider, configura Impostazioni ruolo.

    1. Puoi assegnare agli utenti di tale IdP il ruolo predefinito impostato quando hai configurato il ruolo autenticato oppure selezionare l'opzione Scegli ruolo con regole.

      1. Se scegli l'opzione Scegli ruolo con regole, inserisci la Richiesta dall'autenticazione dell'utente, l'Operatore con cui desideri confrontare la richiesta, il Valore che determina una corrispondenza a questa scelta di ruolo e il Ruolo che desideri assegnare quando l'Assegnazione del ruolo corrisponde. Seleziona Aggiungi un altro per creare una regola aggiuntiva basata su una condizione diversa.

      2. Scegli una Risoluzione del ruolo. Quando le richieste dell'utente non corrispondono alle regole, puoi negare le credenziali o emettere credenziali per il Ruolo autenticato.

  7. Per modificare i tag principali assegnati da Amazon Cognito quando emette credenziali per gli utenti che hanno eseguito l'autenticazione con questo provider, configura Attributi per il controllo degli accessi.

    1. Per non applicare alcun tag principale, scegli Inattivo.

    2. Per applicare i tag principali in base alle richieste sub e aud, scegli Utilizza mappature predefinite.

    3. Per creare un tuo schema personalizzato di attributi dei tag principali, scegli Utilizza mappature personalizzate. Quindi, inserisci una Chiave tag che deve essere originata da ciascuna Richiesta che desideri rappresentare in un tag.

  8. Seleziona Salva modifiche.

Utilizzo di Login with Amazon: Android

Dopo aver autenticato Amazon Login, puoi passare il token al provider di credenziali Amazon Cognito utilizzando onSuccess il metodo dell'interfaccia. TokenListener Il codice sarà il seguente:

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

Utilizzo di Login with Amazon: iOS - Objective-C

Dopo aver autenticato l'accesso ad Amazon, puoi passare il token al provider di credenziali Amazon Cognito con requestDidSucceed il seguente metodo: 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 }; } }}

Utilizzo di Login with Amazon: iOS - Swift

Una volta autenticato l'accesso ad Amazon, puoi passare il token al provider di credenziali di Amazon Cognito nel metodo requestDidSucceed di 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] } }

Usa Login with Amazon: JavaScript

Dopo che l'utente ha effettuato l'autenticazione con Login with Amazon e viene reindirizzato al tuo sito Web, il token di accesso di Login with Amazon viene fornito nella stringa di query. Passa tale token alla mappa degli accessi delle credenziali.

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

Utilizzo di Login with Amazon: Xamarin

Xamarin per 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 per iOS

In AppDelegate.cs, inserire quanto segue:

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

Quindi in ViewController.cs, procedere come segue:

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