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 Facebook en tant qu'IdP de pool d'identités
Les pools d'identités Amazon Cognito fonctionnent avec Facebook pour fournir une authentification fédérée aux utilisateurs de votre application. Cette section explique comment enregistrer et configurer votre application avec Facebook comme fournisseur d'identité.
Configuration de Facebook
Enregistrez votre application auprès de Facebook avant d'authentifier les utilisateurs de Facebook et d'interagir avec FacebookAPIs.
Le portail des développeurs Facebook
Note
La fédération des groupes d'identités Amazon Cognito n'est pas compatible avec Facebook Limited Login
Configuration de Facebook
-
Sur le portail des développeurs Facebook
, connectez-vous avec vos informations d'identification Facebook. -
Dans le menu Apps (Applications), sélectionnez Add a New App (Ajouter une nouvelle application).
-
Sélectionnez une plateforme et terminer le processus de démarrage rapide.
Android
Pour plus d'informations sur la façon d'intégrer des applications Android avec Facebook Login, consultez le Guide de démarrage Facebook
iOS : Objective-C
Pour plus d'informations sur la façon d'intégrer des applications iOS Objective-C avec Facebook Login, consultez le Guide de démarrage Facebook
iOS : Swift
Pour plus d'informations sur la façon d'intégrer des applications iOS Swift avec Facebook Login, consultez le Guide de démarrage Facebook
JavaScript
Pour plus d'informations sur la façon d'intégrer des applications JavaScript Web à Facebook Login, consultez le guide de démarrage de Facebook
Unity
Pour plus d'informations sur la façon d'intégrer des applications Unity avec Facebook Login, consultez le Guide de démarrage Facebook
Xamarin
Pour ajouter l'authentification Facebook, suivez d'abord le flux approprié ci-dessous pour SDK intégrer Facebook dans votre application. Les groupes d'identité Amazon Cognito utilisent le jeton d'accès Facebook pour générer un identifiant utilisateur unique associé à une identité Amazon Cognito.
Configuration d'un fournisseur d'identité dans la console des réserves d'identités Amazon Cognito
Utilisez la procédure suivante pour configurer votre fournisseur d'identité.
Pour ajouter un fournisseur d'identité (IdP) Facebook
-
Choisissez Groupes d'identités dans la console Amazon Cognito
. Sélectionnez une réserve d'identités. -
Choisissez l'onglet Accès utilisateur.
-
Sélectionnez Ajouter un fournisseur d'identité.
-
Choisissez Facebook.
-
Entrez l'ID d'application du OAuth projet que vous avez créé sur Meta for Developers
. Pour plus d'informations, consultez Facebook Login (langue française non garantie) dans la documentation de Meta for Developers. -
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.
-
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.
-
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.
-
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é.
-
-
-
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.
-
Pour n'appliquer aucune balise de principal, choisissez Inactif.
-
Pour appliquer les balises de principal en fonction des champs standard
sub
etaud
, choisissez Utiliser les mappages par défaut. -
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.
-
-
Sélectionnez Enregistrer les modifications.
Utilisation de Facebook
Android
Pour ajouter l'authentification Facebook, suivez d'abord le guide Facebook
Après avoir authentifié votre utilisateur auprès de FacebookSDK, ajoutez le jeton de session au fournisseur d'informations d'identification Amazon Cognito.
Facebook SDK 4.0 ou version ultérieure :
Map<String, String> logins = new HashMap<String, String>(); logins.put("graph.facebook.com", AccessToken.getCurrentAccessToken().getToken()); credentialsProvider.setLogins(logins);
Facebook SDK avant la version 4.0 :
Map<String, String> logins = new HashMap<String, String>(); logins.put("graph.facebook.com", Session.getActiveSession().getAccessToken()); credentialsProvider.setLogins(logins);
Le processus de connexion à Facebook initialise une session singleton dans son. SDK L'objet de session Facebook contient un OAuth jeton qu'Amazon Cognito utilise pour générer des AWS informations d'identification pour votre utilisateur final authentifié. Amazon Cognito utilise également ce jeton pour rechercher dans votre base de données utilisateur l'existence d'un utilisateur qui correspond à cette identité Facebook particulière. Si l'utilisateur existe déjà, API renvoie l'identifiant existant. Dans le cas contraire, le API renvoie un nouvel identifiant. Le client met SDK automatiquement en cache les identifiants sur l'appareil local.
Note
Après avoir défini le mappage des connexions, appelez refresh
ou récupérez get
les AWS informations d'identification.
iOS : Objective-C
Pour ajouter l'authentification Facebook, suivez d'abord le guide Facebook
Pour fournir le jeton d'accès Facebook à Amazon Cognito, implémentez le AWSIdentityProviderManager
Quand vous implémentez la méthode logins
, renvoyez un dictionnaire contenant AWSIdentityProviderFacebook
. Ce dictionnaire fait office de clé et le jeton d'accès actuel de l'utilisateur Facebook authentifié fait office de valeur, comme dans l'exemple de code suivant.
- (AWSTask<NSDictionary<NSString *, NSString *> *> *)logins { FBSDKAccessToken* fbToken = [FBSDKAccessToken currentAccessToken]; if(fbToken){ NSString *token = fbToken.tokenString; return [AWSTask taskWithResult: @{ AWSIdentityProviderFacebook : token }]; }else{ return [AWSTask taskWithError:[NSError errorWithDomain:@"Facebook Login" code:-1 userInfo:@{@"error":@"No current Facebook access token"}]]; } }
Lorsque vous instanciez AWSCognitoCredentialsProvider
, transmettez la classe qui implémente AWSIdentityProviderManager
comme valeur de identityProviderManager
dans le constructeur. Pour plus d'informations, rendez-vous sur la page de AWSCognitoCredentialsProvider
iOS : Swift
Pour ajouter l'authentification Facebook, suivez d'abord le guide Facebook
Note
La fédération des groupes d'identités Amazon Cognito n'est pas compatible avec Facebook Limited Login
Pour fournir le jeton d'accès Facebook à Amazon Cognito, implémentez le AWSIdentityProviderManager
Quand vous implémentez la méthode logins
, renvoyez un dictionnaire contenant AWSIdentityProviderFacebook
. Ce dictionnaire fait office de clé et le jeton d'accès actuel de l'utilisateur Facebook authentifié fait office de valeur, comme dans l'exemple de code suivant.
class FacebookProvider: NSObject, AWSIdentityProviderManager { func logins() -> AWSTask<NSDictionary> { if let token = AccessToken.current?.authenticationToken { return AWSTask(result: [AWSIdentityProviderFacebook:token]) } return AWSTask(error:NSError(domain: "Facebook Login", code: -1 , userInfo: ["Facebook" : "No current Facebook access token"])) } }
Lorsque vous instanciez AWSCognitoCredentialsProvider
, transmettez la classe qui implémente AWSIdentityProviderManager
comme valeur de identityProviderManager
dans le constructeur. Pour plus d'informations, rendez-vous sur AWSCognitoCredentialsProvider
JavaScript
Pour ajouter l'authentification Facebook, suivez les instructions fournies dans la page Facebook Login pour le web
Après avoir authentifié votre utilisateur auprès de FacebookSDK, ajoutez le jeton de session au fournisseur d'informations d'identification Amazon Cognito.
FB.login(function (response) { // Check if the user logged in successfully. if (response.authResponse) { console.log('You are now logged in.'); // Add the Facebook access token to the Amazon Cognito credentials login map. AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: 'IDENTITY_POOL_ID', Logins: { 'graph.facebook.com': response.authResponse.accessToken } }); // Obtain AWS credentials AWS.config.credentials.get(function(){ // Access AWS resources here. }); } else { console.log('There was a problem logging you in.'); } });
Facebook SDK obtient un OAuth jeton qu'Amazon Cognito utilise pour AWS générer les informations d'identification de votre utilisateur final authentifié. Amazon Cognito utilise également ce jeton pour rechercher dans votre base de données utilisateur l'existence d'un utilisateur correspondant à cette identité Facebook particulière. Si l'utilisateur existe déjà, API renvoie l'identifiant existant. Dans le cas contraire, elle renvoie un nouvel identifiant. Les identifiants sont automatiquement mis en cache par le client SDK sur l'appareil local.
Note
Après avoir configuré le mappage des connexions, effectuez un appel à refresh
ou get
pour obtenir les informations d'identification. Pour un exemple de code, voir « Cas d'utilisation 17, Intégration de groupes d'utilisateurs à Cognito Identity » dans le JavaScript README fichier.
Unity
Pour ajouter l'authentification Facebook, suivez d'abord le guide FacebookFB
pour générer un identifiant d'utilisateur unique associé à une identité Amazon Cognito.
Après avoir authentifié votre utilisateur sur FacebookSDK, ajoutez le jeton de session au fournisseur d'informations d'identification Amazon Cognito :
void Start() { FB.Init(delegate() { if (FB.IsLoggedIn) { //User already logged in from a previous session AddFacebookTokenToCognito(); } else { FB.Login ("email", FacebookLoginCallback); } }); } void FacebookLoginCallback(FBResult result) { if (FB.IsLoggedIn) { AddFacebookTokenToCognito(); } else { Debug.Log("FB Login error"); } } void AddFacebookTokenToCognito() { credentials.AddLogin ("graph.facebook.com", AccessToken.CurrentAccessToken.TokenString); }
Avant d'utiliser FB.AccessToken
, appelez FB.Login()
et assurez-vous que FB.IsLoggedIn
a pour valeur true.
Xamarin
Xamarin pour Android :
public void InitializeFacebook() { FacebookSdk.SdkInitialize(this.ApplicationContext); callbackManager = CallbackManagerFactory.Create(); LoginManager.Instance.RegisterCallback(callbackManager, new FacebookCallback < LoginResult > () { HandleSuccess = loginResult = > { var accessToken = loginResult.AccessToken; credentials.AddLogin("graph.facebook.com", accessToken.Token); //open new activity }, HandleCancel = () = > { //throw error message }, HandleError = loginError = > { //throw error message } }); LoginManager.Instance.LogInWithReadPermissions(this, new List < string > { "public_profile" }); }
Xamarin pour iOS :
public void InitializeFacebook() { LoginManager login = new LoginManager(); login.LogInWithReadPermissions(readPermissions.ToArray(), delegate(LoginManagerLoginResult result, NSError error) { if (error != null) { //throw error message } else if (result.IsCancelled) { //throw error message } else { var accessToken = loginResult.AccessToken; credentials.AddLogin("graph.facebook.com", accessToken.Token); //open new view controller } }); }