Utilisation des attributs utilisateur - 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.

Utilisation des attributs utilisateur

Les attributs sont des éléments d'information, comme le nom, l'adresse e-mail et le numéro de téléphone, qui vous aident à identifier des utilisateurs individuels. Un nouveau groupe d'utilisateurs possède un ensemble d'attributs standard par défaut. Vous pouvez également ajouter des attributs personnalisés à la définition de votre groupe d'utilisateurs dans le AWS Management Console. Cette rubrique décrit ces attributs en détail et vous donne des conseils sur la configuration du groupe d'utilisateurs.

Ne stockez pas toutes les informations sur vos utilisateurs dans des attributs. Par exemple, conservez les données utilisateur qui changent fréquemment, telles que les statistiques d'utilisation ou les scores de jeu, dans un magasin de données distinct, comme Amazon Cognito Sync ou Amazon DynamoDB.

Note

Certains documents et normes font référence aux attributs en tant que membres.

Attributs standard

Amazon Cognito attribue à tous les utilisateurs un ensemble d'attributs standard en fonction de la Spécification OpenID Connect. Par défaut, les valeurs des attributs standard et personnalisés peuvent être des chaînes d'une longueur maximale de 2 048 caractères, mais certaines d'entre elles présentent des restrictions de format.

Les attributs standard sont les suivants :

  • name

  • family_name

  • given_name

  • middle_name

  • nickname

  • preferred_username

  • profile

  • picture

  • website

  • gender

  • birthdate

  • zoneinfo

  • locale

  • updated_at

  • address

  • email

  • phone_number

  • sub

À l'exception de sub, les attributs standard sont facultatifs par défaut pour tous les utilisateurs. Pour rendre un attribut obligatoire, pendant le processus de création du groupe d'utilisateurs, cochez la case Obligatoire en regard de l'attribut. Amazon Cognito attribue une valeur d'identifiant utilisateur unique à l'attribut sub de chaque utilisateur. Seuls les attributs e-mail et phone_number peuvent être vérifiés.

Les attributs standard possèdent des propriétés prédéfinies que vous pouvez afficher dans le SchemaAttributes paramètre d'une DescribeUserPool APIréponse. Vous pouvez définir des valeurs personnalisées pour ces propriétés d'attribut, telles que le type de données, la mutabilité et les contraintes de longueur. Pour modifier les propriétés des attributs standard, définissez leurs valeurs personnalisées dans le paramètre CreateUserPool Schema. Le schéma est également l'endroit où vous définissez les attributs requis. Vous ne pouvez pas modifier les propriétés des attributs standard lorsque vous créez des groupes d'utilisateurs dans la console Amazon Cognito.

Note

Quand vous marquez un attribut standard comme étant Required (Obligatoire), un utilisateur ne peut pas s'enregistrer s'il ne fournit pas de valeur pour cet attribut. Pour créer des utilisateurs et ne pas attribuer de valeurs aux attributs requis, les administrateurs peuvent utiliser le AdminCreateUserAPI. Après avoir créé un groupe d'utilisateurs, vous ne pouvez pas changer un attribut obligatoire en attribut non obligatoire, et inversement.

Détails des attributs standard et restrictions de format
birthdate

La valeur doit être une date valide de 10 caractères au format YYYY-MM-DD.

e-mail

Les utilisateurs et les administrateurs peuvent vérifier les valeurs des adresses e-mail.

Un administrateur disposant Compte AWS des autorisations appropriées peut modifier l'adresse e-mail de l'utilisateur et la marquer comme vérifiée. Marquez une adresse e-mail comme vérifiée à l'aide de la commande AdminUpdateUserAttributesAPIou admin-update-user-attributes AWS Command Line Interface (AWS CLI). Avec cette commande, l'administrateur peut affecter à l'attribut email_verified la valeur true. Vous pouvez également modifier un utilisateur dans l'onglet Utilisateurs du AWS Management Console pour marquer une adresse e-mail comme vérifiée.

