Spécification des mappages d'attributs du fournisseur d'identité pour votre groupe d'utilisateurs - Amazon Cognito

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.

Spécification des mappages d'attributs du fournisseur d'identité pour votre groupe d'utilisateurs

Vous pouvez utiliser l' AWS Management Console API ou ou pour spécifier les AWS CLI mappages d'attributs pour le fournisseur d'identité (IdP) de votre groupe d'utilisateurs.

Choses à savoir sur les mappages

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'usernameattribut 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

    Fournisseur d'identité Attribut source username
    Facebook id
    Google sub
    Login with Amazon user_id
    Se connecter avec Apple sub
    Fournisseurs SAML NameID
    Fournisseurs OpenID Connect (OIDC) sub
  • 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 chaque attribut mappé, même si sa valeur actuelle correspond déjà aux dernières informations. 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 quand vous sélectionnez Add custom attributes (Ajouter des attributs personnalisés) dans l'onglet Sign-up experience (Expérience d'inscription). Ou, si vous créez votre groupe d'utilisateurs à l'aide de l'opération CreateUserPoolAPI, vous pouvez définir le Mutable paramètre de chacun de ces attributs surtrue. 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 CreateUserPoolClient, 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.

  • Quand des attributs de fournisseur d'identité contiennent plusieurs valeurs, Amazon Cognito aplatit toutes les valeurs en une chaîne unique délimitée par des espaces et encode au format URL les valeurs contenant des caractères non alphanumériques (à l'exclusion des caractères « . », « - », « * » et « _ »). Vous devez décoder et analyser ces valeurs individuelles avant de les utiliser dans votre application.

Spécification des mappages d'attributs du fournisseur d'identité pour votre groupe d'utilisateurs (AWS Management Console)

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. Si vous y êtes invité, entrez vos AWS informations d'identification.

  2. Dans le volet de navigation, choisissez Groupes d'utilisateurs, puis choisissez le groupe d'utilisateurs que vous souhaitez modifier.

  3. Choisissez l'onglet Sign-in experience (Expérience de connexion) et localisez Federated sign-in (Connexion fédérée).

  4. 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 Ajout de fournisseurs d'identité sociaux à un groupe d'utilisateurs..

  5. 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.

    2. Sélectionnez un attribut dans la colonne attribut du <fournisseur>. 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.

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

  6. Sélectionnez Enregistrer les modifications.

Pour spécifier un mappage d'attribut de fournisseur SAML
  1. Connectez-vous à la console Amazon Cognito. Si vous y êtes invité, entrez vos AWS informations d'identification.

  2. Dans le volet de navigation, choisissez Groupes d'utilisateurs, puis choisissez le groupe d'utilisateurs que vous souhaitez modifier.

  3. Choisissez l'onglet Sign-in experience (Expérience de connexion) et localisez Federated sign-in (Connexion fédérée).

  4. 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 Ajout de fournisseurs d'identité SAML à un groupe d'utilisateurs..

  5. 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.

    2. 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 queemail, tandis que d'autres utilisent des noms d'attributs au format URL similaires à :

      http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
    3. Pour mapper des attributs supplémentaires entre votre IdP et Amazon Cognito, choisissez Ajout d'un autre attribut.

  6. 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)

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

    details.json contient :

    { "MetadataFile": "<SAML metadata XML>" }
    Note

    Si <SAML metadata XML> contient des guillemets ("), ils doivent être placés dans une séquence d'échappement (\").

    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
  • AWS API : CreateIdentityProvider

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

  • AWS API : UpdateIdentityProvider

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>

  • AWS API : DescribeIdentityProvider