

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.

# Mappage des attributs d'IdP aux profils et aux jetons
<a name="cognito-user-pools-specifying-attribute-mapping"></a>

Les services de fournisseur d'identité (IdP), notamment Amazon Cognito, peuvent généralement enregistrer davantage d'informations sur un utilisateur. Vous voudrez peut-être savoir pour quelle entreprise ils travaillent, comment les contacter et obtenir d'autres informations d'identification. Mais le format de ces attributs varie d'un fournisseur à l'autre. Par exemple, configurez trois IdPs fournisseurs différents avec votre groupe d'utilisateurs et examinez un exemple d'assertion SAML, de jeton d'identification ou de `userInfo` charge utile pour chacun d'eux. L'un représentera l'adresse e-mail de l'utilisateur sous la forme`email`, l'autre sous la forme`emailaddress`, et le troisième sous la forme`http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`.

L'un des principaux avantages de la consolidation IdPs avec un pool d'utilisateurs est la possibilité de mapper la variété des noms d'attributs dans un schéma de jeton OIDC unique avec des noms d'attributs cohérents, prévisibles et partagés. Ainsi, vos développeurs ne sont pas tenus de maintenir la logique du traitement d'une variété complexe d'événements d'authentification unique. Cette consolidation de format est un mappage d'attributs. Le mappage des attributs du groupe d'utilisateurs attribue des noms d'attributs IdP aux noms d'attributs du groupe d'utilisateurs correspondants. Par exemple, vous pouvez configurer votre groupe d'utilisateurs pour écrire la valeur d'une `emailaddress` réclamation dans l'attribut standard du groupe d'utilisateurs`email`.

Chaque IdP du groupe d'utilisateurs possède un schéma de mappage d'attributs distinct. Pour spécifier les mappages d'attributs pour votre IdP, configurez un fournisseur d'identité du groupe d'utilisateurs dans la console Amazon Cognito, AWS un SDK ou l'API REST du groupe d'utilisateurs.

## Choses à savoir sur les mappages
<a name="cognito-user-pools-specifying-attribute-mapping-requirements"></a>

Avant de commencer à configurer le mappage des attributs utilisateur, passez en revue les informations importantes suivantes.
+ Quand un utilisateur fédéré se connecte à votre application, un mappage doit être présent pour chaque attribut de groupe d'utilisateurs requis par votre groupe d'utilisateurs. Par exemple, si votre groupe d'utilisateurs nécessite un attribut `email` pour l'inscription, mappez cet attribut à son équivalent à partir du fournisseur d'identité.
+ Par défaut, les adresses e-mail mappées ne sont pas vérifiées. Vous ne pouvez pas vérifier une adresse e-mail mappée à l'aide d'un code à usage unique. Au lieu de cela, mappez un attribut de votre fournisseur d'identité pour obtenir l'état de vérification. Par exemple, Google et la plupart des fournisseurs OIDC incluent l'attribut `email_verified`.
+ Vous pouvez mapper les jetons du fournisseur d'identité (IdP) à des attributs personnalisés de votre groupe d'utilisateurs. Les fournisseurs sociaux présentent un jeton d'accès, et les fournisseurs OIDC présentent un jeton d'accès et d'identification. Pour mapper un jeton, ajoutez un attribut personnalisé d'une longueur maximale de 2 048 caractères, accordez à votre client d'application un accès en écriture à l'attribut, puis mappez `access_token` ou `id_token` de l'IdP à l'attribut personnalisé.
+ Pour chaque attribut du groupe d'utilisateurs mappé, la longueur de valeur maximale de 2 048 caractères doit être suffisamment grande pour la valeur qu'Amazon Cognito obtient du fournisseur d'identité. Sinon, Amazon Cognito signale une erreur lorsque les utilisateurs se connectent à votre application. Amazon Cognito ne prend pas en charge le mappage des jetons IdP à des attributs personnalisés lorsque la longueur des jetons est supérieure à 2 048 caractères.
+ Amazon Cognito calcule l'`username`attribut du profil d'un utilisateur fédéré à partir de demandes spécifiques transmises par votre IdP fédéré, comme indiqué dans le tableau suivant. Amazon Cognito ajoute à cette valeur d'attribut le nom de votre IdP, par exemple. `MyOIDCIdP_[sub]` Si vous souhaitez que vos utilisateurs fédérés aient un attribut correspondant exactement à un attribut de votre répertoire d'utilisateurs externe, associez cet attribut à un attribut de connexion Amazon Cognito tel que. `preferred_username`    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/cognito/latest/developerguide/cognito-user-pools-specifying-attribute-mapping.html)
+ Lorsqu'un groupe d'utilisateurs ne distingue pas les [majuscules et minuscules](user-pool-case-sensitivity.md), Amazon Cognito convertit l'attribut source du nom d'utilisateur en minuscules dans les noms d'utilisateur générés automatiquement par les utilisateurs fédérés. Voici un exemple de nom d'utilisateur pour un groupe d'utilisateurs distinguant les majuscules et minuscules :`MySAML_TestUser@example.com`. Le nom d'utilisateur suivant est le même pour un groupe d'utilisateurs ne distinguant pas *les majuscules* et minuscules :`MySAML_testuser@example.com`.

  Dans les groupes d'utilisateurs qui ne font pas la distinction majuscules/majuscules, vos déclencheurs Lambda qui traitent le nom d'utilisateur doivent tenir compte de cette modification de toute réclamation mixte concernant les attributs de source du nom d'utilisateur. Pour associer votre IdP à un groupe d'utilisateurs dont le paramètre de distinction majuscules/minuscules est différent de celui de votre groupe d'utilisateurs actuel, créez un nouveau groupe d'utilisateurs.
