

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.

# Accès à Services AWS l'aide d'un pool d'identités après la connexion
<a name="amazon-cognito-integrating-user-pools-with-identity-pools"></a>

Une fois que vos utilisateurs se sont connectés à un groupe d'utilisateurs, ils peuvent y accéder à l' Services AWS aide d'informations d'identification API temporaires émises par un groupe d'identités.

Votre application Web ou mobile reçoit des jetons provenant d'un groupe d'utilisateurs. Lorsque vous configurez votre groupe d'utilisateurs en tant que fournisseur d'identité pour votre groupe d'identités, le groupe d'identités échange des jetons contre des AWS informations d'identification temporaires. Ces informations d'identification peuvent être étendues aux rôles IAM et à leurs politiques qui permettent aux utilisateurs d'accéder à un ensemble limité de AWS ressources. Pour de plus amples informations, veuillez consulter [Flux d'authentification des groupes d'identités](authentication-flow.md).

Le schéma suivant montre comment une application se connecte à un groupe d'utilisateurs, récupère les informations d'identification du pool d'identités et demande un actif à un Service AWS.

![Schéma de flux d'une application qui s'authentifie auprès d'un groupe d'utilisateurs Amazon Cognito et autorise l'accès AWS aux ressources via un groupe d'identités.](http://docs.aws.amazon.com/fr_fr/cognito/latest/developerguide/images/access-services-identity-pool.png)


Vous pouvez utiliser les informations d'identification du pool d'identités pour :
+ Soumettez des demandes d'autorisation détaillées à Amazon Verified Permissions avec les informations d'identification de votre utilisateur.
+ Connectez-vous à une API REST Amazon API Gateway ou à une API AWS AppSync GraphQL qui autorise les connexions avec IAM.
+ Connectez-vous à un backend de base de données tel qu'Amazon DynamoDB ou Amazon RDS qui autorise les connexions avec IAM.
+ Récupérez les ressources de l'application depuis un compartiment Amazon S3.
+ Lancez une session avec un bureau WorkSpaces virtuel Amazon.

Les groupes d'identités ne fonctionnent pas exclusivement au sein d'une session authentifiée avec un groupe d'utilisateurs. Ils acceptent également l'authentification directement auprès de fournisseurs d'identité tiers et peuvent générer des informations d'identification pour les utilisateurs invités non authentifiés.

Pour plus d'informations sur l'utilisation de groupes d'identités avec des groupes de groupes d'utilisateurs pour contrôler l'accès à vos AWS ressources, consultez [Ajout de groupes à un groupe d'utilisateurs](cognito-user-pools-user-groups.md) et[Utilisation du contrôle d'accès basé sur les rôles](role-based-access-control.md). En outre, pour plus d'informations sur les pools d'identités et Gestion des identités et des accès AWS, voir[Flux d'authentification des groupes d'identités](authentication-flow.md).

## Configuration d'un groupe d'utilisateurs à l'aide du AWS Management Console
<a name="amazon-cognito-integrating-user-pools-with-identity-pools-setting-up"></a>

Créez un groupe d'utilisateurs Amazon Cognito et prenez note des identifiants indiqués dans les champs **User Pool ID (ID du groupe d'utilisateurs)** et **App Client ID (ID du client d'application)** pour chacune de vos applications client. Pour plus d'informations sur la création de groupes d'utilisateurs, consultez [Démarrage avec les groupes d'utilisateurs](getting-started-user-pools.md).

## Configuration d'un pool d'identités à l'aide du AWS Management Console
<a name="amazon-cognito-integrating-user-pools-with-identity-pools-configuring"></a>

La procédure suivante décrit comment utiliser le AWS Management Console pour intégrer un pool d'identités à un ou plusieurs groupes d'utilisateurs et applications clientes.

**Pour ajouter un fournisseur d'identité (IdP) aux groupes d'utilisateurs Amazon Cognito**

1. Choisissez **Groupes d'identités** dans la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Sélectionnez une réserve d'identités.

1. Choisissez l'onglet **Accès utilisateur**.

1. Sélectionnez **Ajouter un fournisseur d'identité**.

1. Choisissez **Groupe d'utilisateurs Amazon Cognito**.

1. Saisissez un **ID de groupe d'utilisateurs** et un **ID de client d'application**.

