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 le AWS Management Console ou pour spécifier les AWS CLI mappages d'attributs pour le fournisseur d'identité (IdP) de votre groupe d'utilisateurs. API

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 OIDC fournisseurs incluent email_verified cet attribut.

  • 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 OIDC les fournisseurs 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
    SAMLfournisseurs 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 CreateUserPoolAPIcette opération, 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. Ou, si vous créez le client de l'application à l'aide de l'CreateUserPoolClientAPIopération, vous pouvez ajouter ces attributs au WriteAttributes tableau. 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 URL et encode par formulaire les valeurs contenant des caractères non alphanumériques (à l'exception 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 Utilisation de fournisseurs d'identité sociale avec un pool 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 <provider> colonne d'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.

    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'attributs de SAML fournisseur
  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 Ajouter un fournisseur d'identité ou choisissez l'SAMLIdP que vous avez configuré. Localisez Mappage d'attribut, et choisissez Modifier. Pour plus d'informations sur l'ajout d'un SAML IdP, consultez. Utilisation de fournisseurs SAML d'identité avec un pool 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 des SAMLattributs. Il s'agit de l'attribut transmis à partir du répertoire du fournisseur.

      Votre IdP peut proposer des exemples d'SAMLassertions à titre de référence. Certains IdPs utilisent des noms simples, tels queemail, tandis que d'autres utilisent des noms d'attributs URL au format -formatés 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 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 l'icône <SAML metadata XML> contient des guillemets ("), ils doivent être échappés (\").

    Exemple avec métadonnées URL :

    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