+ Amazon Cognito doit être en mesure de mettre à jour vos attributs mappés de groupe d'utilisateurs lorsque les utilisateurs se connectent à votre application. Quand un utilisateur se connecte via un fournisseur d'identité, Amazon Cognito met à jour les attributs mappés avec les informations les plus récentes du fournisseur d'identité. Amazon Cognito met à jour les attributs mappés uniquement lorsque leurs valeurs changent. Pour vous assurer qu'Amazon Cognito peut mettre à jour les attributs, vérifiez les exigences suivantes :
  + Tous les attributs personnalisés du groupe d'utilisateurs que vous mappez à partir de votre fournisseur d'identité doivent être *mutables*. Vous pouvez mettre à jour à tout moment des attributs personnalisés mutables. En revanche, pour un attribut personnalisé *immuable*, vous pouvez définir une valeur uniquement la première fois que vous créez le profil utilisateur. **Pour créer un attribut personnalisé mutable dans la console Amazon Cognito, cochez la case Mutable pour **l'**attribut que vous ajoutez lorsque vous **sélectionnez Ajouter des attributs personnalisés** dans le menu d'inscription.** Ou, si vous créez votre groupe d'utilisateurs à l'aide de l'opération [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)API, vous pouvez définir le `Mutable` paramètre de chacun de ces attributs sur`true`. Si votre IdP envoie une valeur pour un attribut immuable mappé, Amazon Cognito renvoie une erreur et la connexion échoue.
  + Dans les paramètres du client d'application pour votre application, les attributs mappés doivent être *accessibles en écriture*. Vous pouvez définir des attributs accessibles en écriture dans la page **Clients d'application** de la console Amazon Cognito. Si vous créez le client d'application au moyen de l'opération d'API [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html), vous pouvez également ajouter ces attributs à la grappe `WriteAttributes`. Si votre IdP envoie une valeur pour un attribut mappé non inscriptible, Amazon Cognito ne définit pas la valeur de l'attribut et procède à l'authentification.