La valeur doit être une chaîne d'adresse e-mail valide conforme au format d'e-mail standard avec le symbole @ et le domaine, d'une longueur maximale de 2 048 caractères.

phone_number

Un utilisateur doit fournir un numéro de téléphone si l'authentification SMS multifactorielle (MFA) est active. Pour de plus amples informations, veuillez consulter Ajouter MFA à un groupe d'utilisateurs.

Les utilisateurs et les administrateurs peuvent vérifier les numéros de téléphone.

Un administrateur disposant des Compte AWS autorisations appropriées peut modifier le numéro de téléphone de l'utilisateur et le marquer comme vérifié. Marquez un numéro de téléphone comme vérifié à l'aide de la admin-update-user-attributes AWS CLI commande AdminUpdateUserAttributesAPIou. Avec cette commande, l'administrateur peut affecter à l'attribut phone_number_verified la valeur true. Vous pouvez également modifier un utilisateur dans l'onglet Utilisateurs du AWS Management Console pour marquer un numéro de téléphone comme vérifié.

Important

Les numéros de téléphone doivent suivre ces règles de formatage : un numéro de téléphone doit commencer par le signe plus (+), suivi immédiatement de l'indicatif du pays. Ils peuvent uniquement contenir le signe + et des chiffres. Supprimez tous les autres caractères d'un numéro de téléphone, tels que des parenthèses, des espaces ou des tirets (-), avant de soumettre la valeur au service. Par exemple, un numéro de téléphone basé aux États-Unis doit respecter ce format : +14325551212.

preferred_username

Vous pouvez sélectionner preferred_username au besoin ou en tant qu'alias, mais pas les deux. S'il s'preferred_usernameagit d'un alias, vous pouvez envoyer une demande à l'UpdateUserAttributesAPIopération et ajouter la valeur de l'attribut après avoir confirmé l'utilisateur.

sub

Indexez et recherchez vos utilisateurs en fonction de l'attribut sub. L'attribut sub est un identifiant utilisateur unique au sein de chaque groupe d'utilisateurs. Les utilisateurs peuvent modifier des attributs tels que phone_number et email. L'attribut sub a une valeur fixe. Pour plus d'informations sur comment trouver des utilisateurs, consultez Gestion et recherche de comptes d'utilisateur.

Afficher les attributs requis

Procédez comme suit pour afficher les attributs obligatoires d'un groupe d'utilisateurs.

Note

Vous ne pouvez pas modifier les attributs obligatoires après avoir créé un groupe d'utilisateurs.

Pour afficher les attributs requis
  1. Accédez à Amazon Cognito dans le. AWS Management Console Si la console vous y invite, entrez vos AWS informations d'identification.

  2. Choisissez Groupes d'utilisateurs.

  3. Choisissez un groupe d'utilisateurs existant dans la liste.

  4. Choisissez l'onglet Sign-up experience (Expérience d'inscription).

  5. Dans la section Required attributes (Attributs obligatoires), consultez les attributs obligatoires de votre groupe d'utilisateurs.

Noms d'utilisateur et noms d'utilisateurs préférés

La valeur username est un attribut distinct, à ne pas confondre avec l'attribut name. Chaque utilisateur a un attribut username. Amazon Cognito génère automatiquement un nom d'utilisateur pour les utilisateurs fédérés. Vous devez fournir un attribut username pour créer un utilisateur local dans l'annuaire Amazon Cognito. Après avoir créé un utilisateur, vous ne pouvez pas modifier la valeur de l'attribut username.

Les développeurs peuvent utiliser l'attribut preferred_username pour donner aux utilisateurs des noms d'utilisateur qu'ils peuvent modifier. Pour de plus amples informations, veuillez consulter Personnalisation des attributs de connexion.

