La AWS SDK pour JavaScript v2 a atteint la fin du support. Nous vous recommandons de migrer vers la AWS SDK pour JavaScript version 3. Pour plus de détails et d'informations sur la manière de migrer, veuillez consulter cette annonce
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.
Authentification des utilisateurs à l'aide de l'identité web fédérée
Vous pouvez configurer directement des fournisseurs d'identité individuels pour accéder aux AWS ressources à l'aide de la fédération d'identités Web. AWS prend actuellement en charge l'authentification des utilisateurs à l'aide de la fédération d'identité Web via plusieurs fournisseurs d'identité :
Vous devez tout d'abord enregistrer votre application avec les fournisseurs pris en charge par votre application. Créez ensuite un rôle IAM et configurez des autorisations pour celui-ci. Le rôle IAM que vous créez est ensuite utilisé pour accorder les autorisations que vous avez configurées pour ce rôle par le biais du fournisseur d'identité correspondant. Par exemple, vous pouvez définir un rôle qui permet aux utilisateurs qui se sont connectés via Facebook d'avoir un accès en lecture à un compartiment Amazon S3 spécifique que vous contrôlez.
Une fois que vous disposez à la fois d'un rôle IAM avec des privilèges configurés et d'une application enregistrée auprès des fournisseurs d'identité de votre choix, vous pouvez configurer le SDK pour obtenir les informations d'identification pour le rôle IAM à l'aide d'un code d'assistance, comme suit :
AWS.config.credentials = new AWS.WebIdentityCredentials({ RoleArn: 'arn:aws:iam::<AWS_ACCOUNT_ID>/:role/<WEB_IDENTITY_ROLE_NAME>', ProviderId: 'graph.facebook.com|www.amazon.com', // this is null for Google WebIdentityToken: ACCESS_TOKEN });
La valeur du paramètre ProviderId dépend du fournisseur d'identité spécifié. La valeur du paramètre WebIdentityToken est le jeton d'accès extrait d'une connexion réussie avec le fournisseur d'identité. Pour plus d'informations sur la configuration et l'extraction des jetons d'accès pour chaque fournisseur d'identité, consultez la documentation du fournisseur d'identité.
Étape 1 : Enregistrement auprès des fournisseurs d'identité
Pour commencer, enregistrez une application auprès des fournisseurs d'identité que vous choisissez de prendre en charge. Il vous sera demandé de fournir des informations qui identifient votre application et éventuellement son auteur. Les fournisseurs d'identité sauront ainsi qui reçoit leurs informations utilisateur. Dans chaque cas, le fournisseur d'identité émettra un ID d'application que vous utiliserez pour configurer des rôles utilisateur.
Étape 2 : Création d'un rôle IAM pour un fournisseur d'identité
Après avoir obtenu l'ID d'application auprès d'un fournisseur d'identité, accédez à la console IAM à l'adresse https://console.aws.amazon.com/iam/
Pour créer un rôle IAM pour un fournisseur d'identité
-
Dans la section Rôles de la console, choisissez Créer un rôle.
-
Entrez un nom pour le nouveau rôle qui vous aidera à assurer le suivi de son utilisation, tel que
facebookIdentity, puis choisissez Étape suivante. -
Sous Sélectionner un type de rôle, choisissez Rôle pour l'accès au fournisseur d'identité.
-
Sous Octroyer l'accès aux fournisseurs d'identité Web, choisissez Sélectionner.
-
Dans la liste des fournisseurs d'identité, choisissez le fournisseur d'identité que vous souhaitez utiliser pour ce rôle IAM.
-
Entrez l'ID d'application fourni par le fournisseur d'identité dans le champ ID d'application, puis choisissez Étape suivante.
-
Configurez les autorisations pour les ressources que vous souhaitez exposer, afin d'autoriser l'accès à des opérations spécifiques sur des ressources spécifiques. Pour plus d'informations sur les autorisations IAM, consultez la section Présentation des autorisations AWS IAM dans le Guide de l'utilisateur IAM. Vérifiez et, si nécessaire, personnalisez la relation d'approbation du rôle, puis choisissez Étape suivante.
-
Attachez les stratégies supplémentaires dont vous avez besoin, puis choisissez Étape suivante. Pour plus d’informations sur les politiques IAM, consultez Présentation des politiques IAM dans le Guide de l’utilisateur IAM.
-
Vérifiez le nouveau rôle, puis choisissez Créer un rôle.
Vous pouvez spécifier d'autres contraintes pour le rôle, par exemple en définissant sa portée sur des ID utilisateur spécifiques. Si le rôle octroie des autorisations en écriture à vos ressources, veillez à définir correctement sa portée pour les utilisateurs dotés des privilèges appropriés. Sinon, n'importe quel utilisateur avec une identité Amazon, Facebook ou Google sera en mesure de modifier les ressources de votre application.
Pour plus d'informations sur l'utilisation de la fédération d'identités Web dans IAM, consultez À propos de la fédération d'identités Web dans le guide de l'utilisateur IAM.
Étape 3 : Obtention d'un jeton d'accès du fournisseur après connexion
Configurez l'action de connexion de votre application en utilisant le kit SDK du fournisseur d'identité. Vous pouvez télécharger et installer un JavaScript SDK auprès du fournisseur d'identité qui permet aux utilisateurs de se connecter à l'aide d'OAuth ou d'OpenID. Pour plus d'informations sur la façon de télécharger et de configurer le code du kit SDK dans votre application, consultez la documentation relative au kit SDK de votre fournisseur d'identité :
Étape 4 : Obtention d'informations d'identification temporaires
Après avoir configuré votre application, les rôles et les autorisations des ressources, ajoutez le code à votre application afin d'obtenir des informations d'identification temporaires. Ces informations d'identification sont fournies via la fédération AWS Security Token Service Using Web Identity. Les utilisateurs se connectent au fournisseur d'identité, qui renvoie un jeton d'accès. Configurez l'AWS.WebIdentityCredentialsobjet à l'aide de l'ARN du rôle IAM que vous avez créé pour ce fournisseur d'identité :
AWS.config.credentials = new AWS.WebIdentityCredentials({ RoleArn: 'arn:aws:iam::<AWS_ACCOUNT_ID>:role/<WEB_IDENTITY_ROLE_NAME>', ProviderId: 'graph.facebook.com|www.amazon.com', // Omit this for Google WebIdentityToken: ACCESS_TOKEN // Access token from identity provider });
Les objets de service créés par la suite disposeront des informations d'identification appropriées. Les objets créés avant la définition de la propriété AWS.config.credentials ne disposeront pas des informations d'identification actuelles.
Vous pouvez également créer la propriété AWS.WebIdentityCredentials avant d'extraire le jeton d'accès. Vous pourrez ainsi créer des objets de service qui dépendent des informations d'identification avant de charger le jeton d'accès. Pour ce faire, créez l'objet des informations d'identification sans le paramètre WebIdentityToken :
AWS.config.credentials = new AWS.WebIdentityCredentials({ RoleArn: 'arn:aws:iam::<AWS_ACCOUNT_ID>:role/<WEB_IDENTITY_ROLE_NAME>', ProviderId: 'graph.facebook.com|www.amazon.com' // Omit this for Google }); // Create a service object var s3 = new AWS.S3;
Ensuite, définissez WebIdentityToken dans le rappel issu du kit SDK du fournisseur d'identité qui contient le jeton d'accès :
AWS.config.credentials.params.WebIdentityToken = accessToken;