+ Lorsque les attributs IdP contiennent plusieurs valeurs, Amazon Cognito ajuste toutes les valeurs en une seule chaîne séparée par des virgules entre crochets et. `[` `]` Le formulaire d'URL Amazon Cognito code les valeurs contenant des caractères non alphanumériques, à l'exception de,, et. `.` `-` `*` `_` Vous devez décoder et analyser ces valeurs individuelles avant de les utiliser dans votre application.
+ L'attribut de destination conserve toute valeur que vos règles de mappage d'attributs lui attribuent, sauf si une connexion ou une action administrative la modifie. Amazon Cognito ne supprime pas les attributs des utilisateurs lorsque l'attribut source n'est plus envoyé dans le jeton du fournisseur ou dans l'assertion SAML. Les actions suivantes suppriment la valeur d'un attribut d'un profil de groupe d'utilisateurs pour un utilisateur fédéré :

  1. L'IdP envoie une valeur vide pour l'attribut source et une règle de mappage applique la valeur vide à l'attribut de destination.

  1. Vous effacez la valeur de l'attribut mappé à l'aide d'une [AdminDeleteUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminDeleteUserAttributes.html)demande [DeleteUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteUserAttributes.html)or.

## Spécification des mappages d'attributs du fournisseur d'identité pour votre groupe d'utilisateurs (AWS Management Console)
<a name="cognito-user-pools-specifying-attribute-mapping-console"></a>

Vous pouvez utiliser le AWS Management Console pour spécifier des mappages d'attributs pour l'IdP de votre groupe d'utilisateurs.

**Note**  
Amazon Cognito mappera les revendications entrantes aux attributs de groupe d'utilisateurs uniquement si ces revendications existent dans le jeton entrant. Si une demande précédemment mappée n'existe plus dans le jeton entrant, elle ne sera ni supprimée ni modifiée. Si votre application nécessite le mappage de champs standard supprimés, vous pouvez utiliser le déclencheur Lambda de pré-authentification pour supprimer l'attribut personnalisé pendant l'authentification et permettre à ces attributs de se remplir à nouveau à partir du jeton entrant.

**Pour spécifier un mappage d'attributs de fournisseur d'identité social**

1. Connectez-vous à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si vous y êtes invité, entrez vos AWS informations d'identification.

1. Dans le volet de navigation, choisissez **Groupes d’utilisateurs**, puis choisissez le groupe d’utilisateurs que vous souhaitez modifier.

1. Choisissez le menu **Fournisseurs sociaux et externes**.