Si votre application ne nécessite pas de nom d'utilisateur, vous n'avez pas besoin de demander aux utilisateurs d'en fournir un. Votre application peut créer un nom d'utilisateur unique pour les utilisateurs en arrière-plan. Cela peut s'avérer utile si vous souhaitez que les utilisateurs s'enregistrent et se connectent avec une adresse e-mail et un mot de passe. Pour de plus amples informations, veuillez consulter Personnalisation des attributs de connexion.

L'attribut username doit être unique au sein d'un groupe d'utilisateurs. Un username peut être réutilisé, mais seulement après avoir été supprimé et que plus personne ne l'utilise. Pour plus d'informations sur les contraintes de chaîne username appliquées aux attributs, consultez la propriété username d'une SignUpAPIdemande.

Personnalisation des attributs de connexion

Lorsque vous créez un groupe d'utilisateurs, vous pouvez configurer des attributs de nom d'utilisateur si vous souhaitez que vos utilisateurs s'inscrivent et se connectent avec une adresse e-mail ou un numéro de téléphone en guise de nom d'utilisateur. Vous pouvez également configurer des attributs d'alias pour permettre à vos utilisateurs d'inclure plusieurs attributs au moment de s'inscrire pour se connecter ensuite avec un nom d'utilisateur, un nom d'utilisateur préféré, une adresse e-mail ou un numéro de téléphone.

Important

Après avoir créé un groupe d'utilisateurs, vous ne pouvez pas modifier ce paramètre.

Comment choisir entre attributs d'alias et attributs de nom d'utilisateur

Votre exigence Attributs d'alias Attributs de nom d'utilisateur
Les utilisateurs disposent de plusieurs attributs de connexion Oui¹ Non-²
Les utilisateurs doivent vérifier leur adresse e-mail ou leur numéro de téléphone avant de pouvoir se connecter Oui Non
Inscrivez les utilisateurs avec des adresses e-mail ou des numéros de téléphone dupliqués et évitez les UsernameExistsException erreurs³ Oui Non
Possibilité d'attribuer la même valeur d'attribut d'adresse e-mail ou de numéro de téléphone à plusieurs utilisateurs Oui⁴ Non

¹ Les attributs de connexion disponibles sont le nom d'utilisateur, l'adresse e-mail, le numéro de téléphone et le nom d'utilisateur préféré.

² Possibilité de se connecter avec une adresse e-mail ou un numéro de téléphone.

³ Votre groupe d'utilisateurs ne génère pas des erreurs UsernameExistsException quand les utilisateurs s'enregistrent avec des adresses e-mail ou des numéros de téléphone potentiellement dupliqués, mais sans nom d'utilisateur. Ce comportement est indépendant de l'option Empêcher les erreurs d'existence de nom d'utilisateur, qui s'applique aux opérations de connexion, mais pas aux opérations d'inscription.

⁴ Seul le dernier utilisateur ayant vérifié l'attribut peut l'utiliser pour se connecter.

Vous pouvez activer les alias si vous souhaitez permettre à vos utilisateurs de choisir de saisir leur nom d'utilisateur ou d'autres valeurs d'attributs lorsqu'ils se connectent. Par défaut, les utilisateurs se connectent avec leur nom d'utilisateur et un mot de passe. Le nom d'utilisateur est une valeur fixe que les utilisateurs ne peuvent pas modifier. Si vous marquez un attribut en tant qu'alias, les utilisateurs peuvent l'utiliser pour se connecter à la place de leur nom d'utilisateur. Les attributs que vous pouvez marquer en tant qu'alias sont l'adresse e-mail, le numéro de téléphone et le nom d'utilisateur préféré. Par exemple, si vous sélectionnez l'adresse e-mail et le numéro téléphone en tant qu'alias pour un groupe d'utilisateurs, les utilisateurs de ce groupe peuvent se connecter en indiquant leur nom d'utilisateur, leur adresse e-mail ou leur numéro de téléphone, suivi de leur mot de passe.

