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
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'SAMLassertion, de jeton d'identification ou de userInfo
charge utile pour chacun d'entre eux. L'un représentera l'adresse e-mail de l'utilisateur sous la formeemail
, l'autre sous la formeemailaddress
, et le troisième sous la formehttp://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 les différents noms d'attributs dans un schéma de OIDC jeton 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'utilisateursemail
.
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é de groupe d'utilisateurs dans la console Amazon Cognito, AWS SDK un ou plusieurs groupes d'utilisateurs. REST API
Choses à savoir sur les mappages
Avant de commencer à configurer le mappage des attributs utilisateur, consultez 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
ouid_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
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
-
Lorsqu'un groupe d'utilisateurs ne distingue pas les majuscules et minuscules, 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 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'
CreateUserPoolClient
APIopération, vous pouvez ajouter ces attributs auWriteAttributes
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
-
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 l'onglet Sign-in experience (Expérience de connexion) et localisez Federated sign-in (Connexion fédérée).
-
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.
-
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 le
<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. -
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'attributs de SAML fournisseur
-
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 l'onglet Sign-in experience (Expérience de connexion) et localisez Federated sign-in (Connexion fédérée).
-
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
-
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 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 que
email
, 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
-
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 et AWS API)
Le corps de demande suivant pour CreateIdentityProviderou UpdateIdentityProvidermappe les attributs « MyId P » du SAML fournisseur emailaddress
birthdate
, et phone
avec les attributs du groupe d'utilisateurs email
birthdate
, etphone_number
, dans cet ordre. 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/emailaddressOù
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 -
API/SDK: 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 -
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-provider
Exemple :
aws cognito-idp describe-identity-provider --user-pool-id
<user_pool_id>
--provider-name<provider_name>
-
API/SDK: DescribeIdentityProvider