1. Choisissez **Add an identity provider** (Ajouter un fournisseur d'identité) ou choisissez le fournisseur d'identité **Facebook**, **Google**, **Amazon** ou **Apple** que vous avez configuré. Localisez **Mappage d'attribut** et choisissez **Modifier**. 

   Pour plus d'informations sur l'ajout d'un fournisseur d'identité social, consultez [Utilisation de fournisseurs d'identité sociale avec un pool d'utilisateurs](cognito-user-pools-social-idp.md).

1. Pour chaque attribut que vous devez mapper, effectuez les étapes suivantes :

   1. Sélectionnez un attribut dans la colonne **Attribut du groupe d'utilisateurs** Il s'agit de l'attribut affecté au profil utilisateur dans votre groupe d'utilisateurs. Les attributs personnalisés sont répertoriés après les attributs standard.

   1. Sélectionnez un attribut dans la colonne des **{{<provider>}}attributs**. Il s'agit de l'attribut transmis à partir du répertoire du fournisseur. Les attributs connus du fournisseur social sont fournis dans une liste déroulante.

   1. Pour mapper des attributs supplémentaires entre votre IdP et Amazon Cognito, choisissez **Ajout d'un autre attribut**.

1. Sélectionnez **Enregistrer les modifications**.

**Pour spécifier un mappage d'attribut de fournisseur SAML**

1. Connectez-vous à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si vous y êtes invité, entrez vos AWS informations d'identification.

1. Dans le volet de navigation, choisissez **Groupes d’utilisateurs**, puis choisissez le groupe d’utilisateurs que vous souhaitez modifier.

1. Choisissez le menu **Fournisseurs sociaux et externes**.

1. Choisissez **Add an identity provider** (Ajouter un fournisseur d'identité) ou choisissez le fournisseur d'identité SAML que vous avez configuré. Localisez **Mappage d'attribut**, et choisissez **Modifier**. Pour plus d'informations sur l'ajout d'un fournisseur d'identité SAML, consultez [Utilisation de fournisseurs d'identité SAML avec un groupe d'utilisateurs](cognito-user-pools-saml-idp.md).

1. Pour chaque attribut que vous devez mapper, effectuez les étapes suivantes :

   1. Sélectionnez un attribut dans la colonne **Attribut du groupe d'utilisateurs** Il s'agit de l'attribut affecté au profil utilisateur dans votre groupe d'utilisateurs. Les attributs personnalisés sont répertoriés après les attributs standard.

   1. Sélectionnez un attribut dans la colonne **Attribut SAML**. Il s'agit de l'attribut transmis à partir du répertoire du fournisseur.

      Votre fournisseur d'identité peut proposer des exemples d'assertions SAML à titre de référence. Certains IdPs utilisent des noms simples, tels que`email`, tandis que d'autres utilisent des noms d'attributs au format URL similaires à :

      ```
      http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
      ```

   1. Pour mapper des attributs supplémentaires entre votre IdP et Amazon Cognito, choisissez **Ajout d'un autre attribut**.

1. Sélectionnez **Enregistrer les modifications**.

## Spécifier les mappages d'attributs des fournisseurs d'identité pour votre groupe d'utilisateurs (AWS CLI et votre AWS API)
<a name="cognito-user-pools-specifying-attribute-mapping-cli-api"></a>

Le corps de demande suivant pour [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html)ou [UpdateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html)mappe les attributs `emailaddress` « MyId P » du fournisseur SAML et `phone` les attributs du groupe d'utilisateurs `email``birthdate`, et`phone_number`, dans cet ordre. `birthdate` Il s'agit d'un corps de demande complet pour un fournisseur SAML 2.0. Le corps de votre demande varie en fonction du type d'IdP et des détails spécifiques. Le mappage des attributs se trouve dans le `AttributeMapping` paramètre.

```
{
   "AttributeMapping": { 
      "email" : "emailaddress",
      "birthdate" : "birthdate",
      "phone_number" : "phone"
   },
   "IdpIdentifiers": [ 
      "IdP1",
      "pdxsaml"
   ],
   "ProviderDetails": { 
      "IDPInit": "true", 
      "IDPSignout": "true", 
      "EncryptedResponses" : "true", 
      "MetadataURL": "https://auth.example.com/sso/saml/metadata", 
      "RequestSigningAlgorithm": "rsa-sha256"
   },
   "ProviderName": "MyIdP",
   "ProviderType": "SAML",
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

Utilisez les commandes suivantes pour spécifier les mappages d'attributs de fournisseur d'identité pour votre groupe d'utilisateurs.

**Pour spécifier des mappages d'attributs au moment de la création du fournisseur**
+ AWS CLI: `aws cognito-idp create-identity-provider`

  Exemple avec fichier de métadonnées : `aws cognito-idp create-identity-provider --user-pool-id {{<user_pool_id>}} --provider-name=SAML_provider_1 --provider-type SAML --provider-details file:///details.json --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`

  Où `details.json` contient :

  ```
  { 
      "MetadataFile": "{{<SAML metadata XML>}}"
  }
  ```
**Note**  
S'il {{<SAML metadata XML>}} contient des guillemets (`"`), ils doivent être échappés (`\"`).

  Exemple avec URL de métadonnées :

  ```
  aws cognito-idp create-identity-provider \
  --user-pool-id {{us-east-1_EXAMPLE}} \
  --provider-name=SAML_provider_1 \
  --provider-type SAML \
  --provider-details MetadataURL={{https://myidp.example.com/saml/metadata}} \
  --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
  ```
+ API/SDK : [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html)

**Pour spécifier des mappages d'attributs pour un fournisseur d'identité existant**
+ AWS CLI: `aws cognito-idp update-identity-provider`

  Exemple : `aws cognito-idp update-identity-provider --user-pool-id {{<user_pool_id>}} --provider-name {{<provider_name>}} --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`
+ API/SDK : [UpdateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html)

**Pour obtenir des informations sur le mappage d'attributs pour un fournisseur d'identité spécifique**
+ AWS CLI: `aws cognito-idp describe-identity-provider`

  Exemple : `aws cognito-idp describe-identity-provider --user-pool-id {{<user_pool_id>}} --provider-name {{<provider_name>}}`
+ API/SDK : [DescribeIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeIdentityProvider.html)