Pour choisir les attributs d'alias, sélectionnez User name (Nom d'utilisateur) et au moins une option de connexion supplémentaire lorsque vous créez votre groupe d'utilisateurs.

Note

Quand vous configurez votre groupe d'utilisateurs comme non sensible à la casse, un utilisateur peut utiliser des lettres minuscules ou majuscules pour s'inscrire ou se connecter avec son alias. Pour plus d'informations, consultez le document de CreateUserPoolréférence sur les groupes API d'utilisateurs Amazon Cognito.

Si vous sélectionnez une adresse e-mail comme alias, Amazon Cognito n'accepte pas de nom d'utilisateur correspondant à un format d'adresse e-mail valide. De même, si vous sélectionnez un numéro de téléphone comme alias, Amazon Cognito n'accepte pas un nom d'utilisateur pour ce groupe d'utilisateurs qui correspond à un format de numéro de téléphone valide.

Note

Les valeurs d'alias doivent être uniques dans l'ensemble du groupe d'utilisateurs. Si vous configurez un alias pour un numéro de téléphone ou une adresse e-mail, la valeur que vous fournissez peut avoir un état vérifié dans un seul compte. Lors de l'inscription, si votre utilisateur fournit une adresse e-mail ou un numéro de téléphone comme valeur d'alias et qu'un autre utilisateur a déjà utilisé cette valeur d'alias, l'enregistrement aboutit. Toutefois, quand un utilisateur tente de confirmer le compte avec cette adresse e-mail (ou ce numéro de téléphone) et saisit le code valide, Amazon Cognito renvoie une erreur AliasExistsException. Cette erreur indique à l'utilisateur qu'un compte avec cette adresse e-mail (ou ce numéro de téléphone) existe déjà. À ce stade, l'utilisateur peut abandonner sa tentative de création du compte et essayer plutôt de réinitialiser le mot de passe de l'ancien compte. Si l'utilisateur continue à créer le nouveau compte, votre application doit l'appeler ConfirmSignUp API avec l'forceAliasCreationoption. ConfirmSignUpwith forceAliasCreation déplace l'alias du compte précédent vers le compte nouvellement créé et marque l'attribut comme non vérifié dans le compte précédent.

Les numéros de téléphone et les adresses e-mail deviennent des alias actifs pour un utilisateur une fois seulement que l'utilisateur les a vérifiés. Nous vous recommandons d'opter pour la vérification automatique des adresses e-mail et des numéros de téléphone si vous les utilisez comme alias.

Optez pour les attributs d'alias pour éviter des erreurs UsernameExistsException en rapport avec les attributs d'adresse e-mail et de numéro de téléphone lors de l'inscription de vos utilisateurs.

Activez l'attribut preferred_username afin que votre utilisateur puisse modifier le nom d'utilisateur qu'il utilise pour se connecter sans que sa valeur d'attribut username change. Si vous souhaitez configurer cette expérience utilisateur, envoyez la nouvelle valeur username en tant que preferred_username et choisissez preferred_username comme alias. Les utilisateurs peuvent alors se connecter avec la nouvelle valeur qu'ils ont saisie. Si vous sélectionnez preferred_username comme alias, votre utilisateur peut fournir cette valeur uniquement quand il confirme un compte. Il ne peut pas fournir cette valeur au moment de l'inscription.

Vous pouvez décider ou non de permettre à l'utilisateur de se connecter avec un ou plusieurs des alias suivants lorsqu'il s'inscrit avec un nom d'utilisateur.

  • Adresse e-mail vérifiée

  • Numéro de téléphone vérifié

  • Nom d'utilisateur préféré

Une fois l'utilisateur inscrit, il peut modifier ces alias.

Important

Lorsque votre groupe d'utilisateurs prend en charge la connexion à l'aide d'alias et que vous souhaitez autoriser ou rechercher un utilisateur, ne l'identifiez pas à l'aide de ses attributs de connexion. L'identifiant utilisateur à valeur fixe sub est le seul indicateur cohérent de l'identité de votre utilisateur.

