Login with Amazon (groupes d'identités) - Amazon Cognito

Login with Amazon (groupes d'identités)

Amazon Cognito s'intègre avec Login with Amazon afin de fournir une authentification fédérée pour vos utilisateurs d'applications mobiles et web. Cette section explique comment enregistrer et configurer votre application avec Login with Amazon comme fournisseur d'identité.

Configurez Login with Amazon pour utiliser Amazon Cognito dans le portail des développeurs. Pour plus d'informations, consultez Configuration de Login with Amazon dans les questions fréquentes sur Login with Amazon.

Note

Pour intégrer Login with Amazon dans une application Xamarin, suivez les instructions fournies dans la page Bien démarrer avec Xamarin.

Note

Vous ne pouvez pas intégrer Login with Amazon en mode natif sur la plateforme Unity. Au lieu de cela, utilisez une vue web et suivez le processus de connexion dans le navigateur.

Configuration de Login with Amazon

Implémentation de Login with Amazon

Dans le portail pour développeurs Amazon, vous pouvez configurer une application OAuth pour l'intégrer à votre groupe d'identités, trouver la documentation Login with Amazon et télécharger les kits SDK. Choisissez Developer console (Console pour développeurs), puis Login with Amazon dans le portail des développeurs. Vous pouvez créer un profil de sécurité pour votre application, puis générer des mécanismes d'authentification Login with Amazon dans votre application. Consultez Obtention des informations d'identification pour plus d'informations sur la façon d'intégrer l'authentification Login with Amazon avec votre application.

Amazon émet un ID client OAuth 2.0 pour votre nouveau profil de sécurité. Vous pouvez trouver cet ID client dans l'onglet Web Settings (Paramètres web) du profil de sécurité. Saisissez l'ID client dans le champ Amazon App ID (ID d'application Amazon) du fournisseur d'identité Login with Amazon dans votre groupe d'identités.

Configurer le fournisseur externe dans la console Amazon Cognito

Choisissez Manage Identity Pools (Gérer les groupes d'identité) dans la page d'accueil de la console Amazon Cognito.

  1. Choisissez le nom du groupe d'identités dans lequel vous souhaitez activer Login with Amazon comme fournisseur externe. La page Dashboard (Tableau de bord) correspondant à votre groupe d'identités s'affiche.

  2. Dans l'angle supérieur droit de la page Dashboard (Tableau de bord), choisissez Edit identity pool (Modifier le groupe d'identités). La page Edit identity pool (Modifier le groupe d'identités) s'affiche.

  3. Faites défiler l'affichage vers le bas et choisissez Authentication providers (Fournisseurs d'authentification) pour développer cette option.

  4. Choisissez l'onglet Amazon.

  5. Sélectionnez Unlock (Déverrouiller).

  6. Saisissez l'ID d'application Amazon que vous avez obtenu auprès d'Amazon, puis choisissez Save Changes (Enregistrer les modifications).

Utiliser Login with Amazon : Android

Après avoir authentifié la connexion Amazon, vous pouvez transmettre le jeton au fournisseur d'informations d'identification Amazon Cognito dans la méthode onSuccess de l'interface TokenListener. Ce code se présente sous la forme suivante :

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

Utiliser Login with Amazon : iOS - Objective-C

Après avoir authentifié la connexion Amazon, vous pouvez transmettre le jeton au fournisseur d'informations d'identification Amazon Cognito dans la méthode requestDidSucceed de 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 }; } }}

Utiliser Login with Amazon : iOS - Swift

Après avoir authentifié la connexion Amazon, vous pouvez transmettre le jeton au fournisseur d'informations d'identification Amazon Cognito dans la méthode requestDidSucceed de 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] } }

Utiliser Login with Amazon : JavaScript

Une fois que l'utilisateur s'authentifie avec Login with Amazon et qu'il est redirigé vers votre site web, le jeton d'accès Login with Amazon est fourni dans la chaîne de requête. Ajoutez ce jeton à la carte de connexions des informations d'identification.

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

Utiliser Login with Amazon : Xamarin

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

Dans AppDelegate.cs, insérer ce qui suit :

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

Puis, dans ViewController.cs, procédez comme suit :

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