

La AWS SDK pour JavaScript v2 est arrivée end-of-support. Nous vous recommandons de migrer vers la [AWS SDK pour JavaScript version 3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/). Pour plus de détails et d'informations sur la façon de migrer, veuillez consulter cette [annonce](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/).

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
<a name="loading-browser-credentials-federated-id"></a>

Vous pouvez configurer directement des fournisseurs d'identité individuels pour accéder aux AWS ressources à l'aide de la fédération d'identité 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é :
+ [Login with Amazon](https://login.amazon.com)
+ [Connexion avec Facebook](https://www.facebook.com/about/login)
+ [Connexion avec Google](https://developers.google.com/identity/)

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 par le biais du fournisseur d'identité correspondant. Par exemple, vous pouvez configurer 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 avez à la fois un rôle IAM avec des privilèges configurés et une application enregistrée auprès des fournisseurs d'identité que vous avez choisis, vous pouvez configurer le SDK pour obtenir des informations d'identification pour le rôle IAM à l'aide du 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é
<a name="config-web-identity-register"></a>

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é
<a name="config-web-identity-role"></a>

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/](https://console.aws.amazon.com/iam/)pour créer un nouveau rôle IAM.

**Pour créer un rôle IAM pour un fournisseur d'identité**

1. Dans la section **Rôles** de la console, choisissez **Créer un rôle**.

1. Entrez un nom pour le nouveau rôle qui vous aidera à assurer le suivi de son utilisation, tel que **facebookIdentity**, puis choisissez **Étape suivante**.

1. Sous **Sélectionner un type de rôle**, choisissez **Rôle pour l'accès au fournisseur d'identité**.

1. Sous **Octroyer l'accès aux fournisseurs d'identité Web**, choisissez **Sélectionner**.

1. Dans la liste des **fournisseurs d'identité**, choisissez le fournisseur d'identité que vous souhaitez utiliser pour ce rôle IAM.  
![\[Sélection du rôle pour l'accès au fournisseur d'identité\]](http://docs.aws.amazon.com/fr_fr/sdk-for-javascript/v2/developer-guide/images/iam-provider-select.png)

1. Entrez l'ID d'application fourni par le fournisseur d'identité dans le champ **ID d'application**, puis choisissez **Étape suivante**.

1. 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_permissions.html) 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**.

1. 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) dans le *Guide de l’utilisateur IAM*.

1. Vérifiez le nouveau rôle, puis choisissez **Créer un rôle**.

Vous pouvez ajouter d'autres contraintes au rôle, par exemple en le délimitant à un utilisateur IDs spécifique. 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é Web dans IAM, voir [À propos de la fédération d'identité Web](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html) dans le guide de l'*utilisateur d'IAM*.

## Étape 3 : Obtention d'un jeton d'accès du fournisseur après connexion
<a name="config-web-identity-obtain-token"></a>

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'OpenID 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é :
+ [Login with Amazon](https://login.amazon.com/website)
+ [Connexion avec Facebook](https://developers.facebook.com/docs/javascript)
+ [Connexion avec Google](https://developers.google.com/identity/)

## Étape 4 : Obtention d'informations d'identification temporaires
<a name="config-web-identity-get-credentials"></a>

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 par le AWS Security Token Service biais de la fédération d'identité Web. Les utilisateurs se connectent au fournisseur d'identité, qui renvoie un jeton d'accès. Configurez l'`AWS.WebIdentityCredentials`objet à 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;
```