Incluez les étapes suivantes quand vous créez le groupe d'utilisateurs, afin que les utilisateurs puissent se connecter avec un alias.

Pour configurer un groupe d'utilisateurs afin que les utilisateurs puissent se connecter avec un nom d'utilisateur préféré
  1. Accédez à Amazon Cognito dans AWS Management Console. Si la console vous y invite, entrez vos AWS informations d'identification.

  2. Choisissez Groupes d'utilisateurs.

  3. Dans l'angle supérieur droit de la page, choisissez Créer un groupe d'utilisateurs pour lancer l'assistant de création de groupe d'utilisateurs.

  4. Dans Configure sign-in experience (Configurer l'expérience de connexion), choisissez l'identité Provider types (Types de fournisseurs) que vous souhaitez associer à votre groupe d'utilisateurs.

  5. Sous Options de connexion du groupe d'utilisateurs Cognito, choisissez n'importe quelle combinaison de nom d'utilisateur, d'adresse de messagerie et de numéro de téléphone.

  6. Sous Exigences relatives aux noms d'utilisateur, choisissez Autoriser les utilisateurs à se connecter avec un nom d'utilisateur préféré afin que vos utilisateurs puissent définir un autre nom d'utilisateur lorsqu'ils se connectent.

  7. Choisissez Suivant, puis suivez toutes les étapes de l'assistant.

Quand l'utilisateur s'inscrit avec une adresse e-mail ou un numéro de téléphone en guise de nom d'utilisateur, vous pouvez choisir s'il peut s'inscrire uniquement avec une adresse e-mail, uniquement avec un numéro de téléphone, ou avec l'un des deux au choix.

Pour choisir des attributs de nom d'utilisateur, évitez de sélectionner Nom d'utilisateur comme option de connexion lorsque vous créez votre groupe d'utilisateurs.

L'adresse e-mail et le numéro de téléphone doivent être uniques et ne doivent pas être déjà utilisés par un autre utilisateur. Ils n'ont pas besoin d'être vérifiés. Une fois que l'utilisateur s'est inscrit avec une adresse e-mail ou un numéro de téléphone, il ne peut pas créer de nouveau compte avec la même adresse e-mail ou le même numéro de téléphone. L'utilisateur peut uniquement réutiliser le compte existant et réinitialiser son mot de passe, si nécessaire. Toutefois, l'utilisateur peut modifier l'adresse e-mail ou le numéro de téléphone pour une nouvelle adresse e-mail ou un nouveau numéro de téléphone. Si l'adresse e-mail ou le numéro de téléphone ne sont pas déjà en cours d'utilisation, ils deviennent le nouveau nom d'utilisateur.

Note

Si un utilisateur s'inscrit avec une adresse e-mail comme nom d'utilisateur, il peut modifier ce dernier et utiliser une autre adresse e-mail. En revanche, il ne peut pas remplacer l'adresse e-mail par un numéro de téléphone. S'il s'inscrit avec un numéro de téléphone, il peut modifier le nom d'utilisateur en spécifiant un autre numéro de téléphone. En revanche, il ne peut remplacer le numéro de téléphone par une adresse e-mail.

Procédez comme suit pendant la création du groupe d'utilisateur pour configurer l'inscription et la connexion avec une adresse e-mail ou un numéro de téléphone.

Pour configurer un groupe d'utilisateurs de manière à autoriser les inscriptions et les connexions avec une adresse e-mail ou un numéro de téléphone
  1. Accédez à Amazon Cognito dans AWS Management Console. Si la console vous y invite, entrez vos AWS informations d'identification.

  2. Choisissez Groupes d'utilisateurs.

  3. Dans le coin supérieur droit de la page, choisissez Créer un groupe d'utilisateurs pour lancer l'assistant de création de groupe d'utilisateurs.

  4. Sous Cognito user pool sign-in options (Options de connexion au groupe d'utilisateurs Cognito), choisissez une combinaison quelconque des paramètres Email (Adresse e-mail) et Phone number (Numéro de téléphone) pour représenter les attributs dont l'utilisateur peut se servir pour se connecter.

  5. Choisissez Next (Suivant), puis effectuez toutes les étapes restantes de l'assistant.

Note

Vous n'avez pas besoin de marquer une adresse e-mail ou un numéro de téléphone comme des attributs obligatoires pour votre groupe d'utilisateurs.

Pour implémenter l'option 2 dans votre application
  1. Appelez le CreateUserPool API pour créer votre groupe d'utilisateurs. Définissez le paramètre UserNameAttributes sur phone_number, email ou phone_number | email.

  2. Appelez le SignUp API et transmettez une adresse e-mail ou un numéro de téléphone dans les username paramètres duAPI. APICela permet d'effectuer les opérations suivantes :

    • Si la chaîne username a un format d'adresse e-mail valide, le groupe d'utilisateurs renseigne automatiquement l'attribut email de l'utilisateur avec la valeur username.

    • Si le format de numéro de téléphone de la chaîne username est valide, le groupe d'utilisateurs renseigne automatiquement l'attribut phone_number de l'utilisateur avec la valeur username.

    • Si le format de username chaîne n'est pas au format d'adresse e-mail ou de numéro de téléphone, une exception est SignUp API renvoyée.

    • SignUpAPIGénère un identifiant persistant UUIDpour votre utilisateur et l'utilise en interne comme attribut de nom d'utilisateur immuable. Cela UUID a la même valeur que la sub réclamation contenue dans le jeton d'identité utilisateur.

    • Si la username chaîne contient une adresse e-mail ou un numéro de téléphone déjà utilisé, elle SignUp API renvoie une exception.

Vous pouvez utiliser une adresse e-mail ou un numéro de téléphone comme alias à la place du nom d'utilisateur dans tous les APIs domaines sauf le ListUsersAPI. Quand vous appelez ListUsers, vous pouvez effectuer une recherche par l'attribut email ou phone_number. Si vous effectuez une recherche par username, vous devez indiquer le nom d'utilisateur réel, et non un alias.

Attributs personnalisés

Vous pouvez ajouter jusqu'à 50 attributs personnalisés à votre groupe d'utilisateurs. Vous pouvez leur appliquer une longueur minimale et/ou maximale. Toutefois, la longueur maximale pour un attribut personnalisé ne peut pas dépasser 2 048 caractères.

Chaque attribut personnalisé possède les caractéristiques suivantes :
  • Vous pouvez le définir comme une chaîne ou un nombre. Amazon Cognito écrit des valeurs d'attribut personnalisées dans le jeton d'identification uniquement sous forme de chaînes.

  • Vous ne pouvez pas exiger que les utilisateurs fournissent une valeur pour cet attribut.

  • Vous ne pouvez pas le supprimer ni le modifier après l'avoir ajouté dans le groupe d'utilisateurs.

  • Le nombre maximal de caractères du nom de l'attribut se situe dans la limite acceptée par Amazon Cognito. Pour de plus amples informations, veuillez consulter Quotas dans Amazon Cognito.

  • Il peut être mutable ou inaltérable. Vous pouvez écrire une valeur dans un attribut inaltérable seulement quand vous créez un utilisateur. Vous pouvez modifier la valeur d'un attribut mutable si votre client d'application dispose d'une autorisation d'écriture sur cet attribut. Pour plus d’informations, consultez Autorisations d'attributs et de portées.

Note

Dans votre code et dans les paramètres des règles pour Utilisation du contrôle d'accès basé sur les rôles, les attributs personnalisés doivent être différenciés des attributs standard par le préfixe custom:.

Vous pouvez également ajouter des attributs de développeur lorsque vous créez des groupes d'utilisateurs, dans la SchemaAttributes propriété de CreateUserPool. Les attributs de développeur ont un préfixe dev:. Vous ne pouvez modifier les attributs de développeur d'un utilisateur qu'à l'aide AWS d'informations d'identification. Les attributs de développeur sont une fonctionnalité héritée qu'Amazon Cognito a remplacée par des autorisations de lecture/écriture pour les clients de l'application.

Utilisez la procédure suivante pour créer un attribut personnalisé.

Pour ajouter un attribut personnalisé à l'aide de la console
  1. Accédez à Amazon Cognito dans le. AWS Management Console Si la console vous y invite, entrez vos AWS informations d'identification.

  2. Choisissez Groupes d'utilisateurs.

  3. Choisissez un groupe d'utilisateurs dans la liste.

  4. Choisissez l'onglet Sign-up experience (Expérience d'inscription) et dans l'onglet Custom attributes (Attributs personnalisés), choisissez Add custom attributes (Ajouter des attributs personnalisés).

  5. Dans la page Ajouter des attributs personnalisés, fournissez les informations suivantes sur le nouvel attribut :

    • Entrez un Nom.

    • Sélectionnez un Type de Chaîne ou Numéro.

    • Saisissez une longueur de chaîne ou valeur numérique Minimale.

    • Saisissez une longueur de chaîne ou valeur numérique Maximale.

    • Sélectionnez Mutable si vous souhaitez autoriser les utilisateurs à modifier la valeur d'un attribut personnalisé après qu'ils ont défini la valeur initiale.

  6. Sélectionnez Enregistrer les modifications.

Autorisations d'attributs et de portées

Pour chaque client d'application, vous pouvez définir des autorisations de lecture et d'écriture pour chaque attribut utilisateur. De cette façon, vous pouvez contrôler l'accès dont dispose une application pour lire et modifier chaque attribut que vous stockez pour vos utilisateurs. Par exemple, vous pouvez avoir un attribut personnalisé qui indique si un utilisateur est un client payant ou non. Vos applications peuvent éventuellement voir cet attribut mais pas le modifier directement. Au lieu de cela, vous devez mettre à jour cet attribut à l'aide d'un outil d'administration ou d'un processus en arrière-plan. Vous pouvez définir des autorisations pour les attributs utilisateur depuis la console Amazon Cognito, Amazon API Cognito ou le. AWS CLI Par défaut, aucun nouvel attribut personnalisé n'est disponible tant que vous ne définissez pas les autorisations de lecture et d'écriture correspondantes. Par défaut, lorsque vous créez un nouveau client d'application, vous accordez à votre application des autorisations de lecture et d'écriture pour tous les attributs standard et personnalisés. Pour limiter votre application à la seule quantité d'informations dont elle a besoin, attribuez des autorisations spécifiques aux attributs dans la configuration de votre client d'application.

Il est recommandé de spécifier les autorisations de lecture et d'écriture des attributs lorsque vous créez un client d'application. Accordez à votre client d'application l'accès à l'ensemble minimal d'attributs utilisateur dont vous avez besoin pour le fonctionnement de votre application.

Note

DescribeUserPoolClientrenvoie uniquement des valeurs pour ReadAttributes et WriteAttributes lorsque vous configurez des autorisations client de l'application autres que celles par défaut.

Pour mettre à jour les autorisations d'attribut (AWS Management Console)
  1. Accédez à Amazon Cognito dans le. AWS Management Console Si la console vous y invite, entrez vos AWS informations d'identification.

  2. Choisissez Groupes d'utilisateurs.

  3. Choisissez un groupe d'utilisateurs dans la liste.

  4. Choisissez l'onglet App integration (Intégration d'applications) et dans l'onglet App clients (Clients d'application), choisissez un client d'application dans la liste.

  5. Dans Autorisation de lecture et d'écriture des attributs, choisissez Modifier.

  6. Dans la page Modifier les autorisations de lecture et d'écriture des attributs, configurez vos autorisations de lecture et d'écriture, puis choisissez Enregistrez les modifications.