1. 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 cet IdP le **rôle par défaut** que vous avez défini lorsque vous avez configuré votre **rôle authentifié, ou vous pouvez **choisir** un rôle** avec des règles. Avec un fournisseur d'identité de groupe d'utilisateurs Amazon Cognito, vous pouvez également sélectionner **Choisir le rôle avec l'enregistrement preferred\_role dans les jetons**. Pour plus d'informations sur le champ standard `cognito:preferred_role`, consultez [Affectation de valeurs de priorité à des groupes](cognito-user-pools-user-groups.md#assigning-precedence-values-to-groups).

      1. Si vous avez choisi **Choisir un rôle avec des règles**, entrez la **réclamation** source issue de l'authentification de votre utilisateur, **l'opérateur** que vous souhaitez utiliser pour comparer la réclamation à la règle, la **valeur** qui provoquera une correspondance avec ce choix de rôle et le **rôle** que vous souhaitez attribuer lorsque l'**attribution du rôle** correspond. Sélectionnez **Ajouter un autre** pour créer une règle supplémentaire basée sur une condition différente.

      1. Si vous avez **choisi Choose role with preferred\_role claim in tokens**, Amazon Cognito émet des informations d'identification pour le rôle indiqué dans la réclamation de votre utilisateur. `cognito:preferred_role` Si aucun enregistrement de rôle préféré n'est présent, Amazon Cognito émet des informations d'identification en fonction de la **Résolution du rôle**.

   1. 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é**.

1. 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` et `aud`, 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.

1. Cliquez sur **Enregistrer les modifications**.

## Intégration d'un groupe d'utilisateurs à un groupe d'identités
<a name="amazon-cognito-integrating-user-pools-with-identity-pools-using"></a>

Une fois que l'utilisateur de l'application est authentifié, ajoutez son jeton d'identité à la carte de connexions dans le fournisseur d'informations d'identification. Le nom de ce fournisseur dépend de l'ID du groupe d'utilisateurs Amazon Cognito. Sa structure est la suivante :

```
cognito-idp.{{<region>}}.amazonaws.com/{{<YOUR_USER_POOL_ID>}}
```

Vous pouvez déduire la valeur {{<region>}} de l'**ID du groupe d'utilisateurs**. Par exemple, si l'ID du groupe d'utilisateurs est`us-east-1_EXAMPLE1`, c'{{<region>}}est le cas`us-east-1`. Si l'ID du groupe d'utilisateurs est`us-west-2_EXAMPLE2`, c'{{<region>}}est le cas`us-west-2`.

------
#### [ JavaScript ]

```
var cognitoUser = userPool.getCurrentUser();

if (cognitoUser != null) {
	cognitoUser.getSession(function(err, result) {
		if (result) {
			console.log('You are now logged in.');

			// Add the User's Id Token to the Cognito credentials login map.
			AWS.config.credentials = new AWS.CognitoIdentityCredentials({
				IdentityPoolId: '{{YOUR_IDENTITY_POOL_ID}}',
				Logins: {
					'cognito-idp.{{<region>}}.amazonaws.com/{{<YOUR_USER_POOL_ID>}}': result.getIdToken().getJwtToken()
				}
			});
		}
	});
}
```

------
#### [ Android ]

```
cognitoUser.getSessionInBackground(new AuthenticationHandler() {
	@Override
	public void onSuccess(CognitoUserSession session) {
		String idToken = session.getIdToken().getJWTToken();

		Map<String, String> logins = new HashMap<String, String>();
		logins.put("cognito-idp.{{<region>}}.amazonaws.com/{{<YOUR_USER_POOL_ID>}}", session.getIdToken().getJWTToken());
		credentialsProvider.setLogins(logins);
	}

});
```

------
#### [ iOS - objective-C ]

```
AWSServiceConfiguration *serviceConfiguration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1 credentialsProvider:nil];
AWSCognitoIdentityUserPoolConfiguration *userPoolConfiguration = [[AWSCognitoIdentityUserPoolConfiguration alloc] initWithClientId:@"{{YOUR_CLIENT_ID}}"  clientSecret:@"{{YOUR_CLIENT_SECRET}}" poolId:@"{{YOUR_USER_POOL_ID}}"];
[AWSCognitoIdentityUserPool registerCognitoIdentityUserPoolWithConfiguration:serviceConfiguration userPoolConfiguration:userPoolConfiguration forKey:@"UserPool"];
AWSCognitoIdentityUserPool *pool = [AWSCognitoIdentityUserPool CognitoIdentityUserPoolForKey:@"UserPool"];
AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:AWSRegionUSEast1 identityPoolId:@"{{YOUR_IDENTITY_POOL_ID}}" identityProviderManager:pool];
```

------
#### [ iOS - swift ]

```
let serviceConfiguration = AWSServiceConfiguration(region: .USEast1, credentialsProvider: nil)
let userPoolConfiguration = AWSCognitoIdentityUserPoolConfiguration(clientId: "{{YOUR_CLIENT_ID}}", clientSecret: "{{YOUR_CLIENT_SECRET}}", poolId: "{{YOUR_USER_POOL_ID}}")
AWSCognitoIdentityUserPool.registerCognitoIdentityUserPoolWithConfiguration(serviceConfiguration, userPoolConfiguration: userPoolConfiguration, forKey: "UserPool")
let pool = AWSCognitoIdentityUserPool(forKey: "UserPool")
let credentialsProvider = AWSCognitoCredentialsProvider(regionType: .USEast1, identityPoolId: "{{YOUR_IDENTITY_POOL_ID}}", identityProviderManager:pool)
```

------