Nous avons annoncé
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.
Utilisation d'Amazon Cognito Identity pour authentifier les utilisateurs
La méthode recommandée pour obtenirAWSles informations d'identification des scripts de votre navigateur doivent utiliser l'objet Amazon Cognito Identity Credentity,AWS.CognitoIdentityCredentials
. Amazon Cognito permet l'authentification des utilisateurs via des fournisseurs d'identité tiers.
Pour utiliser Amazon Cognito Identity, vous devez d'abord créer un pool d'identités dans la console Amazon Cognito. Un groupe d'identités représente le groupe des identités fournies par votre application à vos utilisateurs. Les identités attribuées aux utilisateurs identifient de façon unique chaque compte utilisateur. Les identités Amazon Cognito ne sont pas des informations d'identification. Elles sont échangées contre des informations d'identification grâce à la prise en charge de la fédération des identités web dans AWS Security Token Service (AWS STS).
Amazon Cognito aide à gérer l'abstraction des identités entre plusieurs fournisseurs d'identité avec leAWS.CognitoIdentityCredentials
objet. L'identité chargée est ensuite échangée contre les informations d'identification dans AWS STS.
Configuration de l'objet Amazon Cognito Informations d'identification
Si ce n'est pas déjà fait, créez un groupe d'identités à utiliser avec les scripts de votre navigateur dans leConsole Amazon CognitoAWS.CognitoIdentityCredentials
. Créez et associez les deux rôles IAM authentifiés et non authentifiés pour votre groupe d'identités.
L'identité des utilisateurs non authentifiés n'est pas vérifiée. Ce rôle convient donc pour les utilisateurs invités de votre application ou dans les cas où il n'est pas important que les identités des utilisateurs soient vérifiées. Les utilisateurs authentifiés se connectent à votre application via un fournisseur d'identité tiers qui vérifie leur identité. Assurez-vous de définir de façon appropriée les autorisations des ressources afin de ne pas y accorder l'accès aux utilisateurs non authentifiés.
Une fois un groupe d'identités configuré avec les fournisseurs d'identité attachés, vous pouvez utiliser AWS.CognitoIdentityCredentials
pour authentifier les utilisateurs. Pour configurer les informations d'identification de votre application afin d'utiliser AWS.CognitoIdentityCredentials
, définissez la propriété credentials
d'une configuration AWS.Config
ou d'une configuration par service. L'exemple suivant utilise AWS.Config
:
AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: '
us-east-1:1699ebc0-7900-4099-b910-2df94f52a030
', Logins: { // optional tokens, used for authenticated login 'graph.facebook.com': 'FBTOKEN', 'www.amazon.com': 'AMAZONTOKEN', 'accounts.google.com': 'GOOGLETOKEN' } });
La propriété facultative Logins
est un mappage de noms de fournisseur d'identité avec les jetons d'identité de ces fournisseurs. La façon dont vous obtenez le jeton de la part de votre fournisseur d'identité dépend du fournisseur que vous utilisez. Par exemple, si Facebook est l'un de vos fournisseurs d'identité, vous pouvez utiliser la fonction FB.login
du kit SDK Facebook
FB.login(function (response) { if (response.authResponse) { // logged in AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: '
us-east-1:1699ebc0-7900-4099-b910-2df94f52a030
', Logins: { 'graph.facebook.com': response.authResponse.accessToken } }); s3 = new AWS.S3; // we can now create our service object console.log('You are now logged in.'); } else { console.log('There was a problem logging you in.'); } });
Permutation entre les utilisateurs non authentifiés et les utilisateurs authentifiés
Amazon Cognito prend en charge les utilisateurs authentifiés et non authentifiés. Les utilisateurs non authentifiés bénéficient d'un accès à vos ressources, même s'ils ne sont pas connectés avec l'un de vos fournisseurs d'identité. Ce degré d'accès est utile pour afficher du contenu aux utilisateurs avant qu'ils ne se connectent. Chaque utilisateur non authentifié comporte une identité unique dans Amazon Cognito, même s'il n'a pas été individuellement connecté et authentifié.
Utilisateur initialement non authentifié
Les utilisateurs commencent généralement par le rôle non authentifié, pour lequel vous définissez la propriété des informations d'identification de votre objet de configuration sans propriété Logins
. Dans ce cas, votre configuration par défaut peut se présenter comme suit :
// set the default config object var creds = new AWS.CognitoIdentityCredentials({ IdentityPoolId: '
us-east-1:1699ebc0-7900-4099-b910-2df94f52a030
' }); AWS.config.credentials = creds;
Basculement vers un utilisateur authentifié
Lorsqu'un utilisateur non authentifié se connecte à un fournisseur d'identité et que vous avez un jeton, vous pouvez changer l'utilisateur non authentifié en utilisateur authentifié en appelant une fonction personnalisée qui met à jour l'objet des informations d'identification et ajoute le jeton Logins
:
// Called when an identity provider has a token for a logged in user function userLoggedIn(providerName, token) { creds.params.Logins = creds.params.Logins || {}; creds.params.Logins[providerName] = token; // Expire credentials to refresh them on the next request creds.expired = true; }
Vous pouvez également créer un objet CognitoIdentityCredentials
. Dans ce cas, vous devez réinitialiser les propriétés des informations d'identification des objets de service existants que vous avez créés. Les objets de service lisent dans la configuration globale uniquement à l'initialisation de l'objet.
Pour plus d'informations sur leCognitoIdentityCredentials
objet, voirAWS.CognitoIdentityCredentials
dans leAWS SDK for JavaScriptRéférence d'API.