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 IdP avec les profils et les jetons
Les services des fournisseurs d'identité (IdP), y compris 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-en trois IdPs provenant de trois 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. L'un représentera l'adresse e-mail de l'utilisateur commeemail, l'autre commeemailaddress, et le troisième commehttp://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 partagés cohérents, prévisibles et partagés. Ainsi, vos développeurs n'ont pas à gérer la logique de traitement d'une variété complexe d'événements d'authentification unique. Cette consolidation de format est le 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 de groupe d'utilisateurs standardemail.
Chaque IdP de groupe d'utilisateurs possède un schéma de mappage d'attributs distinct. Pour spécifier des mappages d'attributs pour votre IdP, configurez un fournisseur d'identité de groupe d'utilisateurs dans la console Amazon Cognito, un AWS SDK ou l'API REST des groupes 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
emailpour 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_tokenouid_tokende 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 déduit l'
usernameattribut du profil d'un utilisateur fédéré à partir de déclarations spécifiques que votre IdP fédéré a acceptées, comme indiqué dans le tableau suivant. Amazon Cognito ajoute à cette valeur d'attribut le nom de votre IdP, par exemple.MyOIDCIdP_[sub]Lorsque vous souhaitez que vos utilisateurs fédérés disposent d'un attribut qui correspond exactement à un attribut de votre annuaire d'utilisateurs externe, associez cet attribut à un attribut de connexion Amazon Cognito tel que.preferred_usernameFournisseur d'identité Attribut source usernameFacebook idGoogle subLogin with Amazon user_idSe connecter avec Apple subFournisseurs SAML NameIDFournisseurs OpenID Connect (OIDC) sub -
Lorsqu'un groupe d'utilisateurs ne fait pas la distinction entre majuscules et minuscules, Amazon Cognito convertit l'intégralité du nom d'utilisateur généré automatiquement d'un utilisateur fédéré en minuscules, y compris le préfixe du nom d'IdP. Voici un exemple de nom d'utilisateur pour un groupe d'utilisateurs sensibles aux majuscules et minuscules :
MySAML_TestUser@example.com. Voici le même nom d'utilisateur pour un groupe d'utilisateurs insensible aux majuscules et minuscules :mysaml_testuser@example.com.Dans les groupes d'utilisateurs qui ne font pas la distinction majuscules/minuscules, vos déclencheurs Lambda qui traitent le nom d'utilisateur doivent tenir compte des modifications apportées à l'intégralité du nom d'utilisateur. Ces modifications incluent toutes les valeurs mélangées entre majuscules et minuscules provenant des attributs source du nom d'utilisateur que vous avez mappés à partir de votre IdP. Pour associer votre IdP à un groupe d'utilisateurs dont le paramètre de distinction majuscules/minuscules est différent de celui de votre pool 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 ne met à jour les attributs mappés que 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é modifiable dans la console Amazon Cognito, cochez la case Mutable correspondant à l'attribut que vous ajoutez lorsque vous sélectionnez Ajouter des attributs personnalisés dans le menu. Sign-up Ou, si vous créez votre groupe d'utilisateurs à l'aide de l'opération CreateUserPool API, vous pouvez définir le
Mutableparamè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 grappeWriteAttributes. 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 aplatit toutes les valeurs en une seule chaîne séparée par des virgules, entourée de crochets et.
[]L'URL Amazon Cognito code sous forme de formulaire 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, à moins qu'une action de connexion ou administrative ne 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é :
-
L'IdP envoie une valeur vide pour l'attribut source et une règle de mappage applique la valeur vide à l'attribut de destination.
-
Vous effacez la valeur de l'attribut mappé à l'aide d'une AdminDeleteUserAttributes requête DeleteUserAttributes ou.
-
Spécifier les mappages d'attributs des fournisseurs d'identité pour votre groupe d'utilisateurs (Console de gestion AWS)
Vous pouvez utiliser le Console de gestion AWS 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 des revendications supprimées, vous pouvez utiliser le déclencheur Pre-Authentication Lambda pour supprimer l'attribut personnalisé lors de l'authentification et autoriser le reremplissage de ces attributs à partir du jeton entrant.
Pour spécifier un mappage d'attributs de fournisseur d'identité social
-
Connectez-vous à la console Amazon Cognito
. Si vous y êtes invité, entrez vos AWS informations d'identification. -
Dans le volet de navigation, choisissez Groupes d’utilisateurs, puis choisissez le groupe d’utilisateurs que vous souhaitez modifier.
-
Choisissez le menu Prestataires sociaux et externes.
-
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 groupe d'utilisateurs.
-
Pour chaque attribut que vous devez mapper, effectuez les étapes suivantes :
-
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.
-
Sélectionnez un attribut dans la colonne
<provider>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. -
Pour mapper des attributs supplémentaires entre votre IdP et Amazon Cognito, choisissez Ajout d'un autre attribut.
-
-
Sélectionnez Enregistrer les modifications.
Pour spécifier un mappage d'attribut de fournisseur SAML
-
Connectez-vous à la console Amazon Cognito
. Si vous y êtes invité, entrez vos AWS informations d'identification. -
Dans le volet de navigation, choisissez Groupes d’utilisateurs, puis choisissez le groupe d’utilisateurs que vous souhaitez modifier.
-
Choisissez le menu Prestataires sociaux et externes.
-
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.
-
Pour chaque attribut que vous devez mapper, effectuez les étapes suivantes :
-
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.
-
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' URL-formatted attributs similaires à :http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress -
Pour mapper des attributs supplémentaires entre votre IdP et Amazon Cognito, choisissez Ajout d'un autre attribut.
-
-
Sélectionnez Enregistrer les modifications.
Spécifier les mappages d'attributs des fournisseurs d'identité pour votre groupe d'utilisateurs (AWS CLI and AWS API)
Le corps de requête suivant CreateIdentityProvider UpdateIdentityProvider correspond aux attributs « MyId P » du fournisseur SAML emailaddressbirthdate, et phone aux attributs du pool d'utilisateurs emailbirthdate, etphone_number, dans cet ordre. Il s'agit d'un corps de requête complet pour un fournisseur SAML 2.0. Le corps de votre demande varie en fonction du type d'IdP et de 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-providerExemple 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/emailaddressOù
details.jsoncontient :{ "MetadataFile": "<SAML metadata XML>" }Note
Si le
<SAML metadata XML>contient des guillemets ("), il faut les éviter (\").Exemple avec URL de métadonnées :
aws cognito-idp create-identity-provider \ --user-pool-idus-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
Pour spécifier des mappages d'attributs pour un fournisseur d'identité existant
-
AWS CLI:
aws cognito-idp update-identity-providerExemple :
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
Pour obtenir des informations sur le mappage d'attributs pour un fournisseur d'identité spécifique
-
AWS CLI:
aws cognito-idp describe-identity-providerExemple :
aws cognito-idp describe-identity-provider --user-pool-id<user_pool_id>--provider-name<provider_name> -
API/SDK: DescribeIdentityProvider