Configuration de Login with Amazon en tant qu'IdP de pool d'identités - Amazon Cognito

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration de Login with Amazon en tant qu'IdP de pool 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 du profil de sécurité dans le champ ID d'application du fournisseur d'identité Login with Amazon de votre réserve d'identités.

Note

Saisissez l'ID du profil de sécurité dans le champ ID d'application du fournisseur d'identité Login with Amazon de votre réserve d'identités. De leur côté, les groupes d'utilisateurs utilisent l'ID client.

Configurer le fournisseur externe dans la console Amazon Cognito

Pour ajouter un fournisseur d'identité (IdP) Login with Amazon
  1. Choisissez Groupes d'identités dans la console Amazon Cognito. Sélectionnez une réserve d'identités.

  2. Choisissez l'onglet Accès utilisateur.

  3. Sélectionnez Ajouter un fournisseur d'identité.

  4. Choisissez Login with Amazon.

  5. Saisissez l'ID de l'application du projet OAuth que vous avez créé sur Login with Amazon. Pour plus d'informations, consultez Login with Amazon Documentation (langue française non garantie).

  6. Pour définir le rôle demandé par Amazon Cognito lorsqu'il délivre des informations d'identification aux utilisateurs qui se sont authentifiés auprès de ce fournisseur, configurez Paramètres de rôle.

    1. Vous pouvez attribuer aux utilisateurs de ce fournisseur d'identité le rôle par défaut que vous avez configuré lorsque vous avez configuré votre rôle authentifié, ou vous pouvez sélectionner Choisir un rôle avec des règles.

      1. Si vous avez choisi Choisir un rôle avec des règles, saisissez la demande source issue de l'authentification de votre utilisateur, l'opérateur avec lequel vous souhaitez comparer ce champ standard, la valeur qui entraînera une correspondance avec ce choix de rôle et le rôle que vous souhaitez attribuer si l'attribution de rôle correspond. Sélectionnez Ajouter un autre pour créer une règle supplémentaire basée sur une condition différente.

      2. Choisissez une résolution de rôle. Lorsque les champs standard de votre utilisateur ne correspondent pas à vos règles, vous pouvez refuser les informations d'identification ou émettre des informations d'identification pour votre rôle authentifié.

  7. Pour modifier les balises de principal qu'Amazon Cognito attribue lorsqu'il délivre des informations d'identification aux utilisateurs qui se sont authentifiés auprès de ce fournisseur, configurez Attributs de contrôle d'accès.

    1. Pour n'appliquer aucune balise de principal, choisissez Inactif.

    2. Pour appliquer les balises de principal en fonction des champs standard sub et aud, choisissez Utiliser les mappages par défaut.

    3. Pour créer votre propre schéma personnalisé d'attributs pour les balises de principal, choisissez Utiliser des mappages personnalisés. Saisissez ensuite une clé de balise que vous souhaitez obtenir à partir de chaque demande que vous souhaitez représenter dans une balise.

  8. Sélectionnez 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 selon requestDidSucceed la méthode de l'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 }; } }}

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

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