Répétez ces étapes pour chaque client d'application qui utilise l'attribut personnalisé.

Pour chaque client d'application, vous pouvez marquer les attributs comme lisibles ou inscriptibles. Cette règle s'applique aux attributs standard et personnalisés. Votre application peut récupérer la valeur des attributs que vous marquez comme accessibles en lecture, et peut définir ou modifier la valeur des attributs que vous marquez comme accessibles en écriture. Si votre application essaie de définir une valeur pour un attribut qu'elle n'est pas autorisée à écrire, Amazon Cognito renvoie NotAuthorizedException. GetUserles demandes incluent un jeton d'accès associé à une réclamation de client d'application ; Amazon Cognito renvoie uniquement des valeurs pour les attributs que votre client d'application peut lire. Le jeton d'identification de votre utilisateur provenant d'une application contient uniquement des demandes correspondant aux attributs accessibles en lecture. Tous les clients d'application peuvent écrire les attributs requis par le groupe d'utilisateurs. Vous ne pouvez définir la valeur d'un attribut dans une API demande de groupe d'utilisateurs Amazon Cognito que si vous fournissez également une valeur pour tous les attributs requis qui n'ont pas encore de valeur.

Les attributs personnalisés ont des fonctionnalités distinctes pour les autorisations de lecture et d'écriture. Vous pouvez les créer en tant qu'attributs modifiables ou inaltérables pour le groupe d'utilisateurs, et vous pouvez les définir en tant qu'attributs de lecture ou d'écriture pour un client d'application.

Un attribut personnalisé inaltérable peut être mis à jour une seule fois, pendant de la création de l'utilisateur. Vous pouvez renseigner un attribut inaltérable à l'aide des méthodes suivantes.

  • SignUp : un utilisateur s'inscrit avec un client d'application qui dispose d'un accès en écriture à un attribut personnalisé inaltérable. Il fournit une valeur pour cet attribut.

  • Connexion avec un IdP tiers : un utilisateur se connecte à un client d'application qui dispose d'un accès en écriture à un attribut personnalisé inaltérable. La configuration de votre groupe d'utilisateurs pour son IdP comporte une règle pour mapper une demande fournie à un attribut inaltérable. C'est possible mais pas pratique, car l'utilisateur ne pourra se connecter qu'une seule fois. Après la première tentative de connexion, Amazon Cognito rejette la tentative en raison de la règle de mappage à un attribut désormais non inscriptible.

  • AdminCreateUser : vous fournissez une valeur pour un attribut inaltérable.

Autorisations d'attribution avec étendues

Dans les groupes d'utilisateurs que vous configurez avec un AWS SDK ouCDK, ou le REST API AWS CLI, vous pouvez configurer l'accès en lecture ou en écriture au client de l'application avec l'OIDCétendueoidc:profile. oidc:profileaccorde un accès en lecture ou en écriture aux attributs standard suivants :

  • name

  • family_name

  • given_name

  • middle_name

  • nickname

  • preferred_username

  • profile

  • picture

  • website

  • gender

  • birthdate

  • zoneinfo

  • locale

Cette liste contient les attributs OIDC standard moinsemail,phone_number, et subaddress, tels que définis dans la section 2.4 de la OIDC spécification. Pour obtenir des informations sur les étendues que vous pouvez attribuer à vos clients d'application, consultez Éscopes, M2M et APIs avec serveurs de ressources.

Pour configurer le client de votre application afin qu'il écrive dans les oidc:profile attributs concernés, définissez la valeur de WriteAttributestooidc:profile, ainsi que tout autre attribut que vous souhaitez autoriser votre application à modifier, dans une UpdateUserPoolClientAPIdemande CreateUserPoolClientou. De même, pour accorder un accès en lecture à ces attributs, oidc:profile augmentez la valeur de ReadAttributes.

Vous pouvez modifier les autorisations et les règles d'attribut une fois que vous avez créé le groupe d'utilisateurs.