

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.

# Gestion des utilisateurs dans votre groupe d'utilisateurs
<a name="managing-users"></a>

Une fois que vous avez créé un groupe d'utilisateurs, vous pouvez créer, confirmer et gérer des comptes utilisateur. Avec les groupes d'utilisateurs Amazon Cognito, vous pouvez gérer vos utilisateurs et leur accès aux ressources en mappant des rôles IAM à des groupes.

La gestion des utilisateurs de votre groupe d'utilisateurs Amazon Cognito implique diverses options de configuration et tâches administratives. Les groupes d'utilisateurs peuvent atteindre des millions d'utilisateurs. Un annuaire d'utilisateurs de cette envergure nécessite des outils administratifs tout aussi évolutifs et reproductibles. Vous souhaiterez peut-être créer de nombreux profils d'utilisateurs, gérer les utilisateurs inactifs, produire des rapports de gouvernance et de conformité ou configurer des outils en libre-service dans lesquels les utilisateurs effectuent l'essentiel du travail. Après avoir créé un groupe d'utilisateurs, vous pouvez contrôler la manière dont les utilisateurs s'inscrivent et confirment leurs comptes, notamment en exigeant la vérification de leur adresse e-mail ou de leur numéro de téléphone. Les administrateurs peuvent également créer directement des comptes utilisateurs et personnaliser les messages de bienvenue et les exigences en matière de mot de passe.

Les groupes d'utilisateurs ont des groupes d'utilisateurs dans lesquels vous pouvez gérer l'accès aux ressources en fonction de l'appartenance à un groupe d'utilisateurs. Vous pouvez attribuer des rôles IAM à ces groupes pour gérer l'accès à l'aide de pools Services AWS d'identités. L'appartenance à un groupe d'utilisateurs est présente à la fois dans les jetons d'identification et d'accès. Grâce à ces informations, vous pouvez prendre des décisions de contrôle d'accès lors de l'exécution dans votre application ou à l'aide d'un moteur de politiques tel qu'Amazon Verified Permissions.

Les groupes d'utilisateurs comptent souvent de nombreux utilisateurs. Vous vous retrouverez fréquemment à rechercher et à mettre à jour des comptes d'utilisateurs. La console et l'API Amazon Cognito permettent d'interroger les utilisateurs en fonction d'attributs standard tels que le nom d'utilisateur, l'adresse e-mail et le numéro de téléphone. Les administrateurs peuvent également réinitialiser les mots de passe, désactiver des comptes et consulter l'historique des événements des utilisateurs.

Pour la migration des données utilisateur existantes, Amazon Cognito propose des options permettant d'importer des utilisateurs à partir d'un fichier CSV et d'utiliser un déclencheur [Lambda](user-pool-lambda-migrate-user.md) pour migrer automatiquement les utilisateurs lorsqu'ils se connectent pour la première fois. Ces options prennent en charge les transitions entre les utilisateurs d'autres annuaires d'utilisateurs et votre groupe d'utilisateurs.

Vous pouvez utiliser les fonctionnalités de gestion des utilisateurs dans les groupes d'utilisateurs pour contrôler avec précision le cycle de vie des utilisateurs et l'expérience d'authentification. La combinaison de l'inscription en libre-service, des comptes créés par les administrateurs, des groupes et des outils de migration fait des groupes d'utilisateurs Amazon Cognito un annuaire d'utilisateurs flexible.

**Topics**
+ [Configuration de politiques pour la création d’utilisateurs](user-pool-settings-admin-create-user-policy.md)
+ [Inscription et confirmation des comptes d’utilisateur](signing-up-users-in-your-app.md)
+ [Création de comptes d’utilisateur en tant qu’administrateur](how-to-create-user-accounts.md)
+ [Ajout de groupes à un groupe d'utilisateurs](cognito-user-pools-user-groups.md)
+ [Gestion et recherche de comptes d'utilisateur](how-to-manage-user-accounts.md)
+ [Mots de passe, récupération de compte et politiques relatives aux mots de passe](managing-users-passwords.md)
+ [Importation d'utilisateurs dans un groupe d'utilisateurs](cognito-user-pools-import-users.md)
+ [Utilisation des attributs utilisateur](user-pool-settings-attributes.md)

# Configuration de politiques pour la création d’utilisateurs
<a name="user-pool-settings-admin-create-user-policy"></a>

Votre groupe d’utilisateurs peut autoriser les utilisateurs à s’inscrire, ou vous pouvez les créer en tant qu’administrateur. Vous pouvez également contrôler la part du processus de vérification et de confirmation qui incombe à vos utilisateurs après l’inscription. Vous pouvez par exemple vérifier les inscriptions et les accepter sur selon un processus de validation externe. Cette configuration, ou la *politique de création d’utilisateurs pour les administrateurs*, définit également le délai avant qu’un utilisateur ne puisse plus confirmer son compte utilisateur.

Amazon Cognito peut répondre aux besoins de vos clients publics en tant que plateforme de gestion de l’identité et de l’accès des clients (CIAM) pour votre logiciel. Un groupe d'utilisateurs qui accepte l'inscription et possède un client d'application, avec ou sans connexion gérée, crée un profil utilisateur pour toute personne sur Internet qui connaît votre identifiant client d'application accessible au public et qui demande à s'inscrire. Un profil utilisateur enregistré peut recevoir des jetons d’accès et d’identité et peut accéder aux ressources que vous avez autorisées pour votre application. Avant d’activer l’inscription dans votre groupe d’utilisateurs, passez en revue vos options et assurez-vous que votre configuration est conforme à vos normes de sécurité. Définissez avec soin **Activer l’auto-inscription** et `AllowAdminCreateUserOnly`, comme décrit dans les procédures suivantes.

------
#### [ AWS Management Console ]

Le menu d'**inscription** de votre groupe d'utilisateurs contient certains des paramètres d'inscription et de création administrative des utilisateurs de votre groupe d'utilisateurs.

**Pour configurer l’expérience d’inscription**

1. Dans **Vérification et confirmation assistées par Cognito**, indiquez si vous souhaitez **Autoriser Cognito à envoyer automatiquement des messages pour vérifier et confirmer**. Lorsque ce paramètre est activé, Amazon Cognito envoie un e-mail ou un SMS aux nouveaux utilisateurs avec un code qu’ils doivent présenter à votre groupe d’utilisateurs. Cela confirme qu’ils sont propriétaires de l’adresse e-mail ou du numéro de téléphone, en définissant l’attribut équivalent comme vérifié et en confirmant le compte utilisateur pour la connexion. Les **Attributs à vérifier** que vous choisissez déterminent les méthodes de livraison et les destinations des messages de vérification.

1. **La vérification des modifications d’attributs** n’est pas importante lorsque vous créez des utilisateurs, mais concerne la vérification des attributs. Vous pouvez autoriser les utilisateurs qui ont modifié leurs [attributs de connexion](user-pool-settings-attributes.md#user-pool-settings-aliases.title), mais qui ne les ont pas encore vérifiés, à poursuivre la connexion avec leur nouvelle valeur d’attribut ou avec leur valeur d’origine. Pour de plus amples informations, veuillez consulter [Vérification en cas de modification de l’adresse e-mail ou du numéro de téléphone par l’utilisateur](signing-up-users-in-your-app.md#verifying-when-users-change-their-email-or-phone-number).

1. **Les attributs obligatoires** affichent les attributs pour lesquels une valeur doit être fournie avant qu’un utilisateur ne puisse s’inscrire ou avant que vous ne puissiez créer un utilisateur. Vous ne pouvez définir les attributs obligatoires que lorsque vous créez un groupe d'utilisateurs.

1. Les **attributs personnalisés** sont importants pour le processus de création et d’inscription des utilisateurs, car vous ne pouvez définir une valeur pour les attributs personnalisés *immuables* que lorsque vous créez un utilisateur pour la première fois. Pour plus d’informations sur les attributs personnalisés, consultez [Attributs personnalisés](user-pool-settings-attributes.md#user-pool-settings-custom-attributes).

1. Dans l’onglet **Inscription en libre-service**, sélectionnez **Activer l’auto-inscription** si vous souhaitez que les utilisateurs puissent générer un nouveau compte à l’aide de l’API `SignUp` [non authentifiée](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html#user-pool-apis-auth-unauth). Si vous désactivez l'enregistrement automatique, vous ne pouvez créer de nouveaux utilisateurs qu'en tant qu'administrateur, dans la console Amazon Cognito ou via des requêtes [AdminCreateUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminCreateUser.html)d'API. Dans un groupe d'utilisateurs où l'auto-inscription est inactive, les demandes d'[SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html)API sont `NotAuthorizedException` renvoyées et la connexion gérée n'affiche pas de lien d'**inscription**.

Pour les groupes d'utilisateurs dans lesquels vous prévoyez de créer des utilisateurs en tant qu'administrateur, vous pouvez configurer la durée de leurs mots de passe temporaires dans le paramètre du menu **Méthodes d'authentification** sous Les mots de **passe temporaires définis par les administrateurs expirent dans**.

Le message d’invitation est un autre élément important de la création d’utilisateurs en tant qu’administrateur. Lorsque vous créez un utilisateur, Amazon Cognito lui envoie un message contenant un lien vers votre application afin qu’il puisse se connecter pour la première fois. Personnalisez ce modèle de message dans le menu **Méthodes d'authentification** sous **Modèles de message**.

Vous pouvez configurer des [clients d’application confidentiels](user-pool-settings-client-apps.md#user-pool-settings-client-app-client-types.title), généralement des applications Web, avec un secret client qui empêche l’inscription sans le secret du client d’application. Selon une bonne pratique de sécurité, ne diffusez pas les secrets des clients d’applications dans des clients d’applications publics, généralement des applications mobiles. Vous pouvez créer des clients d'applications avec des secrets clients dans le menu **Clients d'applications** de la console Amazon Cognito.

------
#### [ Amazon Cognito user pools API ]

Vous pouvez définir par programmation les paramètres de création d'utilisateurs dans un groupe d'utilisateurs dans le cadre d'une demande d'[UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)API [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)ou d'une demande d'API.

L'[AdminCreateUserConfig](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-AdminCreateUserConfig)élément définit les valeurs des propriétés suivantes d'un groupe d'utilisateurs.

1. Activer l’inscription en libre-service

1. Le message d’invitation que vous envoyez aux nouveaux utilisateurs créés par l’administrateur

L’exemple suivant, lorsqu’il est ajouté au corps complet d’une demande d’API, définit un groupe d’utilisateurs avec une inscription en libre-service inactive et un e-mail d’invitation de base.

```
"AdminCreateUserConfig": { 
      "AllowAdminCreateUserOnly": true,
      "InviteMessageTemplate": { 
         "EmailMessage": "Your username is {username} and temporary password is {####}.",
         "EmailSubject": "Welcome to ExampleApp",
         "SMSMessage": "Your username is {username} and temporary password is {####}."
      }
   }
```

Les paramètres supplémentaires suivants d'une demande [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)ou d'[UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)API régissent la création de nouveaux utilisateurs.

[AutoVerifiedAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-AutoVerifiedAttributes)  
Les attributs, adresses e-mail ou numéros de téléphone auxquels vous souhaitez [envoyer automatiquement un message](user-pool-settings-email-phone-verification.md#user-pool-settings-email-phone-verification.title) lorsque vous enregistrez un nouvel utilisateur.

[Stratégies](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-Policies)  
La [politique de mot de passe](managing-users-passwords.md#user-pool-settings-policies.title) du groupe d’utilisateurs.

[Schema](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-Schema) (Schéma)  
Les [attributs personnalisés](user-pool-settings-attributes.md#user-pool-settings-custom-attributes.title) du groupe d’utilisateurs. Ils sont importants pour le processus de création et d’inscription des utilisateurs, car vous ne pouvez définir une valeur pour les attributs personnalisés *immuables* que lorsque vous créez un utilisateur pour la première fois.  
Ce paramètre définit également les attributs requis pour votre groupe d’utilisateurs. Le texte suivant, lorsqu’il est inséré dans l’élément `Schema` du corps complet d’une demande d’API, définit l’attribut `email` de la manière requise.  

```
{
            "Name": "email",
            "Required": true
}
```

------

# Inscription et confirmation des comptes d’utilisateur
<a name="signing-up-users-in-your-app"></a>

Des comptes d’utilisateur sont ajoutés à votre groupe d’utilisateurs suite aux opérations suivantes :
+ L’utilisateur s’inscrit dans l’application client de votre groupe d’utilisateurs. Il peut s’agir d’une application web ou mobile.
+ Vous pouvez importer le compte d’utilisateur dans votre groupe d’utilisateurs. Pour de plus amples informations, veuillez consulter [Importation d'utilisateurs dans des groupes d'utilisateurs depuis un fichier CSV](cognito-user-pools-using-import-tool.md).
+ Vous pouvez créer un compte d’utilisateur dans votre groupe d’utilisateurs et inviter cet utilisateur à se connecter. Pour de plus amples informations, veuillez consulter [Création de comptes d’utilisateur en tant qu’administrateur](how-to-create-user-accounts.md).

Les utilisateurs qui s’inscrivent eux-mêmes doivent être confirmés afin de pouvoir se connecter. Les utilisateurs importés et créés sont déjà confirmés, mais ils doivent créer leur mot de passe la première fois qu’ils se connectent. Les sections suivantes expliquent la procédure de confirmation, ainsi que le mode de vérification par téléphone et par e-mail.

**Mots de passe lors de l'inscription**  
Amazon Cognito exige un mot de passe de la part de tous les utilisateurs lors de leur inscription, sauf dans les conditions suivantes. Si *toutes* ces conditions sont remplies, vous pouvez omettre les mots de passe lors des opérations d'inscription.

1. La [connexion sans mot de](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless) passe est active dans votre groupe d'utilisateurs et dans votre client d'application.

1. Votre application est conçue sur mesure avec des modules d'authentification dans un AWS SDK. La connexion gérée et l'interface utilisateur hébergée nécessitent toujours des mots de passe.

1. Les utilisateurs fournissent des valeurs d'attribut pour les méthodes de connexion sans mot de passe (mots de passe à usage unique par e-mail ou SMS ()) que vous autorisez. OTPs Par exemple, si vous autorisez la connexion par e-mail et par téléphone OTP, les utilisateurs peuvent fournir un numéro de téléphone ou une adresse e-mail, mais si vous n'autorisez la connexion que par e-mail, ils doivent fournir une adresse e-mail.

1. Votre groupe d'utilisateurs [vérifie automatiquement](#allowing-users-to-sign-up-and-confirm-themselves) les attributs que les utilisateurs peuvent utiliser avec une connexion sans mot de passe.

1. Pour une [SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html)demande donnée, l'utilisateur ne fournit aucune valeur pour le paramètre [Password](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html#CognitoUserPools-SignUp-request-Password).

## Présentation de la procédure de confirmation d’un compte d’utilisateur
<a name="signup-confirmation-verification-overview"></a>

Le schéma suivant illustre la procédure de confirmation :

![\[Lorsque les utilisateurs entrent le code de confirmation, ils vérifient automatiquement leur e-mail ou numéro de téléphone.\]](http://docs.aws.amazon.com/fr_fr/cognito/latest/developerguide/images/amazon-cognito-sign-in-confirm-user.png)


Voici les différents états possibles pour un compte d’utilisateur :

**Inscrit (non confirmé)**  
L’utilisateur a réussi à s’inscrire, mais il ne peut pas se connecter tant que son compte n’a pas été confirmé. L’utilisateur est activé, mais il n’est pas confirmé dans cet état.  
Au départ, les nouveaux utilisateurs qui s’inscrivent eux-mêmes se voient attribuer cet état.

**Confirmé**  
Le compte d’utilisateur est confirmé et l’utilisateur peut se connecter. Lorsqu’un utilisateur saisit un code ou suit un lien de messagerie pour confirmer son compte d’utilisateur, l’adresse e-mail ou le numéro de téléphone sont automatiquement vérifiés. Le code ou lien est valide pendant 24 heures.  
Si le compte d’utilisateur a été confirmé par l’administrateur ou un déclencheur Lambda avant l’inscription, il se peut qu’aucune adresse e-mail ni aucun numéro de téléphone vérifiés ne soient associés au compte.

**Réinitialisation du mot de passe requise**  
Le compte d’utilisateur est confirmé, mais l’utilisateur doit demander un code et réinitialiser son mot de passe afin de pouvoir se connecter.  
Au départ, les comptes d’utilisateur qui sont importés par un administrateur ou un développeur affichent cet état.

**Modification forcée du mot de passe**  
Le compte d’utilisateur est confirmé et l’utilisateur peut se connecter à l’aide d’un mot de passe temporaire. Toutefois, à la première connexion et avant toute autre opération, l’utilisateur doit changer son mot de passe en indiquant une nouvelle valeur.  
Au départ, les comptes d’utilisateur créés par un administrateur ou un développeur affichent cet état.

**Désactivé**  
Avant de pouvoir supprimer un compte d’utilisateur, vous devez désactiver l’accès à la connexion pour cet utilisateur.

**Ressources supplémentaires**
+ [Détection et correction des comptes utilisateurs inactifs avec Amazon Cognito](https://aws.amazon.com/blogs/security/detecting-and-remediating-inactive-user-accounts-with-amazon-cognito/)

## Vérification des coordonnées à l’inscription
<a name="allowing-users-to-sign-up-and-confirm-themselves"></a>

Lorsque de nouveaux utilisateurs s’inscrivent à votre application, il est probable que vous voudrez qu’ils fournissent au moins une méthode de contact. Par exemple, avec les coordonnées de vos utilisateurs, vous pouvez :
+ Envoyer un mot de passe temporaire lorsqu’un utilisateur choisit de réinitialiser son mot de passe.
+ Informer les utilisateurs lorsque leurs informations personnelles ou financières sont mises à jour.
+ Envoyer des messages promotionnels, tels que des offres spéciales ou des remises.
+ Envoyer des récapitulatifs de compte ou de rappels de facturation.

Pour de tels cas d’utilisation, il est important que vous adressiez vos messages à une destination vérifiée. Sinon, vous risquez d’envoyer vos messages à une adresse e-mail ou un numéro de téléphone non valide qui a été saisi de façon incorrecte. Ou pire, vous risquez d’envoyer des informations sensibles à des personnes malveillantes qui se font passer pour vos utilisateurs.

Pour vous assurer d’envoyer les messages uniquement aux bonnes personnes, configurez votre groupe d’utilisateurs Amazon Cognito afin que les utilisateurs fournissent les informations suivantes lors de l’inscription :

1. Adresse e-mail ou numéro de téléphone.

1. Code de vérification envoyé par Amazon Cognito à l’adresse e-mail ou au numéro de téléphone. Si 24 heures se sont écoulées et que le code ou le lien de votre utilisateur n'est plus valide, appelez l'opération [ResendConfirmationCode](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ResendConfirmationCode.html)API pour générer et envoyer un nouveau code ou lien.

En fournissant le code de vérification, un utilisateur prouve qu’il a accès à la boîte aux lettres ou au téléphone qui a reçu le code. Une fois que l’utilisateur a fourni le code, Amazon Cognito met à jour les informations relatives à l’utilisateur dans votre groupe d’utilisateurs en :
+ Définissant le statut de l’utilisateur sur `CONFIRMED`.
+ Mettant à jour les attributs de l’utilisateur pour indiquer que l’adresse e-mail ou le numéro de téléphone est vérifié(e).

Pour afficher ces informations, vous pouvez utiliser la console Amazon Cognito. Vous pouvez également utiliser l'opération `AdminGetUser` API, la `admin-get-user` commande associée au AWS CLI, ou une action correspondante dans l'un des AWS SDKs.

Si un utilisateur dispose d’une méthode de contact vérifiée, Amazon Cognito envoie automatiquement un message à l’utilisateur lorsque l’utilisateur demande la réinitialisation du mot de passe.

### Autres actions permettant de confirmer et de vérifier les attributs de l'utilisateur
<a name="allowing-users-to-sign-up-and-confirm-themselves-other-actions"></a>

L'activité utilisateur suivante permet de vérifier les attributs de l'utilisateur. Vous n'êtes pas obligé de configurer ces attributs pour qu'ils soient automatiquement vérifiés : les actions répertoriées les marquent comme vérifiés dans tous les cas.

**Adresse e-mail**  

1. [Authentification sans mot de passe réussie à l'aide d'](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless)un mot de passe à usage unique (OTP) envoyé par e-mail.

1. Réussite de [l'authentification multifactorielle (MFA](user-pool-settings-mfa.md)) avec un e-mail OTP.

**Numéro de téléphone**  

1. [Authentification sans mot](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless) de passe réussie avec un SMS OTP.

1. Terminez avec succès le [MFA](user-pool-settings-mfa.md) avec un SMS OTP.

### Pour configurer votre groupe d’utilisateurs pour exiger une vérification par téléphone ou par e-mail
<a name="verification-configure"></a>

Pensez à vérifier les adresses e-mail et les numéros de téléphone de vos utilisateurs afin de pouvoir les contacter. Procédez comme suit AWS Management Console pour configurer votre groupe d'utilisateurs afin de demander à vos utilisateurs de confirmer leur adresse e-mail ou leur numéro de téléphone.

**Note**  
Si vous n’avez pas encore de groupe d’utilisateurs dans votre compte, consultez [Démarrage avec les groupes d'utilisateurs](getting-started-user-pools.md).

**Pour configurer votre groupe d’utilisateurs**

1. Allez dans la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si vous y êtes invité, entrez vos AWS informations d'identification.

1. Dans le volet de navigation, choisissez **Groupes d’utilisateurs**. Choisissez un groupe d’utilisateurs existant dans la liste ou [créez-en un](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Choisissez le menu **d'inscription** et recherchez la **vérification des attributs et la confirmation du compte utilisateur**. Choisissez **Modifier**.

1. Sous **Vérification et confirmation assistées par Cognito**, indiquez si vous allez **Autoriser Cognito à envoyer automatiquement des messages pour vérifier et confirmer**. Lorsque ce paramètre est activé, Amazon Cognito envoie des messages aux attributs de contact utilisateur que vous choisissez lorsqu’un utilisateur s’inscrit ou que vous créez un profil utilisateur. Pour vérifier les attributs et confirmer les profils utilisateur pour la connexion, Amazon Cognito envoie un code ou un lien dans des messages aux utilisateurs. Les utilisateurs doivent ensuite saisir le code dans votre interface utilisateur afin que votre application puisse le confirmer dans une demande d’API `ConfirmSignUp` ou `AdminConfirmSignUp`.
**Note**  
Vous pouvez aussi désactiver **Vérification et confirmation assistées par Cognito** et utilisez des actions API authentifiées ou des déclencheurs Lambda pour vérifier les attributs et confirmer les utilisateurs.  
Si vous choisissez cette option, Amazon Cognito n’envoie pas de code de vérification quand l’utilisateur s’inscrit. Choisissez cette option si vous utilisez un flux d’authentification personnalisé qui vérifie au moins une méthode de contact sans utiliser les codes de vérification en provenance d’Amazon Cognito. Par exemple, vous pouvez utiliser un déclencheur Lambda avant inscription qui vérifie automatiquement les adresses électroniques qui appartiennent à un domaine spécifique.  
Si vous ne vérifiez pas les coordonnées de vos utilisateurs, ils risquent de ne pas pouvoir utiliser votre application. N’oubliez pas que les utilisateurs nécessitent des informations de contact vérifiées pour :  
**Réinitialiser leurs mots de passe** – Lorsqu’un utilisateur choisit une option dans votre application qui appelle l’action API `ForgotPassword`, Amazon Cognito envoie un mot de passe temporaire à l’adresse e-mail ou au numéro de téléphone de l’utilisateur. Amazon Cognito envoie ce mot de passe uniquement si l’utilisateur a vérifié au moins une méthode de contact.
**Se connecter en utilisant une adresse e-mail ou un numéro de téléphone comme alias** – Si vous configurez votre groupe d’utilisateurs pour autoriser ces alias, un utilisateur peut se connecter avec un alias uniquement si celui-ci est vérifié. Pour de plus amples informations, veuillez consulter [Personnalisation des attributs de connexion](user-pool-settings-attributes.md#user-pool-settings-aliases).

1. Choisissez votre **Attributs à vérifier** :  
**Envoyer un message SMS, vérifier le numéro de téléphone**  
Amazon Cognito envoie par SMS un code de vérification lorsque l’utilisateur se connecte. Choisissez cette option si vous communiquez généralement avec vos utilisateurs par SMS. Par exemple, vous voudrez utiliser des numéros de téléphone vérifiés si vous envoyez des notifications de livraison, des confirmations de rendez-vous ou des alertes. Les numéros de téléphone des utilisateurs seront l’attribut vérifié lorsque les comptes sont confirmés. Vous devez prendre des mesures supplémentaires pour vérifier et communiquer avec les adresses e-mail des utilisateurs.  
**Envoyer un message électronique, vérifier l’adresse e-mail**  
Amazon Cognito envoie par e-mail un code de vérification lorsque l’utilisateur se connecte. Choisissez cette option si vous communiquez généralement avec vos utilisateurs par e-mail. Par exemple, vous souhaitez utiliser des adresses e-mail vérifiées si vous envoyez des relevés de facturation, des récapitulatifs de commande ou des offres spéciales. Les adresses e-mail des utilisateurs seront l’attribut vérifié lorsque les comptes sont confirmés. Vous devez prendre des mesures supplémentaires pour vérifier et communiquer avec les numéros de téléphone des utilisateurs.  
**Envoyer un message SMS si le numéro de téléphone est disponible, sinon envoyer un message électronique**  
Choisissez cette option si vous n’exigez pas que tous les utilisateurs aient la même méthode de contact vérifié. Dans ce cas, la page d’inscription de votre application peut demander aux utilisateurs de vérifier seulement leur mode de contact préféré. Quand Amazon Cognito envoie un code de vérification, il envoie le code à la méthode de contact fournie dans la demande `SignUp` de votre application. Si un utilisateur fournit une adresse e-mail et un numéro de téléphone, et que votre application fournit les deux méthodes de contact dans la demande `SignUp`, Amazon Cognito envoie un code de vérification uniquement au numéro de téléphone.  
Si vous exigez que les utilisateurs soient vérifiés tant à l’aide de leur adresse e-mail qu’à l’aide de leur numéro de téléphone, choisissez cette option. Amazon Cognito vérifie une méthode de contact lorsque l’utilisateur s’inscrit, et votre application doit vérifier l’autre méthode de contact une fois l’utilisateur connecté. Pour de plus amples informations, veuillez consulter [Si vous exigez que les utilisateurs confirment leurs adresses e-mail et numéros de téléphone](#verification-email-plus-phone).

1. Sélectionnez **Save Changes (Enregistrer les modifications)**.

### Flux d’authentification avec vérification par e-mail ou par téléphone
<a name="verification-flow"></a>

Si votre groupe d’utilisateurs requiert que les utilisateurs vérifient leurs informations de contact, votre application doit faciliter le flux suivant quand un utilisateur se connecte :

1. Un utilisateur s'inscrit dans votre application en saisissant un nom d'utilisateur, un numéro de téléphone, une adresse and/or e-mail et éventuellement d'autres attributs.

1. Le service Amazon Cognito reçoit la demande d’inscription de l’application. Après avoir vérifié que la demande contient tous les attributs nécessaires pour l’inscription, le service termine le processus d’inscription et envoie un code de confirmation à l’utilisateur par téléphone (via SMS) ou par e-mail. Le code est valide pendant 24 heures.

1. Le service indique à l’application que l’inscription est terminée et que le compte d’utilisateur est en attente de confirmation. La réponse précise où le code de confirmation a été envoyé. A ce stade, le compte d’utilisateur a l’état Non confirmé, et l’adresse e-mail de l’utilisateur ainsi que son numéro de téléphone affichent l’état Non vérifié.

1. L’application peut maintenant inviter l’utilisateur à entrer le code de confirmation. Il n’est pas nécessaire que l’utilisateur entre ce code immédiatement. Toutefois, il ne pourra pas se connecter tant qu’il n’aura pas saisi le code de confirmation.

1. L’utilisateur entre le code de confirmation dans l’application.

1. L’application appelle l’API [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html) pour envoyer le code au service Amazon Cognito qui le vérifie et, si le code est correct, affecte au compte d’utilisateur l’état Confirmed (Confirmé). Une fois le compte d’utilisateur effectivement confirmé, le service Amazon Cognito marque automatiquement l’attribut utilisé pour la confirmation (adresse e-mail ou numéro de téléphone) comme vérifié. Sauf modification de la valeur de cet attribut, l’utilisateur n’aura pas à le vérifier à nouveau.

1. A ce stade, le compte d’utilisateur a l’état Confirmé et l’utilisateur peut se connecter.

### Si vous exigez que les utilisateurs confirment leurs adresses e-mail et numéros de téléphone
<a name="verification-email-plus-phone"></a>

Amazon Cognito ne vérifie qu’une seule méthode de contact lorsqu’un utilisateur se connecte. Dans les cas où Amazon Cognito doit choisir entre une vérification par adresse e-mail et par numéro de téléphone, le service choisit de vérifier le numéro de téléphone en envoyant un code de vérification par SMS. Par exemple, si vous configurez votre groupe d’utilisateurs pour permettre aux utilisateurs de vérifier l’adresse e-mail ou le numéro de téléphone, et si votre application fournit ces deux attributs au moment de la connexion, Amazon Cognito vérifie uniquement le numéro de téléphone. Une fois qu’un utilisateur a vérifié son numéro de téléphone, Amazon Cognito définit le statut de l’utilisateur sur `CONFIRMED` et l’utilisateur est autorisé à se connecter à votre application.

Une fois que l’utilisateur s’est connecté, votre application peut fournir la possibilité de vérifier la méthode de contact qui n’a pas été vérifiée au cours de la connexion. Pour vérifier cette deuxième méthode, votre application appelle l’action d’API `VerifyUserAttribute`. Notez que cette action requiert un paramètre `AccessToken` et qu’Amazon Cognito fournit uniquement les jetons d’accès pour les utilisateurs authentifiés. Par conséquent, vous pouvez vérifier la deuxième méthode de contact uniquement une fois que l’utilisateur s’est connecté.

Si vous avez besoin que vos utilisateurs vérifient leur adresse électronique et leur numéro de téléphone, procédez comme suit :

1. Configurez votre groupe d’utilisateurs afin d’autoriser les utilisateurs à vérifier l’adresse e-mail ou le numéro de téléphone.

1. Dans le flux de connexion de l’application, exigez que les utilisateurs fournissent à la fois une adresse e-mail et un numéro de téléphone. Appelez l’action d’API [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html) et fournissez l’adresse e-mail et le numéro de téléphone pour le paramètre `UserAttributes`. À ce stade, Amazon Cognito envoie un code de vérification au téléphone de l’utilisateur.

1. Dans l’interface de votre application, présentez une page de confirmation sur laquelle l’utilisateur entre le code de vérification. Confirmez l’utilisateur en appelant l’action d’API [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html). À ce stade, le statut de l’utilisateur est `CONFIRMED` et le numéro de téléphone de l’utilisateur est vérifié, mais l’adresse e-mail, elle, ne l’est pas.

1. Affichez la page de connexion et authentifiez l’utilisateur en appelant l’action d’API [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html). Une fois l’utilisateur authentifié, Amazon Cognito renvoie un jeton d’accès à votre application.

1. Appelez l’action d’API [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUserAttributeVerificationCode.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUserAttributeVerificationCode.html). Spécifiez les paramètres suivants dans la demande :
   + `AccessToken` – Jeton d’accès renvoyé par Amazon Cognito lorsque l’utilisateur s’est connecté.
   + `AttributeName` – Spécifiez `"email"` comme valeur d’attribut.

   Amazon Cognito envoie un code de vérification à l’adresse e-mail de l’utilisateur.

1. Affichez une page de confirmation sur laquelle l’utilisateur entre le code de vérification. Lorsque l’utilisateur envoie le code, appelez l’action d’API [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_VerifyUserAttribute.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_VerifyUserAttribute.html). Spécifiez les paramètres suivants dans la demande :
   + `AccessToken` – Jeton d’accès renvoyé par Amazon Cognito lorsque l’utilisateur s’est connecté.
   + `AttributeName` – Spécifiez `"email"` comme valeur d’attribut.
   + `Code` – Code de vérification que l’utilisateur a fourni.

   À ce stade, l’adresse e-mail est vérifiée.

## Autorisation des utilisateurs à s’inscrire dans votre application, mais en les confirmant en tant qu’administrateur du groupe d’utilisateurs
<a name="signing-up-users-in-your-app-and-confirming-them-as-admin"></a>

Vous ne voulez peut-être pas que votre groupe d’utilisateurs envoie automatiquement des messages de vérification dans votre groupe d’utilisateurs, mais vous souhaitez tout de même autoriser tout le monde à s’inscrire à un compte. Ce modèle permet, par exemple, une vérification humaine des nouvelles demandes d’inscription, ainsi que la validation et le traitement par lots des inscriptions. Vous pouvez confirmer les nouveaux comptes utilisateurs dans la console Amazon Cognito ou à l'aide de l'API authentifiée par IAM. [AdminConfirmSignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminConfirmSignUp.html) Vous pouvez confirmer les comptes d’utilisateur en tant qu’administrateur, que votre groupe d’utilisateurs envoie ou non des messages de vérification.

Vous ne pouvez confirmer l’inscription en libre-service d’un utilisateur qu’à l’aide de cette technique. Pour confirmer un utilisateur que vous créez en tant qu'administrateur, créez une demande d'[AdminSetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html)API avec `Permanent` set to`True`.

1. Un utilisateur s'inscrit dans votre application en saisissant un nom d'utilisateur, un numéro de téléphone, une adresse and/or e-mail et éventuellement d'autres attributs.

1. Le service Amazon Cognito reçoit la demande d’inscription de l’application. Après avoir vérifié que la demande contient tous les attributs nécessaires pour l’inscription, le service termine la procédure d’inscription et indique à l’application que l’inscription est faite, en attente de confirmation. A ce stade, le compte d’utilisateur affiche l’état Non confirmé. L’utilisateur ne peut pas se connecter tant que son compte n’a pas été confirmé.

1. Confirmez le compte de l’utilisateur. Vous devez vous connecter AWS Management Console ou signer votre demande d'API avec des AWS informations d'identification pour confirmer le compte. 

   1. **Pour confirmer un utilisateur dans la console Amazon Cognito, accédez au menu **Utilisateurs**, choisissez l'utilisateur que vous souhaitez confirmer, puis dans le menu **Actions**, sélectionnez Confirmer.**

   1. Pour confirmer un utilisateur dans l' AWS API ou la CLI, créez une demande d'[AdminConfirmSignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminConfirmSignUp.html)API ou [admin-confirm-sign-up](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/admin-confirm-sign-up.html)dans le AWS CLI.

1. A ce stade, le compte d’utilisateur a l’état Confirmé et l’utilisateur peut se connecter.

## Calcul des valeurs de hachage secret
<a name="cognito-user-pools-computing-secret-hash"></a>

Attribuez un secret client à votre client d’application confidentiel en guise de bonne pratique. Lorsque vous attribuez un secret client à votre client d’application, vos demandes d’API de groupes d’utilisateurs Amazon Cognito doivent comporter un hachage qui inclut le secret client dans le corps de la demande. Pour valider votre connaissance du secret client pour les opérations d’API figurant dans les listes suivantes, concaténez le secret client avec l’ID de votre client d’application et le nom d’utilisateur de votre utilisateur, puis codez cette chaîne en base64.

Lorsque votre application connecte des utilisateurs à un client doté d’un hachage secret, vous pouvez utiliser la valeur de n’importe quel attribut de connexion au groupe d’utilisateurs comme élément de nom d’utilisateur du hachage secret. Lorsque votre application demande de nouveaux jetons lors d’une opération d’authentification avec `REFRESH_TOKEN_AUTH`, la valeur de l’élément username dépend de vos attributs de connexion. Lorsque votre groupe d’utilisateurs n’a pas d’attribut de connexion `username`, définissez la valeur du nom d’utilisateur de hachage secret de la demande `sub` de l’utilisateur à partir de son jeton d’accès ou d’identification. Lorsque `username` est un attribut de connexion, définissez la valeur du nom d’utilisateur de hachage secret indiquée dans la demande `username`.

Les groupes d'utilisateurs Amazon Cognito suivants APIs acceptent une valeur de hachage client-secret dans un paramètre. `SecretHash`
+ [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmForgotPassword.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmForgotPassword.html)
+ [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html)
+ [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html)
+ [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ResendConfirmationCode.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ResendConfirmationCode.html)
+ [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html)

En outre, les éléments suivants APIs acceptent une valeur de hachage client-secret dans un `SECRET_HASH` paramètre, soit dans les paramètres d'authentification, soit dans une réponse à un défi.


| Opération API | Paramètre parent pour SECRET\$1HASH | 
| --- |--- |
| InitiateAuth | AuthParameters | 
| AdminInitiateAuth | AuthParameters | 
| RespondToAuthChallenge | ChallengeResponses | 
| AdminRespondToAuthChallenge | ChallengeResponses | 

La valeur de hachage secret est un code d’authentification de message de hachage (HMAC) à clé codé en Base 64 qui est calculé à partir de la clé secrète du client et du nom d’utilisateur d’un groupe d’utilisateurs et de l’ID client contenu dans le message. L’exemple de pseudo-code suivant montre comment cette valeur est calculée. Dans ce pseudocode, `+` indique la concaténation, `HMAC_SHA256` représente une fonction qui produit une valeur HMAC à l'aide de Hmac et `Base64` représente une fonction qui produit une version codée en SHA256 Base-64 de la sortie de hachage.

```
Base64 ( HMAC_SHA256 ( "Client Secret Key", "Username" + "Client Id" ) )
```

Pour une présentation détaillée du calcul et de l'utilisation du `SecretHash` paramètre, consultez [Comment résoudre les erreurs « Impossible de vérifier le hachage secret pour le client » dans l'API de mon groupe d'utilisateurs Amazon Cognito](https://aws.amazon.com/premiumsupport/knowledge-center/cognito-unable-to-verify-secret-hash/) <client-id>? dans le AWS Knowledge Center.

Vous pouvez utiliser les exemples de code suivants dans votre code d’application côté serveur.

------
#### [ Shell ]

```
echo -n "[username][app client ID]" | openssl dgst -sha256 -hmac [app client secret] -binary | openssl enc -base64
```

------
#### [ Java ]

```
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
 
public static String calculateSecretHash(String userPoolClientId, String userPoolClientSecret, String userName) {
    final String HMAC_SHA256_ALGORITHM = "HmacSHA256";
    
    SecretKeySpec signingKey = new SecretKeySpec(
            userPoolClientSecret.getBytes(StandardCharsets.UTF_8),
            HMAC_SHA256_ALGORITHM);
    try {
        Mac mac = Mac.getInstance(HMAC_SHA256_ALGORITHM);
        mac.init(signingKey);
        mac.update(userName.getBytes(StandardCharsets.UTF_8));
        byte[] rawHmac = mac.doFinal(userPoolClientId.getBytes(StandardCharsets.UTF_8));
        return Base64.getEncoder().encodeToString(rawHmac);
    } catch (Exception e) {
        throw new RuntimeException("Error while calculating ");
    }
}
```

------
#### [ Python ]

```
import sys
import hmac, hashlib, base64 
username = sys.argv[1] 
app_client_id = sys.argv[2] 
key = sys.argv[3] 
message = bytes(sys.argv[1]+sys.argv[2],'utf-8') 
key = bytes(sys.argv[3],'utf-8') 
secret_hash = base64.b64encode(hmac.new(key, message, digestmod=hashlib.sha256).digest()).decode() 
print("SECRET HASH:",secret_hash)
```

------

## Confirmation des comptes d’utilisateur sans vérification de l’e-mail ou du numéro de téléphone
<a name="confirming-user-without-verification-of-email-or-phone-number"></a>

Le déclencheur Lambda avant l’inscription peut servir à valider automatiquement les comptes d’utilisateur au moment de l’inscription, sans exiger de code de confirmation ni vérifier l’adresse e-mail ou le numéro de téléphone. Les utilisateurs qui sont confirmés de cette façon peuvent immédiatement se connecter, sans avoir besoin d’un code.

Vous pouvez également marquer un e-mail ou le numéro de téléphone de l’utilisateur comme étant vérifié grâce à ce déclencheur. 

**Note**  
Bien que cette méthode soit pratique pour les utilisateurs qui débutent, nous recommandons de vérifier au moins l’e-mail ou le numéro de téléphone. Dans le cas contraire, l’utilisateur peut se trouver dans l’incapacité de récupérer son mot de passe en cas d’oubli.

Si vous n’exigez pas que l’utilisateur reçoive et saisisse un code de confirmation au moment de l’inscription et que vous ne vérifiez pas automatiquement l’adresse e-mail ni le numéro de téléphone dans le déclencheur Lambda avant l’inscription, vous risquez de ne pas avoir de numéro de téléphone ni d’adresse e-mail vérifiés pour ce compte d’utilisateur. L’utilisateur peut vérifier son numéro de téléphone ou son adresse e-mail ultérieurement. Toutefois, si l’utilisateur oublie son mot de passe et n’a pas de numéro de téléphone ni d’adresse e-mail vérifiés, il n’a plus aucun moyen d’accéder à son compte, puisque le flux d’oubli du mot de passe exige une adresse e-mail ou un numéro de téléphone vérifié pour envoyer un code de vérification à l’utilisateur.

## Vérification en cas de modification de l’adresse e-mail ou du numéro de téléphone par l’utilisateur
<a name="verifying-when-users-change-their-email-or-phone-number"></a>

Dans les groupes d'utilisateurs que vous configurez avec plusieurs noms de connexion, les utilisateurs peuvent saisir un numéro de téléphone ou une adresse e-mail comme nom d'utilisateur lors de la connexion. Lorsqu'ils mettent à jour leur adresse e-mail ou leur numéro de téléphone dans votre application, Amazon Cognito peut immédiatement leur envoyer un message contenant un code attestant qu'ils sont propriétaires de la nouvelle valeur d'attribut. Pour activer l'envoi automatique de ces codes de vérification, consultez[Configuration de la vérification par e-mail ou par téléphone](user-pool-settings-email-phone-verification.md).

Les utilisateurs qui reçoivent un code de vérification doivent le renvoyer à Amazon Cognito dans le cadre d'une [VerifyUserAttribute](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_VerifyUserAttribute.html)demande. Une fois qu'ils ont fourni le code, leur attribut est marqué comme vérifié. Généralement, lorsque les utilisateurs mettent à jour leur adresse e-mail ou leur numéro de téléphone, vous devez vérifier qu'ils possèdent bien la nouvelle valeur avant de pouvoir l'utiliser pour se connecter et recevoir des messages. Les groupes d'utilisateurs disposent d'une option configurable qui détermine si les utilisateurs doivent vérifier les mises à jour de leur adresse e-mail ou de leur numéro de téléphone.

Cette option est la propriété du groupe d'utilisateurs`AttributesRequireVerificationBeforeUpdate`. Configurez-le dans une [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html#CognitoUserPools-UpdateUserPool-request-UserAttributeUpdateSettings)demande [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-UserAttributeUpdateSettings)ou avec le paramètre **Conserver la valeur d'attribut d'origine active lorsqu'une mise à jour est en attente** dans le menu d'**inscription** de la console Amazon Cognito.

La façon dont votre groupe d'utilisateurs traite les mises à jour des adresses e-mail et des numéros de téléphone est liée à la configuration du nom d'utilisateur de votre groupe d'utilisateurs. Les noms d'utilisateur du groupe d'utilisateurs peuvent se trouver dans une configuration *d'attributs de nom d'utilisateur* dans laquelle les noms de connexion sont l'adresse e-mail, le numéro de téléphone ou les deux. Ils peuvent également se trouver dans une configuration d'*attributs d'alias* dans laquelle l'`username`attribut est un nom de connexion accompagné d'une adresse e-mail, d'un numéro de téléphone ou d'un nom d'utilisateur préféré comme noms de connexion alternatifs. Pour de plus amples informations, veuillez consulter [Personnalisation des attributs de connexion](user-pool-settings-attributes.md#user-pool-settings-aliases).

 Vous pouvez également utiliser un déclencheur Lambda de message personnalisé pour personnaliser le message de vérification. Pour de plus amples informations, veuillez consulter [Déclencheur Lambda message personnalisé](user-pool-lambda-custom-message.md). Lorsque l'adresse e-mail ou le numéro de téléphone d'un utilisateur ne sont pas vérifiés, votre application doit informer l'utilisateur qu'il doit vérifier l'attribut et fournir un bouton ou un lien permettant aux utilisateurs de saisir leur code de vérification.

Le tableau suivant décrit comment `AttributesRequireVerificationBeforeUpdate` et les paramètres d'alias déterminent le résultat lorsque les utilisateurs modifient la valeur de leurs attributs de connexion.


| Configuration du nom d'utilisateur | Comportement lorsque les utilisateurs doivent vérifier de nouveaux attributs | Comportement lorsque les utilisateurs ne sont pas tenus de vérifier les nouveaux attributs | 
| --- | --- | --- | 
| Attributs de nom d'utilisateur | L'attribut d'origine reste vérifié, éligible à la connexion et à sa valeur d'origine. Lorsque l'utilisateur vérifie une nouvelle valeur, Amazon Cognito met à jour la valeur de l'attribut, la marque comme vérifiée et la rend éligible à la connexion. | Amazon Cognito met à jour l'attribut avec une nouvelle valeur. La nouvelle valeur est éligible à la connexion. Lorsque l'utilisateur vérifie une nouvelle valeur, Amazon Cognito la marque comme vérifiée. | 
| Attributs d'alias | L'attribut d'origine reste vérifié, éligible à la connexion et à sa valeur d'origine. Lorsque l'utilisateur vérifie une nouvelle valeur, Amazon Cognito met à jour la valeur de l'attribut, la marque comme vérifiée et la rend éligible à la connexion. | Amazon Cognito met à jour l'attribut avec une nouvelle valeur. Ni la valeur d'attribut d'origine ni la nouvelle valeur d'attribut ne sont éligibles à la connexion. Lorsque l'utilisateur vérifie une nouvelle valeur, Amazon Cognito met à jour la valeur de l'attribut, la marque comme vérifiée et la rend éligible à la connexion. | 

**Exemple 1**  
L'utilisateur 1 se connecte à votre application avec l'adresse e-mail `user1@example.com` et possède le nom d'utilisateur `user1` (attributs d'alias). Votre groupe d'utilisateurs est configuré pour vérifier les mises à jour des attributs de connexion et pour envoyer automatiquement des messages de vérification. Ils demandent à mettre à jour leur adresse e-mail en`user1+foo@example.com`. Ils reçoivent un e-mail de vérification à l'adresse `user1+foo@example.com` et *peuvent se reconnecter* uniquement avec l'adresse e-mail`user1@example.com`. Plus tard, ils saisissent leur code de vérification et peuvent se reconnecter uniquement avec leur adresse e-mail`user1+foo@example.com`.

**Exemple 2**  
L'utilisateur 2 se connecte à votre application à l'aide de son adresse e-mail `user2@example.com` et possède un nom d'utilisateur (attributs d'alias). Votre groupe d'utilisateurs est configuré pour *ne pas* vérifier les mises à jour des attributs de connexion et pour envoyer automatiquement des messages de vérification. Ils demandent à mettre à jour leur adresse e-mail en`user2+bar@example.com`. Ils reçoivent un e-mail de vérification à l'adresse `user2+bar@example.com` et *ne peuvent pas se reconnecter*. Plus tard, ils saisissent leur code de vérification et peuvent se reconnecter uniquement avec leur adresse e-mail`user2+bar@example.com`.

**Exemple 3**  
L'utilisateur 3 se connecte à votre application avec son adresse e-mail `user3@example.com` et n'a pas de nom d'utilisateur (attributs du nom d'utilisateur). Votre groupe d'utilisateurs est configuré pour *ne pas* vérifier les mises à jour des attributs de connexion et pour envoyer automatiquement des messages de vérification. Ils demandent à mettre à jour leur adresse e-mail en`user3+baz@example.com`. Ils reçoivent un e-mail de vérification à l'adresse`user3+baz@example.com`, mais ils *peuvent se connecter immédiatement* sans qu'aucune action supplémentaire ne soit effectuée avec le code de vérification.

## Procédures de confirmation et de vérification pour les comptes d’utilisateur créés par des administrateurs ou des développeurs
<a name="confirmation-and-verification-of-users-whose-accounts-youve-created"></a>

Les comptes d’utilisateur créés par un administrateur ou un développeur affichent déjà l’état Confirmé, et les utilisateurs n’ont pas à saisir de code de confirmation. Le message d’invitation que le service Amazon Cognito envoie à ces utilisateurs inclut leur nom d’utilisateur et un mot de passe temporaire. L’utilisateur doit modifier le mot de passe avant de se connecter. Pour plus d’informations, consultez la section [Personnalisation des e-mails et SMS](how-to-create-user-accounts.md#creating-a-new-user-customize-messages) dans [Création de comptes d’utilisateur en tant qu’administrateur](how-to-create-user-accounts.md) et celle relative au déclencheur de message personnalisé dans [Personnalisation des flux de travail de groupe d'utilisateurs avec des déclencheurs Lambda](cognito-user-pools-working-with-lambda-triggers.md).

## Procédures de vérification et de confirmation pour les comptes d’utilisateur importés
<a name="confirmation-and-verification-of-users-whose-accounts-youve-imported"></a>

Les comptes utilisateur créés à l'aide de la fonctionnalité d'importation d'utilisateurs de la AWS Management Console CLI ou de l'API (voir[Importation d'utilisateurs dans des groupes d'utilisateurs depuis un fichier CSV](cognito-user-pools-using-import-tool.md)) sont déjà confirmés. Les utilisateurs ne sont donc pas tenus de saisir un code de confirmation. Aucun message d’invitation n’est envoyé. Cependant, les comptes d’utilisateur importés nécessitent que les utilisateurs demandent d’abord un code en appelant l’API `ForgotPassword`, puis en créant un mot de passe avec le code reçu après l’appel de l’API `ConfirmForgotPassword` avant de se connecter. Pour de plus amples informations, veuillez consulter [Obligation pour les utilisateurs importés de réinitialiser leur mot de passe](cognito-user-pools-using-import-tool.md#cognito-user-pools-using-import-tool-password-reset).

L’e-mail de l’utilisateur ou son numéro de téléphone est marqué comme vérifié lorsque le compte d’utilisateur est importé ; aucune vérification n’est donc requise lorsque l’utilisateur se connecte.

## Envoi d’e-mails pendant le test de votre application
<a name="managing-users-accounts-email-testing"></a>

Amazon Cognito envoie un e-mail à vos utilisateurs lorsqu’ils créent et gèrent leurs comptes dans l’application cliente de votre groupe d’utilisateurs. Si vous configurez votre groupe d’utilisateurs afin d’exiger la vérification des e-mails, Amazon Cognito envoie un e-mail dans les cas suivants :
+ Un utilisateur se connecte.
+ Un utilisateur met à jour son adresse e-mail.
+ Un utilisateur exécute une action qui appelle l’action d’API `ForgotPassword`.
+ Vous créez un compte d’utilisateur en tant qu’administrateur.

En fonction de l’action qui déclenche l’e-mail, celui-ci contient un code de vérification ou un mot de passe temporaire. Vos utilisateurs doivent recevoir ces e-mails et comprendre le message. Sinon, ils peuvent ne pas être en mesure de se connecter et d’utiliser votre application.

Pour garantir que les e-mails sont envoyés avec succès et que le message paraît correct, testez les actions de votre application qui initient les remises d’e-mail à partir d’Amazon Cognito. Par exemple, en utilisant la page de connexion de votre application, ou en utilisant l’action d’API `SignUp`, vous pouvez lancer un e-mail en vous connectant avec une adresse e-mail de test. Lorsque vous testez ainsi, n’oubliez pas les points suivants :

**Important**  
Lorsque vous utilisez une adresse e-mail pour tester les actions qui initient des e-mails à partir d’Amazon Cognito, n’utilisez pas d’adresse e-mail fictive (une adresse sans boîte aux lettres). Utilisez une adresse e-mail réelle qui recevra l’e-mail à partir d’Amazon Cognito sans déclencher de *retour à l’expéditeur*.  
Un message d’erreur définitif se produit quand Amazon Cognito ne parvient pas à remettre l’e-mail à la boîte aux lettres du destinataire, ce qui se produit toujours si la boîte aux lettres n’existe pas.  
Amazon Cognito limite le nombre d'e-mails pouvant être envoyés par des AWS comptes régulièrement soumis à des hard bounces.

Lorsque vous testez des actions qui initient des e-mails, utilisez l’une des adresses suivantes pour empêcher les retours à l’expéditeur définitifs :
+ Une adresse pour un compte de messagerie que vous possédez et utilisez à des fins de test. Lorsque vous utilisez votre propre adresse e-mail, vous recevez l’e-mail envoyé par Amazon Cognito. Avec cet e-mail, vous pouvez utiliser le code de vérification pour tester la connexion de votre application. Si vous avez personnalisé le message électronique pour votre groupe d’utilisateurs, vous pouvez vérifier que vos personnalisation est correcte.
+ Adresse du simulateur de boîte aux lettres, *success@simulator.amazonses.com*. Si vous utilisez l’adresse du simulateur, Amazon Cognito envoie l’e-mail avec succès, mais vous n’êtes pas en mesure de l’afficher. Cette option est utile lorsque vous n’avez pas besoin d’utiliser le code de vérification ni de vérifier le message électronique.
+ Adresse du simulateur de boîte aux lettres avec ajout d’une étiquette arbitraire, comme *success\$1user1@simulator.amazonses.com* ou *success\$1user2@simulator.amazonses.com*. Amazon Cognito envoie des e-mails à ces adresses avec succès, mais vous n’êtes pas en mesure de les afficher. Cette option est utile lorsque vous souhaitez tester la procédure de connexion en ajoutant plusieurs utilisateurs de test à votre groupe d’utilisateurs et que chaque utilisateur de test possède une adresse e-mail unique.

# Configuration de la vérification par e-mail ou par téléphone
<a name="user-pool-settings-email-phone-verification"></a>

Vous pouvez choisir les paramètres de vérification par e-mail ou par téléphone dans le menu **Méthodes d'authentification**. Pour plus d'informations sur l'authentification multifacteur (MFA), consultez [MFA par SMS](user-pool-settings-mfa-sms-email-message.md).

Amazon Cognito utilise Amazon SNS pour envoyer des SMS. Si vous n'avez jamais envoyé de SMS depuis Amazon Cognito ou un autre Service AWS service, Amazon SNS peut placer votre compte dans le sandbox SMS. Nous vous recommandons d'envoyer un message de test à un numéro de téléphone vérifié avant de migrer votre compte de l'environnement de test (sandbox) en production. En outre, si vous prévoyez d'envoyer des SMS à des numéros de téléphone de destination aux États-Unis, vous devez obtenir un identifiant d'origine ou d'expéditeur à partir d'Amazon Pinpoint. Pour configurer votre groupe d'utilisateurs Amazon Cognito pour les SMS, consultez [Paramètres des SMS pour les groupes d'utilisateurs Amazon Cognito](user-pool-sms-settings.md).

Amazon Cognito peut vérifier automatiquement les adresses e-mail et les numéros de téléphone. Pour effectuer cette vérification, Amazon Cognito envoie un code de vérification ou un lien de vérification. Pour les adresses e-mail, Amazon Cognito peut envoyer un code ou un lien dans un e-mail. Vous pouvez choisir un **type de **code** ou de **lien** de vérification** lorsque vous modifiez votre modèle de **message de vérification** dans le menu **Modèles de messages** de la console Amazon Cognito. Pour de plus amples informations, veuillez consulter [Personnalisation des messages de vérification d'adresse e-mail](cognito-user-pool-settings-message-customizations.md#cognito-user-pool-settings-email-verification-message-customization).

Pour les numéros de téléphone, Amazon Cognito envoie un code par SMS.

Amazon Cognito doit vérifier un numéro de téléphone ou une adresse e-mail afin de confirmer les utilisateurs et les aider à récupérer les mots de passe oubliés. Vous pouvez également confirmer automatiquement les utilisateurs à l'aide du déclencheur Lambda préalable à l'inscription ou utiliser [AdminConfirmSignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminConfirmSignUp.html)l'opération API. Pour de plus amples informations, veuillez consulter [Inscription et confirmation des comptes d’utilisateur](signing-up-users-in-your-app.md).

Le code ou lien de vérification est valide pendant 24 heures.

Si vous décidez d'exiger une vérification pour une adresse e-mail ou un numéro de téléphone, Amazon Cognito envoie automatiquement le code ou le lien de vérification quand un utilisateur s'inscrit. Si le groupe d'utilisateurs dispose d'un [Déclencheur Lambda de l'expéditeur de SMS personnalisé](user-pool-lambda-custom-sms-sender.md) ou [Déclencheur Lambda expéditeur d'e-mail personnalisé](user-pool-lambda-custom-email-sender.md) configuré, cette fonction est appelée à la place.

**Remarques**  
Amazon SNS facture séparément les SMS utilisés pour la vérification des numéros de téléphone. Aucun frais ne s'applique à l'envoi d'e-mails. Pour plus d'informations sur la tarification Amazon SNS, consultez [Tarification SMS internationaux](https://aws.amazon.com/sns/sms-pricing/). Pour obtenir la liste des pays où la messagerie SMS est disponible, consultez la page [Régions et pays pris en charge](https://docs.aws.amazon.com/sns/latest/dg/sms_supported-countries.html). 
Lorsque vous testez des actions dans votre application qui génèrent des e-mails à partir d'Amazon Cognito, utilisez une adresse e-mail réelle joignable par Amazon Cognito sans messages d'erreur définitifs. Pour de plus amples informations, veuillez consulter [Envoi d’e-mails pendant le test de votre application](signing-up-users-in-your-app.md#managing-users-accounts-email-testing).
Le flux de mot de passe oublié requiert l'adresse e-mail ou le numéro de téléphone de l'utilisateur pour vérifier l'utilisateur.

**Important**  
Si un utilisateur s'inscrit en indiquant à la fois un numéro de téléphone et une adresse e-mail, et que les paramètres du groupe d'utilisateurs nécessitent la vérification des deux attributs, Amazon Cognito envoie un code de vérification par SMS au numéro de téléphone. Amazon Cognito n'a pas encore vérifié l'adresse e-mail. Votre application doit donc appeler [GetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUser.html)pour savoir si une adresse e-mail attend d'être vérifiée. Si une vérification est nécessaire, l'application doit appeler [GetUserAttributeVerificationCode](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUserAttributeVerificationCode.html)pour lancer le flux de vérification par e-mail. Il doit ensuite soumettre le code de vérification en appelant [VerifyUserAttribute](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_VerifyUserAttribute.html).

Vous pouvez ajuster votre quota de dépenses par SMS pour un Compte AWS et pour des messages individuels. Les limites s'appliquent uniquement au coût d'envoi de messages SMS. Pour plus d'informations, voir **Quels sont les quotas de dépenses au niveau du compte et au niveau des messages et comment fonctionnent-ils ?** sur [Amazon SNS FAQs](https://aws.amazon.com/sns/faqs/).

Amazon Cognito envoie des SMS à l'aide des ressources Amazon SNS dans la région où vous avez créé Région AWS le groupe d'utilisateurs ou dans une ancienne région **Amazon SNS, comme indiqué dans le tableau suivant.** L'exception se rapporte aux groupes d'utilisateurs Amazon Cognito dans la région Asie-Pacifique (Séoul). Ces groupes d'utilisateurs utilisent votre configuration Amazon SNS dans la région Asie-Pacifique (Tokyo). Pour de plus amples informations, veuillez consulter [Choisissez le Région AWS pour les messages SMS](user-pool-sms-settings.md#sms-choose-a-region).


| Région Amazon Cognito | Autre région Amazon SNS héritée | 
| --- | --- | 
| USA Est (Ohio) | USA Est (Virginie du Nord) | 
| Asie-Pacifique (Mumbai) | Asie-Pacifique (Singapour) | 
| Asie-Pacifique (Séoul) | Asie-Pacifique (Tokyo) | 
| Canada (Centre) | USA Est (Virginie du Nord) | 
| Europe (Francfort) | Europe (Irlande) | 
| Europe (Londres) | Europe (Irlande) | 

**Exemple :** Si votre groupe d'utilisateurs Amazon Cognito se trouve en Asie-Pacifique (Mumbai) et que vous avez augmenté votre limite de dépenses dans ap-southeast-1, vous ne voudrez peut-être pas demander une augmentation distincte dans ap-south-1. Au lieu de cela, vous pouvez utiliser vos ressources Amazon SNS en Asie-Pacifique (Singapour). 

## Vérification des mises à jour des adresses e-mail et des numéros de téléphone
<a name="user-pool-settings-verifications-verify-attribute-updates"></a>

Un attribut d'adresse e-mail ou de numéro de téléphone peut devenir actif et non vérifié immédiatement après modification de sa valeur par l'utilisateur. Amazon Cognito peut également exiger que votre utilisateur vérifie la nouvelle valeur avant qu'Amazon Cognito mette à jour l'attribut. Quand vous exigez que vos utilisateurs vérifient d'abord la nouvelle valeur, ils peuvent utiliser la valeur d'origine pour se connecter et recevoir des messages jusqu'à ce qu'ils vérifient la nouvelle valeur.

Quand vos utilisateurs peuvent utiliser leur adresse e-mail ou leur numéro de téléphone comme alias de connexion dans votre groupe d'utilisateurs, leur nom de connexion pour un attribut mis à jour dépend des exigences de vérification éventuellement définies pour les attributs mis à jour. Quand vous exigez que les utilisateurs vérifient un attribut mis à jour, un utilisateur peut se connecter avec la valeur d'attribut d'origine jusqu'à ce qu'il vérifie la nouvelle valeur. Quand vous n'exigez pas que les utilisateurs vérifient un attribut mis à jour, un utilisateur ne peut pas se connecter ni recevoir de messages à la nouvelle valeur d'attribut ou à la valeur d'origine tant qu'il n'a pas vérifié la nouvelle valeur. 

Par exemple, votre groupe d'utilisateurs autorise la connexion avec un alias d'adresse e-mail et exige que les utilisateurs vérifient leur adresse e-mail lors de la mise à jour. Sue, qui se connecte avec `sue@example.com`, souhaite remplacer son adresse e-mail par `sue2@example.com`, mais saisit accidentellement `ssue2@example.com`. Sue ne reçoit pas l'e-mail de vérification et ne peut donc pas vérifier `ssue2@example.com`. Sue se connecte avec `sue@example.com` et soumet à nouveau le formulaire dans votre application pour mettre à jour son adresse e-mail en spécifiant `sue2@example.com`. Elle reçoit cet e-mail, fournit le code de vérification à votre application et commence à se connecter avec `sue2@example.com`. 

**Quand un utilisateur met à jour un attribut et que votre groupe d'utilisateurs vérifie les nouvelles valeurs d'attribut**
+ Ils peuvent se connecter avec la valeur d'attribut d'origine avant d'avoir confirmé le code pour vérifier la nouvelle valeur.
+ Ils peuvent se connecter uniquement avec la nouvelle valeur d'attribut après avoir confirmé le code pour vérifier cette nouvelle valeur.
+ Si vous avez défini `email_verified` ou `phone_number_verified` envoyé `true` une demande d'[AdminUpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html)API, ils peuvent se connecter avant d'avoir confirmé le code qu'Amazon Cognito leur a envoyé.

**Quand un utilisateur met à jour un attribut et que votre groupe d'utilisateurs ne vérifie pas les nouvelles valeurs d'attribut**
+ Ils ne peuvent pas se connecter, ni recevoir de messages, avec la valeur d'attribut d'origine.
+ Ils ne peuvent pas se connecter, ni recevoir de messages autres qu'un code de confirmation, avec la nouvelle valeur d'attribut avant d'avoir confirmé le code pour vérifier cette nouvelle valeur.
+ Si vous avez défini `email_verified` ou `phone_number_verified` envoyé `true` une demande d'[AdminUpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html)API, ils peuvent se connecter avant d'avoir confirmé le code qu'Amazon Cognito leur a envoyé.

## Pour exiger une vérification des attributs lorsque les utilisateurs mettent à jour leur adresse e-mail ou leur numéro de téléphone


1. Connectez-vous à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si vous y êtes invité, entrez vos AWS informations d'identification.

1. Dans le volet de navigation, choisissez **Groupes d’utilisateurs**, puis choisissez le groupe d’utilisateurs que vous souhaitez modifier.

1. Dans le menu **d'inscription**, choisissez **Modifier** sous **Vérification des attributs et confirmation du compte utilisateur**.

1. Choisissez **Keep original attribute value active when an update is pending** (Conserver la valeur d'attribut d'origine active lorsqu'une mise à jour est en attente).

1. Sous **Active attribute values when an update is pending** (Valeurs d'attribut actives lorsqu'une mise à jour est en attente), choisissez les attributs que vos utilisateurs devront vérifier avant qu'Amazon Cognito mette à jour la valeur.

1. Sélectionnez **Enregistrer les modifications**.

Pour demander la vérification de la mise à jour des attributs avec l'API Amazon Cognito, vous pouvez définir le `AttributesRequireVerificationBeforeUpdate` paramètre dans une [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)demande.

## Autoriser Amazon Cognito à envoyer des SMS en votre nom.
<a name="user-pool-settings-verifications-iam-role-for-sms"></a>

Pour envoyer des SMS à vos utilisateurs en votre nom, Amazon Cognito a besoin de votre autorisation. Pour accorder cette autorisation, vous pouvez créer un rôle Gestion des identités et des accès AWS (IAM). Dans le menu **Méthodes d'authentification** de la console Amazon Cognito, sous SMS, choisissez **Modifier** pour définir un rôle.

# Configuration des messages MFA, d'authentification, de vérification et d'invitation
<a name="cognito-user-pool-settings-message-customizations"></a>

Avec Amazon Cognito, vous pouvez personnaliser l'authentification par SMS et par e-mail, la vérification et les messages d'invitation des utilisateurs afin d'améliorer la sécurité et l'expérience utilisateur de votre application. Vous pouvez choisir entre une vérification des liens basée sur le code ou une vérification des liens en un clic pour certains messages. Cette rubrique explique comment personnaliser les communications d'authentification et de vérification dans la console Amazon Cognito. 

Dans le menu **Modèles de messages**, vous pouvez personnaliser :
+ Vos modèles d'e-mails et de SMS pour l'authentification par mot de passe à usage unique (OTP) et multifactorielle (MFA)
+ Vos messages de vérification par SMS et e-mail
+ Le type de vérification pour l'e-mail : code ou lien
**Note**  
Amazon Cognito envoie des liens avec votre modèle basé sur des liens dans les messages de vérification lorsque les utilisateurs s'inscrivent ou renvoient un code de confirmation. Les e-mails issus des opérations de mise à jour des attributs et de réinitialisation du mot de passe utilisent le modèle de code.
+ Vos messages d'invitation d'utilisateur
+ Adresses DE et de RÉPONDRE À pour les e-mails transitant par votre groupe d'utilisateurs

**Note**  
Les modèles de message de vérification par SMS et e-mail n'apparaissent que si vous avez choisi d'exiger la vérification du numéro de téléphone et de l'e-mail. De la même façon, le modèle de message MFA SMS s'affiche uniquement si le paramètre MFA est **obligatoire** ou **facultatif**.

**Topics**
+ [Modèles de messages](#cognito-user-pool-settings-message-templates)
+ [Personnalisation des e-mails et des SMS MFA](#cognito-user-pool-settings-SMS-message-customization)
+ [Personnalisation des messages de vérification d'adresse e-mail](#cognito-user-pool-settings-email-verification-message-customization)
+ [Personnalisation des messages d'invitation des utilisateurs](#cognito-user-pool-settings-user-invitation-message-customization)
+ [Personnalisation de votre adresse e-mail](#cognito-user-pool-settings-email-address-customization)
+ [Autoriser Amazon Cognito à envoyer des e-mails Amazon SES en votre nom (à partir d'une adresse DE personnalisée)](#cognito-user-pool-settings-ses-authorization-to-send-email)

## Modèles de messages
<a name="cognito-user-pool-settings-message-templates"></a>

Vous pouvez utiliser des modèles de message pour insérer des espaces réservés dans vos messages. Amazon Cognito remplace les espaces réservés par les valeurs correspondantes. Vous pouvez faire référence *aux espaces réservés aux modèles universels dans les* modèles de messages de tout type, bien que ces valeurs ne soient pas présentes dans tous les types de messages.


**Espaces réservés aux modèles universels**  

|  Description  |  Jeton  | Type de message | 
| --- | --- | --- | 
| Code de vérification | \$1\$1\$1\$1\$1\$1 | Messages de vérification, de confirmation et MFA | 
| Mot de passe temporaire | \$1\$1\$1\$1\$1\$1 | Mot de passe oublié et messages d'invitation | 
| Nom utilisateur | \$1username\$1 | Invitation et messages de sécurité avancés | 

L'une des réponses automatisées disponibles en matière de [protection contre les menaces](cognito-user-pool-settings-threat-protection.md) consiste à informer l'utilisateur qu'Amazon Cognito a détecté une activité potentiellement malveillante. Vous pouvez utiliser des espaces réservés de modèle avec sécurité avancée pour effectuer les opérations suivantes :
+ Inclure des détails spécifiques sur un événement, comme l'adresse IP, la ville, le pays, l'heure de connexion et le nom de l'appareil. La protection contre les menaces Amazon Cognito peut analyser ces informations.
+ Vérifier si un lien en 1 clic est valide.
+ Utiliser un ID d'événement, un jeton de commentaire et un nom d'utilisateur pour créer votre propre lien en 1 clic.

**Note**  
Pour générer des liens en un clic et utiliser les espaces réservés `{one-click-link-valid}` et `{one-click-link-invalid}` dans les modèles d'e-mails avec sécurité avancée, vous devez déjà disposer d'un domaine configuré pour votre groupe d'utilisateurs.

La protection contre les menaces ajoute les espaces réservés suivants que vous pouvez insérer dans les modèles de message. Ces espaces réservés s'appliquent aux **messages d'authentification adaptative**, c'est-à-dire aux notifications qu'Amazon Cognito envoie aux utilisateurs dont les sessions ont été évaluées en fonction du niveau de risque. Pour configurer des modèles de messages avec ces variables, mettez à jour la configuration **complète** de votre protection contre les menaces dans la console Amazon Cognito ou soumettez des modèles dans [SetRiskConfiguration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetRiskConfiguration.html)une demande.


**Espaces réservés de modèle avec sécurité avancée**  

|  Description  |  Jeton  | 
| --- | --- | 
| Adresse IP | \$1ip-address\$1 | 
| City | \$1city\$1 | 
| Country | \$1country\$1 | 
| Heure de connexion | \$1login-time\$1 | 
| Nom d’appareil | \$1device-name\$1 | 
| Le lien en un clic est valide | \$1one-click-link-valid\$1 | 
| Le lien en un clic est non valide | \$1one-click-link-invalid\$1 | 
| ID de l’événement | \$1event-id\$1 | 
| Jeton de commentaire | \$1feedback-token\$1 | 

## Personnalisation des e-mails et des SMS MFA
<a name="cognito-user-pool-settings-SMS-message-customization"></a>

Pour personnaliser les SMS et les e-mails pour l'[authentification multifactorielle (MFA](user-pool-settings-mfa.md)), modifiez le message **MFA** dans le menu Modèles de messages de **la console des groupes** d'utilisateurs Amazon Cognito.

**Important**  
Votre message personnalisé doit contenir l'espace réservé `{####}`. Cet espace réservé est remplacé par le code d'authentification avant l'envoi.

Amazon Cognito définit une longueur maximale de 140 caractères UTF-8 pour les SMS, y compris le code d'authentification.

### Personnalisation des messages de vérification par SMS
<a name="cognito-user-pool-settings-SMS-verification-message-customization"></a>

Pour personnaliser le message SMS pour la vérification du numéro de téléphone, modifiez le modèle de **message de vérification** dans le menu **Modèles de messages** de votre groupe d'utilisateurs.

**Important**  
Votre message personnalisé doit contenir l'espace réservé `{####}`. Cet espace réservé est remplacé par le code de vérification avant l'envoi.

La longueur maximale du message est de 140 caractères UTF-8, en comptant le code de vérification.

## Personnalisation des messages de vérification d'adresse e-mail
<a name="cognito-user-pool-settings-email-verification-message-customization"></a>

Pour vérifier l'adresse e-mail d'un utilisateur de votre groupe d'utilisateurs avec Amazon Cognito, vous pouvez envoyer à l'utilisateur un message électronique contenant un lien qu'il peut sélectionner ou lui envoyer un code à saisir.

Pour personnaliser l'objet et le contenu des messages de vérification d'adresse e-mail, modifiez le modèle de **message de vérification** dans le menu **Modèles** de messages de votre groupe d'utilisateurs. Vous pouvez choisir un **Type de vérification** par **Code** ou **Lien** lorsque vous modifiez votre modèle **Message de vérification**.

Lorsque vous choisissez **Code** comme type de vérification, votre message personnalisé doit contenir l'espace réservé `{####}`. Quand vous envoyez ce message, le code de vérification remplace cet espace réservé.

Si vous choisissez **Lien** comme type de vérification, votre message personnalisé doit inclure un espace réservé au format `{##Verify Your Email##}`. Vous pouvez modifier la chaîne de texte entre les caractères d'espace réservé, par exemple `{##Click here##}`. Un lien de vérification intitulé *Verify Your Email* (Vérifiez votre adresse e-mail) remplace cet espace réservé.

Le lien vers un message de vérification par e-mail redirige votre utilisateur vers une URL comme dans l'exemple suivant.

```
https://<your user pool domain>/confirmUser/?client_id=abcdefg12345678&user_name=emailtest&confirmation_code=123456
```

La longueur maximale du message est de 20 000 caractères UTF-8, en comptant le code de vérification (le cas échéant). Vous pouvez utiliser des balises HTML dans ce message pour formater le contenu.

## Personnalisation des messages d'invitation des utilisateurs
<a name="cognito-user-pool-settings-user-invitation-message-customization"></a>

Vous pouvez personnaliser le message d'invitation qu'Amazon Cognito envoie aux nouveaux utilisateurs par SMS ou e-mail en modifiant le modèle de **messages d'invitation** dans le menu **Modèles de messages**.

**Important**  
Votre message personnalisé doit contenir les espaces réservés `{username}` et `{####}`. Lors de l'envoi du message d'invitation, Amazon Cognito remplace ces espaces réservés par le nom d'utilisateur et le mot de passe de votre utilisateur.

La longueur maximale d'un message SMS est de 140 caractères UTF-8, code de vérification inclus. La longueur maximale d'un message e-mail est de 20 000 caractères UTF-8, code de vérification inclus. Vous pouvez utiliser des balises HTML dans vos e-mails pour formater le contenu.

## Personnalisation de votre adresse e-mail
<a name="cognito-user-pool-settings-email-address-customization"></a>

Par défaut, les messages e-mail qu'Amazon Cognito envoie aux utilisateurs dans vos groupes d'utilisateurs arrivent par l'adresse **no-reply@verificationemail.com**. Vous pouvez choisir de spécifier des adresses e-mail DE et RÉPONDRE À personnalisées qui remplaceront **no-reply@verificationemail.com**.

**Pour personnaliser les adresses e-mail DE et de RÉPONDRE À**

1. Accédez à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home), puis choisissez **Groupes d’utilisateurs**.

1. Choisissez un groupe d’utilisateurs existant dans la liste ou [créez-en un](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Choisissez le menu **Méthodes d'authentification**. Sous **E-mail**, choisissez **Modifier**.

1. Choisissez une **région SES**.

1. Choisissez une **adresse e-mail d'expéditeur** dans la liste des adresses e-mail que vous avez vérifiées avec Amazon SES dans la **région SES** que vous avez sélectionnée. Pour utiliser une adresse e-mail provenant d'un domaine vérifié, configurez les paramètres de messagerie dans l'API AWS Command Line Interface ou dans l' AWS API. Pour plus d'informations, consultez la section [Vérification des adresses e-mail et des domaines dans Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html) dans le *Guide du développeur Amazon Simple Email Service*.

1. Choisissez un **jeu de configurations** dans la liste des jeux de configurations de la **région SES** que vous avez choisie.

1. Saisissez un **nom d'expéditeur DE** convivial pour vos messages électroniques, au format`John Stiles <johnstiles@example.com>`.

1. Pour personnaliser l'adresse e-mail pour RÉPONDRE À, saisissez une adresse e-mail valide dans le champ **Adresse e-mail pour RÉPONDRE À**.

## Autoriser Amazon Cognito à envoyer des e-mails Amazon SES en votre nom (à partir d'une adresse DE personnalisée)
<a name="cognito-user-pool-settings-ses-authorization-to-send-email"></a>

Vous pouvez configurer Amazon Cognito pour qu'il envoie des e-mails à partir d'une adresse e-mail DE personnalisée au lieu de son adresse par défaut. Pour utiliser une adresse personnalisée, vous devez autoriser Amazon Cognito à envoyer un e-mail à partir d'une identité vérifiée Amazon SES. Dans la plupart des cas, vous pouvez accorder une autorisation en créant une politique d'autorisation d'envoi. Pour plus d'informations, consultez la section [Utilisation de l'autorisation d'envoi avec Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html) dans le *Guide du développeur Amazon Simple Email Service*. 

Lorsque vous configurez un groupe d'utilisateurs pour qu'il utilise Amazon SES pour les e-mails, Amazon Cognito crée le rôle `AWSServiceRoleForAmazonCognitoIdpEmailService` dans votre compte pour accorder l'accès à Amazon SES. Aucune politique d'autorisation d'envoi n'est nécessaire lorsque le rôle lié à un service `AWSServiceRoleForAmazonCognitoIdpEmailService` est utilisé. Vous n'avez besoin d'ajouter une politique d'autorisation d'envoi que lorsque vous utilisez la fonctionnalité de messagerie par défaut de votre groupe d'utilisateurs *et* une identité Amazon SES vérifiée en tant qu'adresse DE.

Pour plus d'informations sur le rôle lié à un service créé par Amazon Cognito, consultez [Utilisation de rôles liés à un service pour Amazon Cognito](using-service-linked-roles.md).

L'exemple suivant de politique d'autorisation d'envoi accorde à Amazon Cognito la possibilité limitée d'utiliser une identité vérifiée Amazon SES. Amazon Cognito ne peut envoyer des e-mails que lorsqu'il le fait pour le compte du groupe d'utilisateurs dans la condition `aws:SourceArn` et le compte dans la condition `aws:SourceAccount`. Pour d'autres exemples, consultez [Exemples de politiques d'autorisation d'envoi Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-policy-examples.html) dans le *Guide du développeur Amazon Simple Email Service*.

**Note**  
Dans cet exemple, la valeur « Sid » est une chaîne arbitraire qui identifie l'instruction de manière unique. Pour plus d'informations sur la syntaxe de la politique, consultez [Politiques d'autorisation d'envoi Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-policies.html) dans le *Guide du développeur Amazon Simple Email Service*.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "stmnt1234567891234",
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "email.cognito-idp.amazonaws.com"
                ]
            },
            "Action": [
                "SES:SendEmail",
                "SES:SendRawEmail"
            ],
            "Resource": "arn:aws:ses:us-east-1:111122223333:identity/support@example.com",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:cognito-idp:us-east-1:111122223333:userpool/us-east-1_EXAMPLE"
                }
            }
        }
    ]
}
```

------

La console Amazon Cognito vous ajoute une politique semblable lorsque vous sélectionnez une identité Amazon SES dans le menu déroulant. Si vous utilisez la CLI ou l'API pour configurer le groupe d'utilisateurs, vous devez attacher une politique structurée comme celle de l'exemple précédent à votre identité Amazon SES.

# Création de comptes d’utilisateur en tant qu’administrateur
<a name="how-to-create-user-accounts"></a>

Les groupes d'utilisateurs ne sont pas seulement un annuaire d'utilisateurs de gestion de l'identité et de l'accès des clients (CIAM), dans lequel n'importe qui sur Internet peut créer un profil utilisateur dans votre application. Vous pouvez désactiver l'inscription en libre-service. Il se peut que vous connaissiez déjà vos clients et que vous souhaitiez n'admettre que ceux qui ont été autorisés à l'avance. Vous pouvez mettre en place des barrières d'authentification manuelle autour de votre application avec un [fournisseur d'identité SAML 2.0 ou OIDC privé](cognito-user-pools-identity-federation.md), en important des utilisateurs, en filtrant [les utilisateurs](cognito-user-pools-import-users.md) lors de leur [inscription ou en créant des utilisateurs à](user-pool-lambda-pre-sign-up.md) l'aide d'opérations d'API administratives. Votre flux de travail pour la création administrative des utilisateurs peut être programmatique, en configurant les utilisateurs après leur enregistrement dans un autre système, ou il peut être effectué sur une case-by-case base de test dans la console Amazon Cognito.

Lorsque vous créez des utilisateurs en tant qu'administrateur, Amazon Cognito leur définit un mot de passe temporaire et envoie un message de bienvenue ou d'invitation. Ils peuvent suivre le lien contenu dans leur message d'invitation et se connecter pour la première fois, définir un mot de passe et confirmer leur compte. La page suivante décrit comment créer de nouveaux utilisateurs et configurer le message de bienvenue. Pour plus d'informations sur la création d'utilisateurs à l'aide de l'API des groupes d'utilisateurs et d'un AWS SDK ou d'un CDK, consultez. [AdminCreateUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminCreateUser.html)

Après avoir créé votre groupe d'utilisateurs, vous pouvez créer des utilisateurs à l'aide de l' AWS Management Console API Amazon Cognito AWS Command Line Interface ou de l'API Amazon Cognito. Vous pouvez créer un profil pour un nouvel utilisateur dans un groupe d’utilisateurs et envoyer un message de bienvenue avec des instructions d’inscription à l’utilisateur par SMS ou e-mail.

Voici quelques exemples de la manière dont les administrateurs peuvent gérer les utilisateurs dans les groupes d'utilisateurs.
+ Créez un nouveau profil utilisateur dans la console Amazon Cognito ou à l'aide de l'`AdminCreateUser`API.
+ Mettez les username-and-password [flux d'authentification](amazon-cognito-user-pools-authentication-flow-methods.md) sans mot de passe, par clé d'accès et personnalisés à la disposition de votre groupe d'utilisateurs et de votre client d'application.
+ Définissez les valeurs des attributs utilisateur.
+ Créez des attributs personnalisés.
+ Définissez la valeur des [attributs personnalisés immuables dans les](user-pool-settings-attributes.md#user-pool-settings-custom-attributes) demandes `AdminCreateUser` d'API. Cette fonctionnalité n’est pas disponible dans la console Amazon Cognito.
+ Spécifiez un mot de passe temporaire, créez un utilisateur sans mot de passe ou autorisez Amazon Cognito à générer automatiquement un mot de passe.
+ Créez de nouveaux utilisateurs et confirmez automatiquement leurs comptes, vérifiez leurs adresses e-mail ou leurs numéros de téléphone.
+ Spécifiez des SMS et des e-mails d'invitation personnalisés pour les nouveaux utilisateurs via les déclencheurs AWS Management Console ou Lambda, tels qu'[un message personnalisé, un](user-pool-lambda-custom-message.md) expéditeur de [SMS personnalisé et un expéditeur](user-pool-lambda-custom-sms-sender.md) d'[e-mail personnalisé](user-pool-lambda-custom-email-sender.md).
+ Spécifier si les messages d’invitation sont envoyés par SMS, e-mail ou les deux.
+ Renvoyer le message de bienvenue à un utilisateur existant en appelant l’API `AdminCreateUser`, en spécifiant `RESEND` pour le paramètre `MessageAction`.
+ [Supprimez](#admincreateuserwalkthrough-step-invitationmessage) l'envoi du message d'invitation lors de la création de l'utilisateur.
+ Spécifiez un délai d'expiration maximal de 90 jours pour les nouveaux comptes utilisateurs.
+ Permettre aux utilisateurs de s’inscrire ou exiger que les nouveaux utilisateurs soient uniquement ajoutés par l’administrateur.

Les administrateurs peuvent également connecter les utilisateurs à l'aide AWS d'informations d'identification dans une application côté serveur. Pour de plus amples informations, veuillez consulter [Modèles d'autorisation pour l'authentification par API et SDK](authentication-flows-public-server-side.md).

## Flux d'authentification des utilisateurs et création d'utilisateurs
<a name="how-to-create-user-accounts-flows"></a>

La création administrative d'utilisateurs comporte des options qui varient en fonction de la configuration de votre groupe d'utilisateurs. Les *flux d'authentification*, ou les méthodes mises à la disposition des utilisateurs pour la connexion et l'authentification MFA, peuvent modifier la façon dont vous créez les utilisateurs et les messages que vous leur envoyez. Voici quelques flux d'authentification disponibles dans les groupes d'utilisateurs.
+ Nom d’utilisateur et mot de passe
+ Clés d'accès
+ Connectez-vous avec un tiers IdPs
+ Sans mot de passe avec mots de passe à usage unique par e-mail et SMS () OTPs
+ Authentification multifactorielle par e-mail, SMS et application d'authentification OTPs
+ Authentification personnalisée avec des déclencheurs Lambda

Pour plus d'informations sur la configuration de ces facteurs de connexion, consultez[Authentification auprès des groupes d'utilisateurs Amazon Cognito](authentication.md).

## Créez des utilisateurs sans mot de passe
<a name="how-to-create-user-accounts-thingstoknow-passwordless"></a>

Si vous avez activé la connexion sans mot de passe pour votre groupe d'utilisateurs, vous pouvez créer des utilisateurs sans mot de passe. Pour créer un utilisateur sans mot de passe, vous devez fournir des valeurs d'attribut pour un facteur de connexion sans mot de passe disponible. Par exemple, si la connexion sans mot de passe OTP par e-mail est disponible dans votre groupe d'utilisateurs, vous pouvez créer un utilisateur sans mot de passe et avec un attribut d'adresse e-mail. Si les seuls flux d'authentification disponibles pour les nouveaux utilisateurs nécessitent un mot de passe, par exemple une clé d'accès ou un nom d'utilisateur-mot de passe, vous devez créer ou générer un mot de passe temporaire pour chaque nouvel utilisateur.

**Pour créer un nouvel utilisateur sans mot de passe**
+ Choisissez **Ne pas définir de mot de passe** dans la console Amazon Cognito
+ Omettez ou laissez vide le `TemporaryPassword` paramètre de votre demande d'`AdminCreateUser`API

**Les utilisateurs sans mot de passe sont automatiquement confirmés**  
Normalement, les nouveaux utilisateurs obtiennent un mot de passe temporaire et obtiennent un `FORCE_CHANGE_PASSWORD` statut lorsque vous les créez. Lorsque vous créez des utilisateurs sans mot de passe, ils entrent immédiatement dans un `CONFIRMED` état. Vous ne pouvez pas renvoyer de codes de confirmation à ces utilisateurs dans l'`CONFIRMED`État.

**Les messages d'invitation changent pour les utilisateurs sans mot de passe.**  
Par défaut, Amazon Cognito envoie un [message d'invitation](cognito-user-pool-settings-message-customizations.md#cognito-user-pool-settings-user-invitation-message-customization) aux nouveaux utilisateurs indiquant « `Your username is {userName} and your password is {####}.` Lorsque vous créez des utilisateurs sans mot de passe », le message indique « `Your username is {userName}.` Personnalisez votre message d'invitation » pour indiquer si vous allez définir des mots de passe pour les utilisateurs. Omettez la variable de `{####}` mot de passe dans les modèles d'authentification sans mot de passe.

**Vous ne pouvez pas générer automatiquement des mots de passe lorsque des facteurs sans mot de passe sont disponibles**  
Si vous avez configuré votre groupe d'utilisateurs pour prendre en charge la connexion sans mot de passe OTP par e-mail ou par téléphone, vous ne pouvez pas générer automatiquement de mot de passe. Pour chaque utilisateur qui aura un mot de passe, vous devez définir un mot de passe temporaire lors de la création de son profil.

**Les utilisateurs sans mot de passe doivent avoir des valeurs pour tous les attributs requis**  
Lorsque vous créez un utilisateur *sans* mot de passe, votre demande n'aboutit que si l'utilisateur fournit des valeurs pour tous les attributs que vous avez marqués comme obligatoires dans votre groupe d'utilisateurs. Cela s'applique à tous les attributs requis, et pas seulement au numéro de téléphone et aux attributs d'e-mail requis pour la livraison OTP.

## Création d'utilisateurs qui fourniront les valeurs d'attribut requises ultérieurement
<a name="how-to-create-user-accounts-thingstoknow-password-restrictions"></a>

Vous souhaiterez peut-être avoir besoin d'attributs dans votre groupe d'utilisateurs, mais collecter ces attributs après avoir créé des utilisateurs de manière administrative, lors de l'interaction des utilisateurs dans votre application. Les administrateurs peuvent omettre des valeurs pour les attributs obligatoires lorsqu'ils créent des utilisateurs *avec des mots de passe temporaires*. Vous ne pouvez pas omettre les valeurs d'attributs obligatoires pour les utilisateurs sans mot de passe.

Les utilisateurs dont les valeurs sont manquantes pour les attributs obligatoires et un mot de passe temporaire reçoivent un défi [NEW\$1PASSWORD\$1REQUIRED lors de leur première connexion.](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html#CognitoUserPools-RespondToAuthChallenge-request-ChallengeResponses) Ils peuvent ensuite fournir une valeur pour les attributs obligatoires manquants dans le `requiredAttributes` paramètre. Vous pouvez créer des utilisateurs avec des mots de passe et sans attributs obligatoires uniquement si tous les attributs requis sont [modifiables](user-pool-settings-attributes.md#user-pool-settings-custom-attributes). [Les utilisateurs ne peuvent terminer la connexion avec des `NEW_PASSWORD_REQUIRED` défis et des valeurs d'attributs obligatoires que si les attributs requis sont modifiables depuis le client d'application avec lequel ils se connectent.](user-pool-settings-client-apps.md#cognito-user-pools-app-idp-settings-about)

Lorsque vous définissez un mot de passe permanent pour un utilisateur créé par un administrateur, son statut change `CONFIRMED` et votre groupe d'utilisateurs ne l'invite pas à saisir un nouveau mot de passe *ou* à saisir les attributs requis lors de sa première connexion.

## Création d'un nouvel utilisateur dans AWS Management Console
<a name="creating-a-new-user-using-the-console"></a>

Vous pouvez définir les exigences relatives au mot de passe utilisateur, configurer les messages d’invitation et de vérification envoyés aux utilisateurs et ajouter de nouveaux utilisateurs avec la console Amazon Cognito.

### Définir une politique de mot de passe et activer l’auto-enregistrement
<a name="set-user-password-policy"></a>

Vous pouvez configurer les paramètres pour minimiser la complexité des mots de passe et indiquer si les utilisateurs peuvent s'inscrire en utilisant le mode public APIs dans votre groupe d'utilisateurs.

**Configurer une politique de mot de passe**

1. Accédez à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home), puis choisissez **Groupes d’utilisateurs**.

1. Choisissez un groupe d’utilisateurs existant dans la liste ou [créez-en un](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Choisissez le menu **Méthodes d'authentification** et recherchez la **politique de mot de passe**. Choisissez **Modifier**.

1. Choisissez un **Mode politique de mot de passe** sur **Personnalisé**.

1. Choisissez une **Longueur minimum du mot de passe**. Pour connaître les limites de la longueur de mot de passe requise, consultez [Quotas de ressources pour les groupes](https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html#limits-hard).

1. Choisissez une exigence de **Complexité pour le mot de passe**.

1. Choisissez la durée pendant laquelle le mot de passe défini par les administrateurs doit être valide.

1. Sélectionnez **Enregistrer les modifications**.

**Autoriser l’inscription en libre-service**

1. Accédez à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home), puis choisissez **Groupes d’utilisateurs**.

1. Choisissez un groupe d’utilisateurs existant dans la liste ou [créez-en un](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Choisissez le menu d'**inscription** et recherchez l'option d'inscription **en libre-service.** Tâche de sélection **Modifier**.

1. Choisissez si vous souhaitez **Activer l’auto-enregistrement**. L'auto-enregistrement est généralement utilisé avec les clients d'applications publiques qui doivent enregistrer de nouveaux utilisateurs dans votre groupe d'utilisateurs sans divulguer de secret client ou d'informations d'identification d'API Gestion des identités et des accès AWS (IAM).
**Désactivation de l’auto-enregistrement**  
Si vous n’activez pas l’auto-enregistrement, les nouveaux utilisateurs doivent être créés par des actions d’API administratives utilisant les informations d’identification d’API IAM ou en se connectant avec des fournisseurs fédérés.

1. Sélectionnez **Enregistrer les modifications**.

### Personnalisation des e-mails et SMS
<a name="creating-a-new-user-customize-messages"></a>

**Personnalisation des messages utilisateurs**

Vous pouvez personnaliser les messages qu’Amazon Cognito envoie à vos utilisateurs lorsque vous les invitez à se connecter, qu’ils s’inscrivent à un compte d’utilisateur ou qu’ils se connectent et sont invités à effectuer une authentification multifacteur (MFA).
**Note**  
Un **Message d’invitation** est envoyé lorsque vous créez un utilisateur dans votre groupe d’utilisateurs et invitez cet utilisateur à se connecter. Amazon Cognito envoie les informations de connexion initiales à l’adresse e-mail ou au numéro de téléphone de l’utilisateur.  
Un **Message de vérification** est envoyé lorsqu’un utilisateur s’inscrit à un compte utilisateur dans votre groupe d’utilisateurs. Amazon Cognito envoie un code à l’utilisateur. Lorsque l’utilisateur fournit le code à Amazon Cognito, il vérifie ses coordonnées et confirme la connexion de son compte. Les codes de vérification restent valables pendant 24 heures.  
Un **Message MFA** est envoyé lorsque vous activez SMS MFA dans votre groupe d’utilisateurs, et qu’un utilisateur qui a configuré SMS MFA se connecte et est invité à entrer MFA.

1. Accédez à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home), puis choisissez **Groupes d’utilisateurs**.

1. Choisissez un groupe d’utilisateurs existant dans la liste ou [créez-en un](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. **Choisissez le menu **Modèles de messages**, sélectionnez **Message de vérification**, **Message d'invitation** ou **message MFA**, puis choisissez Modifier.**

1. Personnalisez les messages pour le type de message choisi.
**Note**  
Toutes les variables des modèles de messages doivent être incluses lorsque vous personnalisez le message. Si la variable, par exemple **\$1\$1\$1\$1\$1\$1**, n’est pas inclus, votre utilisateur ne disposera pas d’informations suffisantes pour terminer l’action de message.  
Pour plus d’informations, consultez [Modèles de messages](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-message-templates.html).

1. 

   1. **Messages de vérification**

      1. Choisissez un **Type de vérification** pour les messages **e-mail**. Un **Code** de vérification transfère un code numérique que l’utilisateur doit entrer. Un **Lien** de vérification transfère un lien sur lequel l’utilisateur peut cliquer pour vérifier ses coordonnées. Le texte de la variable d’un **Lien** du message s’affiche sous forme de texte de lien hypertexte. Par exemple, un modèle de message utilisant la variable \$1\$1 \$1Click ici\$1\$1\$1 s’affiche sous la forme [Cliquez ici]() dans l’e-mail.

      1. Saisissez un **Objet de l’e-mail** pour les messages **e-mail**.

      1. Saisissez un modèle de **message e-mail** personnalisé pour des messages **e-mail**. Vous pouvez personnaliser ce modèle avec du code HTML.

      1. Saisissez une personnalisation pour modèle de **Message SMS** pour **SMS**.

      1. Sélectionnez **Enregistrer les modifications**.

   1. **Messages d’invitation**

      1. Saisissez un **Objet de l’e-mail** pour les messages **e-mail**.

      1. Saisissez un modèle de **message e-mail** personnalisé pour des messages **e-mail**. Vous pouvez personnaliser ce modèle avec du code HTML.

      1. Saisissez une personnalisation pour modèle de **Message SMS** pour **SMS**.

      1. Sélectionnez **Enregistrer les modifications**.

   1. **Messages MFA**

      1. Saisissez une personnalisation pour modèle de **Message SMS** pour **SMS**.

      1. Sélectionnez **Enregistrer les modifications**.

### Créez un utilisateur
<a name="creating-a-new-user-using-the-users-tab"></a>

**Créez un utilisateur**

Vous pouvez créer de nouveaux utilisateurs pour votre groupe d’utilisateurs à partir de la console Amazon Cognito. En règle générale, les utilisateurs peuvent se connecter après avoir défini un mot de passe. Pour se connecter avec une adresse e-mail ou un numéro de téléphone, un utilisateur doit vérifier l’attribut `email`. Pour se connecter avec un numéro de téléphone, l’utilisateur doit vérifier l’attribut `phone_number`. Pour confirmer les comptes en tant qu'administrateur, vous pouvez également utiliser l'API AWS CLI or ou créer des profils utilisateur auprès d'un fournisseur d'identité fédéré. Pour plus d’informations, consultez la rubrique [Référence d’API Amazon Cognito](https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/).

1. Accédez à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home), puis choisissez **Groupes d’utilisateurs**.

1. Choisissez un groupe d’utilisateurs existant dans la liste ou [créez-en un](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Choisissez le menu **Utilisateurs**, puis sélectionnez **Créer un utilisateur**.

1. Vérifiez l’option **User pool sign-in and security requirements** (Exigences de sécurité et de connexion au groupe d’utilisateurs) pour obtenir des conseils sur les exigences de mot de passe, les méthodes de récupération de compte disponibles et les attributs d’alias pour votre groupe d’utilisateurs.

1. <a name="admincreateuserwalkthrough-step-invitationmessage"></a>Choisissez comment envoyer un **message d’invitation**. Choisissez par SMS, par e-mail ou les deux. Pour supprimer le message d'invitation, choisissez **Ne pas envoyer d'invitation**.
**Note**  
Avant de pouvoir envoyer des messages d'invitation, configurez un expéditeur et un Région AWS avec Amazon Simple Notification Service et Amazon Simple Email Service dans le menu **Méthodes d'authentification** de votre groupe d'utilisateurs. Les tarifs des messages et des données du destinataire s’appliquent. Amazon SES facture séparément les e-mails et Amazon SNS facture séparément les SMS.

1. Choisissez un **Nom d’utilisateur** pour le nouvel utilisateur.

1. Choisissez si vous souhaitez **créer un mot de passe** ou autoriser Amazon Cognito à **générer un mot de passe** pour l’utilisateur. L'option permettant de générer un mot de passe n'est pas disponible si la [connexion sans mot](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless) de passe est disponible dans le groupe d'utilisateurs. Tout mot de passe temporaire doit respecter la politique de mot de passe du groupe d’utilisateurs.

1. Choisissez **Créer**.

1. Choisissez le menu **Utilisateurs** et choisissez le **nom d'utilisateur** de l'utilisateur. Ajoutez et modifiez des **User attributes** (Attributs utilisateur) et des **Group memberships** (Appartenances de groupe). Passez en revue l’**historique des événements d’utilisateur**.

# Ajout de groupes à un groupe d'utilisateurs
<a name="cognito-user-pools-user-groups"></a>

La prise en charge des groupes dans les groupes d'utilisateurs Amazon Cognito vous permet de créer et gérer des groupes, d'ajouter des utilisateurs à des groupes et de supprimer des utilisateurs de groupes. Utilisez des groupes pour créer des ensembles d'utilisateurs afin de gérer leurs autorisations ou de représenter différents types d'utilisateurs. Vous pouvez attribuer un rôle Gestion des identités et des accès AWS (IAM) à un groupe afin de définir les autorisations accordées aux membres d'un groupe.

Vous pouvez utiliser des groupes pour créer un ensemble d'utilisateurs dans un pool d'utilisateurs, ce qui est souvent effectué pour définir les autorisations pour ces utilisateurs. Par exemple, vous pouvez créer des groupes distincts pour les utilisateurs qui sont des lecteurs, des contributeurs et des éditeurs de votre site Web et de votre application. A l'aide du rôle IAM associé à un groupe, vous pouvez également définir des autorisations différentes pour ces différents groupes afin que seuls des contributeurs puissent placer des contenus dans Amazon S3, et que seuls des éditeurs puissent publier des contenus via une API dans Amazon API Gateway.

Amazon Cognito crée un groupe d'utilisateurs pour chaque OIDC et fournisseur SAMl d'[identité sociale (](cognito-user-pools-identity-federation.md#cognito-user-pools-identity-federation-how-it-works)IdP) que vous ajoutez à votre groupe d'utilisateurs. Le nom du groupe est au format`[user pool ID]_[IdP name]`, par exemple `us-east-1_EXAMPLE_MYSSO` ou`us-east-1_EXAMPLE_Google`. Chaque profil utilisateur IdP unique généré automatiquement est automatiquement ajouté à ce groupe. [Les utilisateurs liés](cognito-user-pools-identity-federation-consolidate-users.md) ne sont pas automatiquement ajoutés à ce groupe, mais vous pouvez ajouter leurs profils au groupe dans le cadre d'un processus distinct.

Vous pouvez créer et gérer des groupes dans un groupe d'utilisateurs à partir de la AWS Management Console CLI et de la CLI. APIs En tant que développeur (à l'aide des AWS informations d'identification), vous pouvez créer, lire, mettre à jour, supprimer et répertorier les groupes d'un groupe d'utilisateurs. Vous pouvez également ajouter et supprimer des utilisateurs dans des groupes.

L'utilisation de groupes au sein d'un pool d'utilisateurs n'entraîne aucun coût supplémentaire. Pour plus d'informations, consultez [Tarification Amazon Cognito](https://aws.amazon.com/cognito/pricing/).

## Attribution de rôles IAM à des groupes
<a name="assigning-iam-roles-to-groups"></a>

Vous pouvez utiliser des groupes pour contrôler les autorisations sur vos ressources à l'aide d'un rôle IAM. Les rôles IAM incluent des politiques d'approbation et des politiques d'autorisation. La politique [d'approbation](https://docs.aws.amazon.com/cognito/latest/developerguide/role-trust-and-permissions.html) de rôle spécifie qui peut utiliser le rôle. Les politiques [d'autorisations](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies) spécifient les actions et les ressources auxquelles les membres de votre groupe peuvent accéder. Lorsque vous créez un rôle IAM, configurez la politique de confiance du rôle pour permettre aux utilisateurs de votre groupe d'assumer le rôle. Dans les politiques d'autorisations de rôle, spécifiez les autorisations que vous souhaitez attribuer à votre groupe.

Lorsque vous créez un groupe dans Amazon Cognito, vous spécifiez un rôle IAM en fournissant l'[ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns)du rôle. Lorsque les membres du groupe se connectent à l'aide d'Amazon Cognito, ils peuvent recevoir des informations d'identification temporaires à partir des groupes d'identités. Leurs autorisations sont déterminées par le rôle IAM associé.

Des utilisateurs individuels peuvent appartenir à plusieurs groupes. En tant que développeur, vous disposez des options suivantes pour choisir automatiquement le rôle IAM lorsqu'un utilisateur appartient à plusieurs groupes :
+ Vous pouvez affecter des valeurs de priorité à chaque groupe. Le groupe prioritaire (valeur la plus faible) sera choisi et son rôle IAM associé sera appliqué. 
+ Votre application peut également choisir parmi les rôles disponibles lorsqu'elle demande les AWS informations d'identification d'un utilisateur via un pool d'identités, en spécifiant un ARN de rôle dans le [GetCredentialsForIdentity](https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html)`CustomRoleARN`paramètre. Le rôle IAM spécifié doit correspondre à un rôle qui est disponible pour l'utilisateur.

## Affectation de valeurs de priorité à des groupes
<a name="assigning-precedence-values-to-groups"></a>

Un utilisateur peut appartenir à plusieurs groupes. Dans les jetons d'accès et d'ID de l'utilisateur, la demande `cognito:groups` contient la liste de tous les groupes auxquels l'utilisateur appartient. La demande `cognito:roles` contient la liste des rôles correspondant aux groupes.

Comme un utilisateur peut appartenir à plusieurs groupes, une priorité peut être affectée à chaque groupe. Il s'agit d'un nombre non négatif qui spécifie la priorité de ce groupe par rapport à d'autres groupes auxquels un utilisateur appartient au sein du groupe d'utilisateurs. Zéro est la valeur de priorité la plus haute. Les groupes avec des valeurs de priorité plus faibles sont prioritaires par rapport aux groupes avec des valeurs de priorité plus élevées ou null. Si un utilisateur appartient à deux groupes ou plus, le groupe ayant la valeur de priorité la plus basse verra son rôle IAM appliqué à la `cognito:preferred_role` demande dans le jeton d'identification de l'utilisateur.

Deux groupes peuvent avoir la même valeur de priorité. Si cela se produit, aucun des deux groupes n'est prioritaire sur l'autre. Si deux groupes avec la même valeur de priorité ont le même ARN de rôle, ce rôle est utilisé dans la demande `cognito:preferred_role` dans les jetons d'ID pour les utilisateurs dans chaque groupe. Si les deux groupes ont un rôle différent ARNs, la `cognito:preferred_role` réclamation n'est pas définie dans les jetons d'identification des utilisateurs.

## Utilisation de groupes pour contrôler une autorisation avec Amazon API Gateway
<a name="using-groups-to-control-permission-with-amazon-api-gateway"></a>

Vous pouvez utiliser des groupes dans un groupe d'utilisateurs pour contrôler une autorisation avec Amazon API Gateway. Les groupes dont un utilisateur est un membre sont inclus dans le jeton d'ID et dans le jeton d'accès d'un groupe d'utilisateurs dans la demande `cognito:groups`. Vous pouvez soumettre un ID ou des jetons d'accès avec des demandes à Amazon API Gateway et utiliser un mécanisme d'autorisation de groupe d'utilisateurs Amazon Cognito pour une API REST. Pour plus d'informations, consultez [Contrôle de l'accès à une API REST à l'aide de groupes d'utilisateurs Amazon Cognito en tant que mécanisme d'autorisation](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html) dans le [Guide du développeur API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/).

Vous pouvez également autoriser l'accès à une API HTTP Amazon API Gateway avec un mécanisme d'autorisation JWT personnalisé. Pour plus d'informations, consultez la section [Contrôle de l'accès au protocole HTTP APIs avec les autorisateurs JWT](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html) dans le guide du [développeur d'API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/).

## Limitations sur les groupes
<a name="user-pool-user-groups-limitations"></a>

Les groupes d'utilisateurs sont soumis aux limitations suivantes :
+ Le nombre de groupes que vous pouvez créer est limité par les quotas du [service Amazon Cognito](quotas.md).
+ Les groupes ne peuvent pas être imbriqués.
+ Vous ne pouvez pas rechercher des utilisateurs dans un groupe.
+ Vous ne pouvez pas rechercher des groupes par nom, mais vous pouvez afficher les groupes.

## Création d'un nouveau groupe dans AWS Management Console
<a name="creating-a-new-group-using-the-console"></a>

Utilisez la procédure suivante pour créer un nouveau groupe.

**Pour créer un nouveau groupe.**

1. Accédez à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si vous y êtes invité, entrez vos AWS informations d'identification.

1. Choisissez **Groupes d'utilisateurs**.

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

1. Choisissez le menu **Groupes**, puis choisissez **Créer un groupe**.

1. Dans la page **Créez un groupe**, dans **Nom du groupe**, saisissez un nom convivial pour votre nouveau groupe.

1. Vous pouvez éventuellement fournir des informations supplémentaires sur ce groupe à l'aide de l'un des champs suivants :
   + **Description** – Saisissez des informations sur la raison pour laquelle ce nouveau groupe sera utilisé.
   + **Priorité** – Amazon Cognito évalue et applique toutes les autorisations de groupe pour un utilisateur donné en fonction des groupes auxquels il appartient a une valeur de priorité inférieure. Le groupe prioritaire sera choisi et son rôle IAM associé sera appliqué. Pour de plus amples informations, veuillez consulter [Affectation de valeurs de priorité à des groupes](#assigning-precedence-values-to-groups).
   + **Rôle IAM** – Vous pouvez attribuer un rôle IAM à votre groupe lorsque vous devez contrôler les autorisations sur vos ressources. Si vous intégrez un groupe d'utilisateurs à un groupe d'identités, le paramètre **IAM role (Rôle IAM)** détermine le rôle qui est attribué au jeton d'ID de l'utilisateur si le groupe d'identités est configuré pour choisir le rôle à partir du jeton. Pour de plus amples informations, veuillez consulter [Attribution de rôles IAM à des groupes](#assigning-iam-roles-to-groups).
   + **Ajoutez des utilisateurs au groupe** – Ajoutez des utilisateurs existants en tant que membres de ce groupe après sa création.

1. Choisissez **Créer** pour confirmer.

# Gestion et recherche de comptes d'utilisateur
<a name="how-to-manage-user-accounts"></a>

Les groupes d'utilisateurs peuvent contenir des millions d'utilisateurs. Travailler avec un ensemble de données de cette taille représente un défi pour les administrateurs. Amazon Cognito dispose d'outils permettant de rechercher et de modifier les profils utilisateur. Les meilleures méthodes pour trouver des utilisateurs sont le menu **Utilisateurs** de la console Amazon Cognito et avec. [ListUsers](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html) Parmi les méthodes permettant de récupérer des informations sur les utilisateurs, ce sont les options qui n'ont pas d'impact sur les coûts, contrairement à, par exemple, [AdminGetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminGetUser.html).

Cette section du guide contient des informations sur la recherche et la mise à jour de profils d'utilisateurs dans un groupe d'utilisateurs.

## Affichage des attributs utilisateur
<a name="manage-user-accounts-viewing-user-attributes"></a>

Utilisez la procédure suivante pour consulter les attributs d'un utilisateur dans la console Amazon Cognito.

**Pour consulter les attributs d'un utilisateur**

1. Accédez à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si vous y êtes invité, entrez vos AWS informations d'identification.

1. Choisissez **Groupes d'utilisateurs**.

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

1. Choisissez le menu **Utilisateurs** et sélectionnez un utilisateur dans la liste.

1. Sur la page des détails de l'utilisateur, sous **Attributs utilisateur**, vous pouvez voir quels attributs sont associés à l'utilisateur.

## Réinitialisation du mot de passe d'un utilisateur
<a name="manage-user-accounts-reset-user-password"></a>

Utilisez la procédure suivante pour réinitialiser le mot de passe d'un utilisateur dans la console Amazon Cognito.

**Pour réinitialiser le mot de passe d'un utilisateur**

1. Accédez à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si vous y êtes invité, entrez vos AWS informations d'identification.

1. Choisissez **Groupes d'utilisateurs**.

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

1. Choisissez le menu **Utilisateurs** et sélectionnez un utilisateur dans la liste.

1. Sur la page des détails de l'utilisateur, choisissez **Actions**, **Réinitialiser le mot de passe**.

1. Dans **Réinitialiser le mot de passe**, vérifiez les informations et, lorsque vous êtes prêt, choisissez **Réinitialiser**.

   Cette action entraîne immédiatement l'envoi d'un code de confirmation à l'utilisateur et désactive le mot de passe actuel de l'utilisateur en changeant l'état de l'utilisateur en `RESET_REQUIRED`. Le code de (**réinitialisation du mot de passe**) est valide pendant 1 heure.

## Activer, désactiver et supprimer des comptes utilisateurs
<a name="manage-user-accounts-enable-disable"></a>

Vous pouvez supprimer les profils utilisateur inutilisés ou, si vous souhaitez empêcher temporairement l'accès, les désactiver. Les utilisateurs peuvent supprimer leurs propres comptes, mais seuls les administrateurs du groupe d'utilisateurs peuvent activer et désactiver les comptes utilisateurs.

**Effet de la suppression**  
Les utilisateurs ne peuvent pas se connecter avec des comptes utilisateur supprimés et pour y accéder à nouveau, ils doivent s'inscrire ou être créés à nouveau.

**Effet de la désactivation des comptes**  
[Lorsque vous désactivez un compte utilisateur, Amazon Cognito invalide automatiquement toutes les sessions authentifiées, désactive le compte utilisateur pour la connexion et révoque ses jetons d'accès et d'actualisation.](token-revocation.md) Amazon Cognito renvoie un message `invalid_request` d'erreur `User is not enabled` lorsqu'un utilisateur essaie de se connecter à un compte que vous avez désactivé. Ce comportement ne change pas avec les [paramètres de divulgation de l'existence des utilisateurs](cognito-user-pool-managing-errors.md) pour le client de l'application. Vous pouvez désactiver les comptes utilisateurs locaux et les profils locaux des comptes utilisateurs fédérés. Lorsque les utilisateurs se connectent à l'aide de la connexion gérée ou de l'interface utilisateur hébergée classique, que vous désactivez leur compte, puis qu'ils essaient de se reconnecter avec le cookie du navigateur qui maintient leur session authentifiée, Amazon Cognito les redirige vers la page de connexion.

**Effet de l'activation des comptes**  
Les utilisateurs peuvent se connecter immédiatement aux comptes une fois que vous les avez activés. Les comptes utilisateurs sont activés par défaut. Les attributs et mots de passe des utilisateurs restent les mêmes qu'avant la désactivation de leur compte. Les jetons que votre application a révoqués, que vous ayez désactivé le compte utilisateur ou révoqué séparément le jeton d'actualisation, restent non valides une fois que vous avez activé le compte utilisateur qui détenait le jeton.

------
#### [ Delete a user account (console) ]

**Pour supprimer un compte utilisateur**

1. Accédez à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si vous y êtes invité, entrez vos AWS informations d'identification.

1. Choisissez **Groupes d'utilisateurs**.

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

1. Choisissez le menu **Utilisateurs** et sélectionnez le bouton radio à côté du nom d'utilisateur d'un utilisateur dans la liste.

1. Sélectionnez **Delete (Supprimer)**.

1. Choisissez **Désactiver l'accès utilisateur**.

1. Sélectionnez **Delete (Supprimer)**.

------
#### [ Delete a user account (API) ]

Les utilisateurs peuvent supprimer leurs comptes à l'aide de l' access-token-authorized[DeleteUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteUser.html)API en libre-service. Voici un exemple de corps de `DeleteUser` demande.

```
{
   "AccessToken": "eyJra456defEXAMPLE"
}
```

Les administrateurs peuvent supprimer des comptes utilisateurs à l'aide de l'opération d'[AdminDeleteUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminDeleteUser.html)API autorisée par l'IAM. Voici un exemple de corps de `AdminDeleteUser` demande.

```
{
   "Username": "testuser",
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

------
#### [ Disable a user account (console) ]

**Pour désactiver un compte utilisateur**

1. Accédez à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si vous y êtes invité, entrez vos AWS informations d'identification.

1. Choisissez **Groupes d'utilisateurs**.

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

1. Choisissez le menu **Utilisateurs** et sélectionnez le nom d'utilisateur d'un utilisateur dans la liste.

1. Sur la page des informations de l'utilisateur, choisissez **Actions**, **Désactiver l'accès utilisateur**.

1. Dans la boîte de dialogue créée, choisissez **Désactiver**.

------
#### [ Disable a user account (API) ]

Les administrateurs peuvent désactiver les comptes utilisateurs à l'aide de l'opération d'[AdminDisableUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminDisableUser.html)API autorisée par l'IAM. Voici un exemple de corps de `AdminDisableUser` demande.

```
{
   "Username": "testuser",
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

------
#### [ Enable a user account (console) ]

**Pour activer un compte utilisateur**

1. Accédez à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si vous y êtes invité, entrez vos AWS informations d'identification.

1. Choisissez **Groupes d'utilisateurs**.

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

1. Choisissez le menu **Utilisateurs** et sélectionnez le nom d'utilisateur d'un utilisateur dans la liste.

1. Sur la page des détails de l'utilisateur, choisissez **Actions**, **Activer l'accès utilisateur**.

1. Dans la boîte de dialogue que cela crée, choisissez **Activer**.

------
#### [ Enable a user account (API) ]

Les administrateurs peuvent activer les comptes utilisateurs avec l'opération d'[AdminEnableUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminEnableUser.html)API autorisée par l'IAM. Voici un exemple de corps de `AdminEnableUser` demande.

```
{
   "Username": "testuser",
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

------

## Recherche d'attributs utilisateur
<a name="manage-user-accounts-searching-user-attributes"></a>

Si vous avez déjà créé un groupe d'utilisateurs, vous pouvez effectuer des recherches dans le volet **Users (Utilisateurs)** d' AWS Management Console. Vous pouvez également utiliser l'[ListUsers API](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html) Amazon Cognito, qui accepte un paramètre de **filtre**.

Vous pouvez rechercher les attributs standard suivants, mais pas les attributs personnalisés.
+ username (sensible à la casse)
+ email
+ phone\$1number
+ name
+ given\$1name
+ family\$1name
+ preferred\$1username
+ cognito:user\$1status (appelé **Status** dans la console) (non sensible à la casse)
+ statut (appelé **Enabled** dans la console) (sensible à la casse)
+ sub

**Note**  
Vous pouvez également répertorier les utilisateurs avec un filtre côté client. Le filtre côté serveur ne correspond pas à plus d'un attribut. Pour la recherche avancée, utilisez un filtre côté client avec le `--query`paramètre de `list-users` dans le AWS Command Line Interface. Lorsque vous utilisez un filtre côté client, ListUsers renvoie une liste paginée de zéro utilisateur ou plus. Vous pouvez recevoir plusieurs pages consécutives ne contenant aucun résultat. Répétez la requête avec chaque jeton de pagination renvoyé jusqu'à ce que vous receviez une valeur de jeton de pagination NULL, puis passez en revue le résultat combiné.  
Pour plus d'informations sur le filtrage côté serveur et côté client, consultez la section Filtrage de la [AWS CLI sortie dans le guide](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-filter.html) de l'utilisateur. AWS Command Line Interface 

## Recherche d'utilisateurs à l'aide du AWS Management Console
<a name="cognito-user-pools-manage-user-accounts-searching-for-users-using-console"></a>

Si vous avez déjà créé un groupe d'utilisateurs, vous pouvez effectuer des recherches dans le volet **Users (Utilisateurs)** d' AWS Management Console.

AWS Management Console les recherches sont toujours des recherches par préfixe (« commence par »).

**Pour rechercher un utilisateur dans la console Amazon Cognito**

1. Accédez à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Il se peut que vous soyez invité à saisir vos AWS informations d'identification.

1. Choisissez **Groupes d'utilisateurs**.

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

1. Choisissez le menu **Utilisateurs** et entrez le nom d'utilisateur dans le champ de recherche. Notez que certaines valeurs d'attribut sont sensibles à la casse (**Nom d'utilisateur**, par exemple).

   Vous pouvez également trouver des utilisateurs en ajustant le filtre de recherche pour réduire le périmètre aux autres propriétés de l'utilisateur, comme **Adresse de messagerie**, **Numéro de téléphone**, ou **Nom**.

## Recherche d'utilisateurs via l'API `ListUsers`
<a name="cognito-user-pools-searching-for-users-using-listusers-api"></a>

 [Pour rechercher des utilisateurs depuis votre application, utilisez l'API Amazon CognitoListUsers .](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html) Cette API utilise les paramètres suivants : 
+  `AttributesToGet` : tableau de chaînes, où chaque chaîne correspond au nom d'un attribut à renvoyer pour chaque utilisateur dans les résultats de recherche. Pour récupérer tous les attributs, n'incluez pas de paramètre `AttributesToGet` ni de demande `AttributesToGet` avec une valeur de la chaîne littérale `null`.
+  `Filter` : chaîne de filtrage représentée sous la forme "`AttributeName` `Filter-Type` "`AttributeValue`"". Les guillemets utilisés dans la chaîne de filtrage doivent être précédés d'une barre oblique inverse (`\`). Par exemple, `"family_name = \"Reddy\""`. Si la chaîne de filtrage est vide, `ListUsers` renvoie tous les utilisateurs du groupe. 
  +  `AttributeName` : nom de l'attribut à rechercher. Vous pouvez uniquement rechercher un attribut à la fois. 
**Note**  
Vous pouvez ne rechercher que des attributs standard. mais pas les attributs personnalisés. La raison en est que seuls les attributs indexés peuvent être explorés et que les attributs personnalisés ne peuvent pas être indexés.
  +  `Filter-Type` : pour une correspondance exacte, utilisez `=` (par exemple, `given_name = "Jon"`). Pour une correspondance sur le préfixe (« commence par »), utilisez `^=` (par exemple, `given_name ^= "Jon"`). 
  +  `AttributeValue` : valeur d'attribut qui doit correspondre pour chaque utilisateur.
+  `Limit` : nombre maximum d'utilisateurs à renvoyer.
+  `PaginationToken` : jeton permettant d'obtenir plus de résultats à partir d'une recherche précédente. Amazon Cognito fait expirer le jeton de pagination au bout d'une heure.
+  `UserPoolId` : ID du groupe d'utilisateurs sur lequel la recherche doit porter.

Toutes les recherches sont sensible à la casse. Les résultats de recherche sont triés en fonction de l'attribut dénommé par la chaîne `AttributeName`, dans l'ordre croissant.

## Exemples d'utilisation de l'API `ListUsers`
<a name="cognito-user-pools-searching-for-users-listusers-api-examples"></a>

L'exemple suivant renvoie tous les utilisateurs et inclut tous les attributs.

```
{
    "AttributesToGet": null,
    "Filter": "",
    "Limit": 10,
    "UserPoolId": "us-east-1_samplepool"
}
```

L'exemple suivant renvoie tous les utilisateurs dont le numéro de téléphone commence par « \$11312 », et inclut tous les attributs.

```
{
    "AttributesToGet": null,
    "Filter": "phone_number ^= \"+1312\"",
    "Limit": 10,
    "UserPoolId": "us-east-1_samplepool"
}
```

L'exemple suivant retourne les 10 premiers utilisateurs dont le nom de famille est « Reddy ». Pour chaque utilisateur, les résultats de recherche incluent son nom, son numéro de téléphone et son adresse e-mail. Si le groupe d'utilisateurs compte plus de 10 utilisateurs correspondants, la réponse inclut un jeton de pagination.

```
{
    "AttributesToGet": [
        "given_name", 
        "phone_number", 
        "email"
    ],
    "Filter": "family_name = \"Reddy\"",
    "Limit": 10,
    "UserPoolId": "us-east-1_samplepool"
}
```

Si l'exemple précédent renvoie un jeton de pagination, l'exemple suivant renvoie les 10 utilisateurs suivants qui correspondent à la même chaîne de filtrage.

```
{
    "AttributesToGet": [
        "given_name", 
        "phone_number", 
        "email"
    ],
    "Filter": "family_name = \"Reddy\"",
    "Limit": 10,
    "PaginationToken": "pagination_token_from_previous_search",
    "UserPoolId": "us-east-1_samplepool"
}
```

# Mots de passe, récupération de compte et politiques relatives aux mots de passe
<a name="managing-users-passwords"></a>

Tous les utilisateurs qui se connectent à un groupe d'utilisateurs, même [les utilisateurs fédérés](cognito-terms.md#terms-federateduser), ont un mot de passe attribué à leur profil utilisateur. [Les utilisateurs locaux](cognito-terms.md#terms-localuser) et [les utilisateurs liés](cognito-terms.md#terms-linkeduser) doivent fournir un mot de passe lorsqu'ils se connectent. Les utilisateurs fédérés n'utilisent pas les mots de passe des groupes d'utilisateurs, mais se connectent avec leur fournisseur d'identité (IdP). Vous pouvez autoriser les utilisateurs à réinitialiser leurs propres mots de passe, à réinitialiser ou à modifier des mots de passe en tant qu'administrateur, et à [définir des politiques relatives](#user-pool-settings-policies) à la complexité et à l'historique des mots de passe.

Amazon Cognito ne stocke pas les mots de passe des utilisateurs en texte brut. Il stocke plutôt un hachage du mot de passe de chaque utilisateur avec un sel spécifique à l'utilisateur. De ce fait, vous ne pouvez pas récupérer les mots de passe existants dans les profils utilisateur de vos groupes d'utilisateurs. Il est recommandé de ne pas stocker les mots de passe utilisateur en texte brut où que ce soit. Réinitialisez les mots de passe lorsque les utilisateurs oublient leur mot de passe.

## Réinitialisation et récupération du mot de passe
<a name="user-pool-password-reset-and-recovery"></a>

Les utilisateurs oublient leurs mots de passe. Vous souhaiterez peut-être qu'ils puissent réinitialiser leur mot de passe eux-mêmes, ou vous pouvez demander à un administrateur de réinitialiser leur mot de passe pour eux. Les groupes d'utilisateurs d'Amazon Cognito proposent des options pour les deux modèles. Cette partie du guide couvre les paramètres du groupe d'utilisateurs et les opérations de l'API pour la réinitialisation du mot de passe.

Le fonctionnement de l'[ForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html)API et l'option de connexion gérée **Vous avez oublié votre mot de passe ?** envoyer aux utilisateurs un code qui, lorsqu'ils confirment qu'ils ont le bon code, leur donne la possibilité de définir un nouveau mot de passe [ConfirmForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmForgotPassword.html). Il s'agit du modèle de récupération de mot de passe en libre-service.

**Récupération des utilisateurs non vérifiés**  
Vous pouvez envoyer des messages de récupération aux utilisateurs qui ont vérifié leur adresse e-mail ou leur numéro de téléphone. S'ils n'ont pas d'e-mail ou de téléphone de récupération confirmé, un administrateur du groupe d'utilisateurs peut marquer leur adresse e-mail ou leur numéro de téléphone comme étant vérifiés. Modifiez les **attributs utilisateur de l'utilisateur** dans la console Amazon Cognito et cochez la case à côté de **Marquer le numéro de téléphone comme vérifié** ou **Marquer l'adresse e-mail** comme vérifiée. Vous pouvez également définir `email_verified` ou `phone_number_verified` définir la valeur true dans une [AdminUpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html)demande. Pour les nouveaux utilisateurs, l'opération [ResendConfirmationCode](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ResendConfirmationCode.html)API envoie un nouveau code à leur adresse e-mail ou à leur numéro de téléphone et ils peuvent effectuer une confirmation et une vérification en libre-service.

**Réinitialisation des mots de passe en tant qu'administrateur**  
Les opérations [AdminSetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html)et [AdminResetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminResetUserPassword.html)API sont les méthodes initiées par l'administrateur pour réinitialiser le mot de passe. `AdminSetUserPassword`définit un mot de passe temporaire ou permanent et `AdminResetUserPassword` envoie aux utilisateurs un code de réinitialisation du mot de passe de la même manière que. `ForgotPassword`

### Configurer la réinitialisation et la récupération du mot de passe
<a name="user-pool-password-reset-and-recovery-configure"></a>

Amazon Cognito sélectionne automatiquement les options de restauration de votre compte parmi les attributs requis et les options de connexion que vous choisissez lorsque vous créez un groupe d'utilisateurs dans la console. Vous pouvez modifier ces paramètres par défaut.

La méthode MFA préférée d'un utilisateur influence les méthodes qu'il peut utiliser pour récupérer son mot de passe. Les utilisateurs dont le MFA préféré est envoyé par e-mail ne peuvent pas recevoir de code de réinitialisation de mot de passe par e-mail. Les utilisateurs dont le MFA préféré est envoyé par SMS ne peuvent pas recevoir de code de réinitialisation de mot de passe par SMS.

Vos paramètres [de récupération de mot de passe](#user-pool-password-reset-and-recovery) doivent fournir une autre option lorsque les utilisateurs ne sont pas éligibles à votre méthode de réinitialisation de mot de passe préférée. Par exemple, vos mécanismes de restauration peuvent avoir le courrier électronique comme priorité absolue et l'authentification MFA par e-mail peut être une option dans votre groupe d'utilisateurs. Dans ce cas, ajoutez la récupération des comptes par SMS comme deuxième option ou utilisez les opérations d'API d'administration pour réinitialiser les mots de passe de ces utilisateurs.

Amazon Cognito répond aux demandes de réinitialisation de mot de passe des utilisateurs qui ne disposent pas d'une méthode de restauration valide en envoyant une réponse d'erreur. `InvalidParameterException`

**Note**  
Les utilisateurs ne peuvent pas recevoir le MFA et les codes de réinitialisation de mot de passe à la même adresse e-mail ou au même numéro de téléphone. S'ils utilisent des mots de passe à usage unique (OTPs) contenus dans des e-mails pour la MFA, ils doivent utiliser des SMS pour récupérer leur compte. S'ils utilisent OTPs des messages SMS pour le MFA, ils doivent utiliser des e-mails pour récupérer leur compte. Dans les groupes d'utilisateurs dotés de l'authentification multifacteur, les utilisateurs peuvent ne pas être en mesure de récupérer leur mot de passe en libre-service s'ils possèdent des attributs pour leur adresse e-mail mais pas de numéro de téléphone, ou s'ils ont un numéro de téléphone sans adresse e-mail.  
Pour éviter que les utilisateurs ne puissent pas réinitialiser leur mot de passe dans les groupes d'utilisateurs avec cette configuration, définissez les `phone_number` [attributs `email` et selon les besoins](user-pool-settings-attributes.md). Vous pouvez également configurer des processus qui collectent et définissent toujours ces attributs lorsque les utilisateurs s'inscrivent ou lorsque vos administrateurs créent des profils utilisateur. Lorsque les utilisateurs possèdent les deux attributs, Amazon Cognito envoie automatiquement des codes de réinitialisation de mot de passe à la destination qui ne correspond pas au facteur MFA de *l'*utilisateur.

La procédure suivante permet de configurer la restauration de comptes en libre-service dans un groupe d'utilisateurs.

------
#### [ Configure self-service password reset (API/SDK) ]

Le `AccountRecoverySetting` paramètre est le paramètre du groupe d'utilisateurs qui définit les méthodes que les utilisateurs peuvent utiliser pour récupérer leur mot de passe dans les demandes d'[ForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html)API ou lorsqu'ils sélectionnent **Mot de passe oublié ?** dans la connexion gérée. `ForgotPassword`envoie un code de récupération à une adresse e-mail ou à un numéro de téléphone vérifié. Le code de récupération reste valide pendant une heure. Lorsque vous spécifiez un [AccountRecoverySetting](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AccountRecoverySettingType.html) pour votre groupe d'utilisateurs, Amazon Cognito choisit la destination de livraison de code en fonction de la priorité que vous avez définie.

Lorsque vous définissez `AccountRecoverySetting` et qu'un utilisateur a configuré SMS MFA, SMS ne peut pas être utilisé comme mécanisme de récupération de compte. La priorité de ce paramètre est déterminée `1` comme étant de la plus haute priorité. Amazon Cognito envoie une vérification uniquement à l'une des méthodes spécifiées. L'exemple suivant `AccountRecoverySetting` définit les adresses e-mail comme destination principale pour les codes de récupération de compte, en revenant aux SMS si l'utilisateur ne possède pas d'attribut d'adresse e-mail.

```
"AccountRecoverySetting": { 
   "RecoveryMechanisms": [ 
      { 
         "Name": "verified_email",
         "Priority": 1
      },
      { 
         "Name": "verified_phone_number",
         "Priority": 2
      }
   ]
}
```

Cette valeur `admin_only` désactive la restauration des comptes en libre-service et oblige les utilisateurs à contacter leur administrateur pour réinitialiser leur mot de passe. Vous ne pouvez pas utiliser `admin_only` avec aucun autre mécanisme de récupération de compte. Le e suivant

```
"AccountRecoverySetting": { 
   "RecoveryMechanisms": [ 
      { 
         "Name": "admin_only",
         "Priority": 1
      }
   ]
}
```

Si vous ne le spécifiez pas`AccountRecoverySetting`, Amazon Cognito envoie d'abord le code de récupération à un numéro de téléphone vérifié, puis à une adresse e-mail vérifiée si les utilisateurs n'ont pas d'attribut de numéro de téléphone.

Pour plus d’informations sur `AccountRecoverySetting`, consultez [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html) et [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html).

------
#### [ Configure self-service password reset (console) ]

Configurez les options de restauration du compte et de réinitialisation du mot de passe dans le menu de **connexion** de votre groupe d'utilisateurs.

**Pour configurer la restauration du compte utilisateur**

1. Connectez-vous à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home).

1. Choisissez **Groupes d’utilisateurs**.

1. Choisissez un groupe d’utilisateurs existant dans la liste ou [créez-en un](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Choisissez le menu **de connexion**. Localisez la **restauration du compte utilisateur** et choisissez **Modifier**

1. Pour permettre aux utilisateurs de réinitialiser leurs propres mots de passe, choisissez **Activer la restauration des comptes en libre-service**.

1. Configurez le mode de livraison des codes de récupération de mot de passe que votre groupe d'utilisateurs envoie aux utilisateurs. Sous **Mode de livraison pour les messages de récupération du compte utilisateur**, sélectionnez une option disponible. Il est recommandé de choisir une option comportant une méthode secondaire pour envoyer des messages, par exemple le **courrier électronique si disponible, sinon le SMS**. Avec un mode de livraison secondaire, Amazon Cognito peut envoyer des codes aux utilisateurs d'une manière qui les oblige à utiliser un support différent pour la réinitialisation du mot de passe que pour le MFA.

1. Cliquez sur **Enregistrer les modifications**.

------

### Comportement en cas d'oubli de mot de passe
<a name="forgot-password"></a>

Au cours d'une heure donnée, nous autorisons entre 5 et 20 tentatives pour qu'un utilisateur demande ou saisisse un code de réinitialisation de mot de passe dans le cadre d'une action ou d'un mot de passe oublié. confirm-forgot-password La valeur exacte dépend des paramètres de risque associés aux demandes. Veuillez noter que ce comportement est sujet à changement. 

## Ajout d’exigences de mot de passe pour un groupe d’utilisateurs
<a name="user-pool-settings-policies"></a>

Les mots de passe forts et complexes constituent une bonne pratique de sécurité pour votre groupe d'utilisateurs. En particulier dans les applications ouvertes sur Internet, les mots de passe faibles peuvent exposer les informations d'identification de vos utilisateurs à des systèmes qui devinent les mots de passe et tentent d'accéder à vos données. Plus un mot de passe est complexe, plus il est difficile à deviner. Amazon Cognito propose des outils supplémentaires pour les administrateurs soucieux de la sécurité, tels que la [protection contre les menaces](cognito-user-pool-settings-threat-protection.md#cognito-user-pool-settings-threat-protection.title) et le [AWS WAF Web ACLs](user-pool-waf.md#user-pool-waf.title), mais votre politique en matière de mots de passe est un élément central de la sécurité de votre annuaire d'utilisateurs.

Les mots de passe des utilisateurs locaux des groupes d’utilisateurs Amazon Cognito n’expirent pas automatiquement. Il est recommandé de consigner l'heure, la date et les métadonnées des réinitialisations du mot de passe utilisateur dans un système externe. Avec un journal externe de l'ancienneté du mot de passe, votre application ou un déclencheur Lambda peut rechercher l'âge du mot de passe d'un utilisateur et nécessiter une réinitialisation après une période donnée.

Vous pouvez configurer votre groupe d'utilisateurs pour exiger une complexité minimale des mots de passe conforme à vos normes de sécurité. Les mots de passe complexes ont une longueur minimale de huit caractères. Ils incluent également un mélange de majuscules, de chiffres et de caractères spéciaux.

Avec les niveaux de fonctionnalités Essentials ou Plus, vous pouvez également définir une politique de réutilisation des mots de passe. Vous pouvez empêcher un utilisateur de réinitialiser son mot de passe en utilisant un nouveau mot de passe correspondant à son mot de passe actuel ou à l'un des 23 mots de passe précédents, pour un total maximum de 24.

**Pour configurer une politique de mot de passe pour un groupe d’utilisateurs**

1. Créez un groupe d'utilisateurs et accédez à l'étape **Configurer les exigences de sécurité**, ou accédez à un groupe d'utilisateurs existant et accédez au menu **Méthodes d'authentification**.

1. Accédez à la **Stratégie de mot de passe**.

1. Choisissez un **Mode de stratégie de mot de passe**. **Valeurs par défaut de Cognito** configure votre groupe d’utilisateurs avec les paramètres minimaux recommandés. Vous pouvez également choisir une politique de mot de passe **personnalisée**.

1. Configurez une **Longueur minimum du mot de passe**. Tous les utilisateurs doivent s’inscrire ou être créés avec un mot de passe dont la longueur est supérieure ou égale à cette valeur. Vous pouvez définir cette valeur minimale jusqu’à 99, mais vos utilisateurs peuvent définir des mots de passe d’une longueur maximale de 256 caractères.

1. Configurez les règles de complexité des mots de passe sous **Exigences relatives au mot de passe**. Choisissez les types de caractères (chiffres, caractères spéciaux, lettres majuscules et minuscules) que vous souhaitez exiger (au moins un) dans le mot de passe de chaque utilisateur.

   Vous pouvez exiger au moins l'un des caractères suivants dans les mots de passe. Une fois qu'Amazon Cognito a vérifié que les mots de passe contiennent le minimum de caractères requis, les mots de passe de vos utilisateurs peuvent contenir des caractères supplémentaires de n'importe quel type, jusqu'à la longueur maximale du mot de passe.
   + Lettres [latines de base](https://en.wikipedia.org/wiki/ISO_basic_Latin_alphabet) majuscules et minuscules
   + Nombres
   + Les caractères spéciaux suivants.

     ```
     ^ $ * . [ ] { } ( ) ? " ! @ # % & / \ , > < ' : ; | _ ~ ` = + - 
     ```
   + Caractères espace ni au début ni à la fin.

1. Définissez une valeur pour **Les mots de passe temporaires définis par les administrateurs expirent dans**. Une fois ce délai écoulé, un nouvel utilisateur que vous avez créé dans la console Amazon Cognito ou avec `AdminCreateUser` ne peut pas se connecter ni définir un nouveau mot de passe. Une fois qu’ils se sont connectés avec leur mot de passe temporaire, leur compte utilisateur n’expire jamais. Pour mettre à jour la durée du mot de passe dans l'API des groupes d'utilisateurs Amazon Cognito, définissez une valeur pour [TemporaryPasswordValidityDays ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_PasswordPolicyType.html#CognitoUserPools-Type-PasswordPolicyType-TemporaryPasswordValidityDays)dans votre demande [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)ou dans votre demande d'[UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)API.

1. Définissez une valeur pour **Empêcher l'utilisation des mots de passe précédents**, si disponible. Pour utiliser cette fonctionnalité, choisissez le [niveau de fonctionnalité](cognito-sign-in-feature-plans.md) Essentials ou Plus dans votre groupe d'utilisateurs. La valeur de ce paramètre est le nombre de mots de passe précédents auxquels un nouveau mot de passe ne peut pas correspondre lorsqu'un utilisateur réinitialise son mot de passe.

Pour réinitialiser l'accès à un compte utilisateur expiré, effectuez l'une des opérations suivantes :
+ Envoyez un nouveau mot de passe temporaire et réinitialisez le délai d'expiration avec une demande d'[AdminCreateUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html)API `MessageAction` définie sur`RESEND`.
+ Supprimez le profil utilisateur et créez-en un nouveau.
+ Générez un nouveau code de confirmation dans une demande d'[AdminResetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminResetUserPassword.html)API.

# Importation d'utilisateurs dans un groupe d'utilisateurs
<a name="cognito-user-pools-import-users"></a>

Il existe deux façons d'importer ou de migrer des utilisateurs à partir de votre répertoires d'utilisateurs ou de votre base de données d'utilisateurs existants vers des groupes d'utilisateurs Amazon Cognito. Vous pouvez migrer les utilisateurs lorsqu'ils se connectent à l'aide d'Amazon Cognito pour la première fois. Pour ce faire, utilisez un déclencheur Lambda Migration d'utilisateur. Avec cette approche, les utilisateurs peuvent continuer à utiliser leurs mots de passe. Ils ne devront pas les réinitialiser à l'issue de la migration vers votre groupe d'utilisateurs. Vous pouvez également migrer des utilisateurs en masse en chargeant un fichier CSV contenant les attributs de profil de tous les utilisateurs. Les sections suivantes décrivent ces deux approches.

**Ressources supplémentaires**
+ [Approches de migration des utilisateurs vers les groupes d'utilisateurs Amazon Cognito](https://aws.amazon.com/blogs/security/approaches-for-migrating-users-to-amazon-cognito-user-pools/)
+ [AWS Re:inForce 2023 - Migration vers Amazon Cognito](https://www.youtube.com/watch?v=OkDj9uXWwCc)

**Topics**
+ [Importation d'utilisateurs avec un déclencheur Lambda de migration d'utilisateur](cognito-user-pools-import-using-lambda.md)
+ [Importation d'utilisateurs dans des groupes d'utilisateurs depuis un fichier CSV](cognito-user-pools-using-import-tool.md)

# Importation d'utilisateurs avec un déclencheur Lambda de migration d'utilisateur
<a name="cognito-user-pools-import-using-lambda"></a>

Cette approche vous permet de migrer en toute transparence des utilisateurs de votre répertoire utilisateur existant vers des groupes d'utilisateurs quand ces utilisateurs se connectent pour la première fois avec votre application ou demandent la réinitialisation de leur mot de passe. Ajoutez une fonction [Déclencheur Lambda de migration d'utilisateur](user-pool-lambda-migrate-user.md) dans votre groupe d'utilisateurs pour qu'elle reçoive des métadonnées sur les utilisateurs qui tentent de se connecter et renvoie les informations de profil utilisateur à partir d'une source d'identité externe. Pour obtenir plus d'informations et un exemple de code pour ce déclencheur Lambda, y compris les paramètres de demande et de réponse, consultez [Paramètres du déclencheur Lambda Migration d'utilisateur](user-pool-lambda-migrate-user.md#cognito-user-pools-lambda-trigger-syntax-user-migration).

Avant de commencer à migrer des utilisateurs, créez une fonction Lambda de migration d'utilisateur dans votre Compte AWS et définissez cette fonction Lambda comme déclencheur de migration d'utilisateur dans votre groupe d'utilisateurs . Ajoutez une politique d'autorisation à votre fonction Lambda pour autoriser uniquement le principal du compte de service Amazon Cognito,`cognito-idp.amazonaws.com`, à appeler la fonction Lambda, et cela uniquement dans le contexte de votre propre groupe d'utilisateurs. Pour plus d'informations, consultez [Utilisation de stratégies basées sur les ressources pour AWS Lambda (stratégies de fonction Lambda)](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html). 

**Processus de connexion**

1. L'utilisateur ouvre votre application et se connecte à l'aide de l'API des groupes d'utilisateurs Amazon Cognito ou via une connexion gérée. Pour plus d'informations sur la manière de faciliter la connexion avec Amazon APIs Cognito, consultez. [Intégration de l'authentification et de l'autorisation Amazon Cognito avec des applications Web et mobiles](cognito-integrate-apps.md)

1. Votre application envoie le nom d'utilisateur et le mot de passe à Amazon Cognito. Si votre application possède une interface utilisateur de connexion personnalisée que vous avez créée à l'aide d'un AWS SDK, elle doit utiliser [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)ou utiliser le [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)flux `USER_PASSWORD_AUTH` ou`ADMIN_USER_PASSWORD_AUTH`. Lorsque votre application utilise l'un de ces flux, le kit SDK envoie le mot de passe au serveur.
**Note**  
Avant d'ajouter un déclencheur de migration d'utilisateur, activez le flux `USER_PASSWORD_AUTH` ou `ADMIN_USER_PASSWORD_AUTH` dans les paramètres de votre client d'application. Vous devez utiliser ces flux à la place du flux `USER_SRP_AUTH` par défaut. Amazon Cognito doit envoyer un mot de passe à votre fonction Lambda afin qu'elle puisse vérifier l'authentification de votre utilisateur dans l'autre répertoire. Le protocole SRP occulte le mot de passe de votre utilisateur de votre fonction Lambda.

1. Amazon Cognito vérifie si le nom d'utilisateur soumis correspond à un nom d'utilisateur ou à un alias dans le groupe d'utilisateurs. Vous pouvez définir l'adresse e-mail, le numéro de téléphone ou le nom d'utilisateur préféré de l'utilisateur comme alias dans votre groupe d'utilisateurs. Si l'utilisateur n'existe pas, Amazon Cognito envoie des paramètres, y compris le nom d'utilisateur et le mot de passe, à votre fonction [Déclencheur Lambda de migration d'utilisateur](user-pool-lambda-migrate-user.md).

1. Votre fonction [Déclencheur Lambda de migration d'utilisateur](user-pool-lambda-migrate-user.md) vérifie ou authentifie l'utilisateur avec votre répertoire utilisateur existant ou votre base de données utilisateur existante. La fonction renvoie les attributs utilisateur qu'Amazon Cognito stocke dans le profil de l'utilisateur dans le groupe d'utilisateurs. Vous pouvez renvoyer un paramètre `username` seulement si le nom d'utilisateur soumis correspond à un attribut d'alias. Si vous souhaitez que les utilisateurs continuent d'utiliser leurs mots de passe existants, votre fonction définit l'attribut `finalUserStatus` sur `CONFIRMED` dans la réponse Lambda. Votre application doit renvoyer tous les paramètres `"response"` présentés dans [Paramètres du déclencheur Lambda Migration d'utilisateur](user-pool-lambda-migrate-user.md#cognito-user-pools-lambda-trigger-syntax-user-migration).
**Important**  
Ne consignez pas l'objet d'événement de demande entier dans votre code Lambda de migration d'utilisateur. Cet objet d'événement de demande inclut le mot de passe de l'utilisateur. Si vous ne nettoyez pas les journaux, les mots de passe apparaissent dans les CloudWatch journaux.

1. Amazon Cognito crée le profil utilisateur dans votre groupe d'utilisateurs et renvoie les jetons à votre client d'application.

1. Votre application récupère les jetons, accepte l'authentification utilisateur et passe au contenu demandé.

Après avoir migré vos utilisateurs, utilisez `USER_SRP_AUTH` pour la connexion. Le protocole SRP (Secure Remote Password) n'envoie pas le mot de passe sur le réseau et présente des avantages de sécurité par rapport au flux `USER_PASSWORD_AUTH` que vous utilisez durant la migration.

En cas d'erreurs pendant la migration, y compris des problèmes liés à l'appareil client ou au réseau, votre application reçoit des réponses d'erreur de l'API des groupes d'utilisateurs Amazon Cognito. Dans ce cas, Amazon Cognito peut créer ou non le compte d'utilisateur dans votre groupe d'utilisateurs. L'utilisateur doit ensuite tenter de se connecter à nouveau. En cas d'échec répété de la connexion, essayez de réinitialiser le mot de passe de l'utilisateur avec le flux de mot de passe oublié dans votre application. 

Le flux de mot de passe oublié appelle également votre fonction [Déclencheur Lambda de migration d'utilisateur](user-pool-lambda-migrate-user.md) avec une source d'événement `UserMigration_ForgotPassword`. Comme l'utilisateur ne soumet pas de mot de passe lorsqu'il demande une réinitialisation de mot de passe, Amazon Cognito n'inclut pas de mot de passe dans l'événement envoyé à votre fonction Lambda. Votre fonction peut uniquement rechercher l'utilisateur dans votre répertoire utilisateur existant et renvoyer les attributs à ajouter au profil utilisateur dans votre groupe d'utilisateurs. Une fois que votre fonction a terminé son invocation et a renvoyé sa réponse à Amazon Cognito, votre groupe d'utilisateurs envoie un code de réinitialisation du mot de passe par e-mail ou par SMS. Dans votre application, demandez à votre utilisateur de saisir son code de confirmation et un nouveau mot de passe, puis envoyez ces informations à Amazon Cognito dans le cadre d'une demande d'[ConfirmForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmForgotPassword.html)API. Vous pouvez également utiliser les pages intégrées pour le flux de mots de passe oubliés dans la connexion gérée.

**Ressources supplémentaires**
+ [Approches de migration des utilisateurs vers les groupes d'utilisateurs Amazon Cognito](https://aws.amazon.com/blogs/security/approaches-for-migrating-users-to-amazon-cognito-user-pools/)

# Importation d'utilisateurs dans des groupes d'utilisateurs depuis un fichier CSV
<a name="cognito-user-pools-using-import-tool"></a>

Lorsque vous disposez d'un magasin d'identités externe et que vous avez le temps de préparer votre groupe d'utilisateurs pour les nouveaux utilisateurs locaux, l'importation groupée d'utilisateurs à partir d'un fichier CSV (valeurs séparées par des virgules) peut s'avérer une option peu coûteuse et peu coûteuse pour une migration vers un groupe d'utilisateurs Amazon Cognito. Une importation de fichier CSV consiste à télécharger et à remplir un fichier modèle, puis à le transmettre à votre groupe d'utilisateurs dans le cadre d'une tâche d'importation. Vous pouvez utiliser une importation CSV pour créer rapidement des utilisateurs de test. Vous pouvez également remplir le fichier par programmation avec des requêtes d'API de lecture adressées à votre banque d'identités externe, puis analyser leurs détails et leurs attributs dans le cadre d'opérations d'écriture dans le fichier.

Le processus d'importation définit les valeurs de tous les attributs utilisateur, sauf **password (mot de passe)**. L'importation du mot de passe n'est pas prise en charge, car les bonnes pratiques de sécurité nécessitent que les mots de passe ne soient pas disponibles sous forme de texte brut, et nous ne prenons pas en charge l'importation des hachages. Cela signifie que vos utilisateurs doivent changer leur mot de passe la première fois qu'ils se connectent. Vos utilisateurs sont dans un `RESET_REQUIRED` état lorsqu'ils sont importés à l'aide de cette méthode.

La méthode la plus simple pour importer des utilisateurs depuis un fichier CSV consiste à activer la [connexion sans mot de passe](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless) dans votre groupe d'utilisateurs. Grâce aux attributs d'adresse e-mail et de numéro de téléphone et à la bonne configuration du pool d'utilisateurs, les utilisateurs peuvent se connecter à l'aide de mots de passe à usage unique par e-mail ou SMS (OTPs) immédiatement après la fin de votre tâche d'importation. Pour de plus amples informations, veuillez consulter [Obligation pour les utilisateurs importés de réinitialiser leur mot de passe](#cognito-user-pools-using-import-tool-password-reset).

Vous pouvez également définir les mots de passe de vos utilisateurs à l'aide d'une demande d'[https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html)API dont le `Permanent` paramètre est défini sur`true`. L'importation au format CSV ne contribue pas au nombre d'utilisateurs actifs mensuels facturés (MAUs) de votre groupe d'utilisateurs. Cependant, des opérations de réinitialisation du mot de passe sont générées. MAUs Pour gérer les coûts lorsque vous importez un grand nombre d'utilisateurs dotés d'un mot de passe qui ne sont peut-être pas immédiatement actifs, configurez votre application pour demander aux utilisateurs un nouveau mot de passe lorsqu'ils se connectent et reçoivent le `RESET_REQUIRED` défi.

**Note**  
La date de création pour chaque utilisateur est celle où celui-ci a été importé dans le pool d'utilisateurs. La date de création n'est pas l'un des attributs importés.

**Étapes pour créer une tâche d'importation utilisateur**

1. Créez un rôle Amazon CloudWatch Logs dans la console Gestion des identités et des accès AWS (IAM).

1. Créez le fichier .csv d'importation d'utilisateurs.

1. Créez et exécutez la tâche d'importation d'utilisateurs.

1. Téléchargez le fichier .csv d'importation d'utilisateurs.

1. Démarrez et exécutez la tâche d'importation d'utilisateurs.

1.  CloudWatch À utiliser pour consulter le journal des événements.

1. Exigez des utilisateurs importés qu'ils réinitialisent leur mot de passe.

**Ressources supplémentaires**
+ [Architecture de référence d'exportation des profils utilisateur Cognito pour l'exportation](https://aws.amazon.com/solutions/implementations/cognito-user-profiles-export-reference-architecture/) de comptes d'utilisateurs entre groupes d'utilisateurs

**Topics**
+ [Création du rôle CloudWatch Logs IAM](#cognito-user-pools-using-import-tool-cli-cloudwatch-iam-role)
+ [Création du fichier CSV d'importation d'utilisateurs](#cognito-user-pools-using-import-tool-csv-header)
+ [Création et exécution de la tâche d'importation de groupe d'utilisateurs Amazon Cognito](#cognito-user-pools-creating-import-job)
+ [Affichage des résultats de l'importation du groupe d'utilisateurs dans la CloudWatch console](#cognito-user-pools-using-import-tool-cloudwatch)
+ [Obligation pour les utilisateurs importés de réinitialiser leur mot de passe](#cognito-user-pools-using-import-tool-password-reset)

## Création du rôle CloudWatch Logs IAM
<a name="cognito-user-pools-using-import-tool-cli-cloudwatch-iam-role"></a>

Si vous utilisez la CLI ou l'API Amazon Cognito, vous devez créer un rôle CloudWatch IAM. La procédure suivante explique comment créer un rôle IAM qu'Amazon Cognito peut utiliser pour écrire les résultats de votre tâche CloudWatch d'importation dans Logs. 

**Note**  
Lorsque vous créez une tâche d'importation dans la console Amazon Cognito, vous pouvez créer le rôle IAM en même temps. Lorsque vous choisissez **Create a new IAM role** (Créer un nouveau rôle IAM), Amazon Cognito applique automatiquement la politique d'approbation et la politique IAM adaptées au rôle.

**Pour créer le rôle CloudWatch Logs IAM pour l'importation de groupes d'utilisateurs (AWS CLI, API)**

1. Connectez-vous à la console IAM AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)l'adresse.

1. Créez un nouveau rôle IAM pour un Service AWS. Pour obtenir des instructions détaillées, consultez [Création d'un rôle pour un Service AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console) dans le *Guide de l'utilisateur Gestion des identités et des accès AWS *.

   1. Lorsque vous sélectionnez un **cas d'utilisation** pour votre **type d'entité approuvée**, choisissez n'importe quel service. Pour l'heure, Amazon Cognito ne figure pas dans les cas d'utilisation de service.

   1. Dans l'écran **Add permissions** (Ajouter des autorisations), choisissez **Create policy** (Créer une politique) et insérez la déclaration de politique suivante. *REGION*Remplacez-le par celui Région AWS de votre groupe d'utilisateurs, par exemple`us-east-1`. *ACCOUNT*Remplacez-le par votre Compte AWS identifiant, par exemple`111122223333`.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "logs:CreateLogGroup",
                      "logs:CreateLogStream",
                      "logs:DescribeLogStreams",
                      "logs:PutLogEvents"
                  ],
                  "Resource": [
                      "arn:aws:logs:us-east-1:111122223333:log-group:/aws/cognito/*"
                  ]
              }
          ]
      }
      ```

------

1. Comme vous n'avez pas choisi Amazon Cognito comme entité approuvée au moment de créer le rôle, vous devez maintenant modifier manuellement la relation d'approbation du rôle. Choisissez **Roles** (Rôles) dans le volet de navigation de la console IAM, puis choisissez le rôle que vous avez créé.

1. Choisissez l’onglet **Relations de confiance**.

1. Choisissez **Modifier la politique d’approbation**.

1. Collez la déclaration de politique suivante dans **Edit trust policy** (Modifier la politique d'approbation), en remplaçant le texte existant éventuel : 

------
#### [ JSON ]

****  

   ```
   {
           "Version":"2012-10-17",		 	 	 
           "Statement": [
               {
                   "Effect": "Allow",
                   "Principal": {
                       "Service": "cognito-idp.amazonaws.com"
                   },
                   "Action": "sts:AssumeRole"
               }
           ]
       }
   ```

------

1. Choisissez **Mettre à jour une politique**. 

1. Notez l'ARN du rôle. Vous devrez fournir l'ARN au moment de créer votre tâche d'importation.

## Création du fichier CSV d'importation d'utilisateurs
<a name="cognito-user-pools-using-import-tool-csv-header"></a>

Avant de pouvoir importer des utilisateurs existants dans votre groupe d'utilisateurs, vous devez d'abord créer un fichier CSV (valeurs séparées par des virgules) contenant les utilisateurs que vous souhaitez importer ainsi que leurs attributs. À partir de votre groupe d'utilisateurs, vous pouvez extraire un fichier d'importation d'utilisateurs dont les en-têtes reflètent le schéma d'attributs de votre groupe d'utilisateurs. Vous pouvez ensuite insérer les informations utilisateur qui répondent aux exigences de mise en forme décrites dans [Mise en forme du fichier CSV](#cognito-user-pools-using-import-tool-formatting-csv-file). 

### Téléchargement de l'en-tête du fichier CSV (console)
<a name="cognito-user-pools-using-import-tool-downloading-csv-header-console"></a>

Utilisez la procédure suivante pour télécharger le fichier d'en-tête CSV.

**Pour télécharger l'en-tête du fichier CSV**

1. Accédez à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Il se peut que vous soyez invité à saisir vos AWS informations d'identification.

1. Choisissez **Groupes d'utilisateurs**.

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

1. Choisissez le menu **Utilisateurs**.

1. Dans la section **Import users** (Importer des utilisateurs), choisissez **Create an import job** (Créer une tâche d'importation).

1. Sous **Upload CSV** (Charger un fichier CSV), sélectionnez le lien *template.csv* et téléchargez le fichier CSV.

### Téléchargement de l'en-tête du fichier CSV (AWS CLI)
<a name="cognito-user-pools-using-import-tool-downloading-csv-header-using-cli"></a>

Pour obtenir la liste des en-têtes corrects, dans le **menu Utilisateurs**, sous **Importer des utilisateurs**, sélectionnez **Créer une tâche d'importation**. Dans la boîte de dialogue qui suit, sélectionnez le `template.csv` lien pour télécharger un fichier modèle contenant les attributs de votre groupe d'utilisateurs.

Vous pouvez également exécuter la commande CLI suivante, où *USER\$1POOL\$1ID* est l'identifiant du groupe d'utilisateurs dans lequel vous allez importer des utilisateurs :

```
aws cognito-idp get-csv-header --user-pool-id "USER_POOL_ID"
```

Exemple de réponse :

```
{
    "CSVHeader": [
        "name",
        "given_name",
        "family_name",
        "middle_name",
        "nickname",
        "preferred_username",
        "profile",
        "picture",
        "website",
        "email",
        "email_verified",
        "gender",
        "birthdate",
        "zoneinfo",
        "locale",
        "phone_number",
        "phone_number_verified",
        "address",
        "updated_at",
        "cognito:mfa_enabled",
        "cognito:username"
    ],
    "UserPoolId": "USER_POOL_ID"
}
```

### Mise en forme du fichier CSV
<a name="cognito-user-pools-using-import-tool-formatting-csv-file"></a>

 Une fois téléchargé, le fichier d'en-tête CSV d'importation d'utilisateurs ressemble à la chaîne suivante. Il comporte également les attributs personnalisés que vous avez éventuellement ajoutés à votre groupe d'utilisateurs.

```
cognito:username,name,given_name,family_name,middle_name,nickname,preferred_username,profile,picture,website,email,email_verified,gender,birthdate,zoneinfo,locale,phone_number,phone_number_verified,address,updated_at,cognito:mfa_enabled
```

Modifiez votre fichier CSV de telle sorte qu'il contienne cet en-tête et les valeurs d'attribut pour vos utilisateurs et qu'il soit mis en forme selon les règles suivantes :

**Note**  
Pour plus d'informations sur les valeurs d'attributs, par exemple, un format approprié pour les numéros de téléphone, consultez [Utilisation des attributs utilisateur](user-pool-settings-attributes.md).
+ La première ligne du fichier est la ligne d'en-tête téléchargée qui contient les noms des attributs utilisateur.
+ L'ordre des colonnes dans le fichier CSV n'a pas d'importance.
+ Chaque ligne après la première ligne contient les valeurs d'attribut d'un utilisateur.
+ Toutes les colonnes de l'en-tête doivent être présentes, mais vous n'avez pas besoin de fournir des valeurs dans chaque colonne.
+ Les attributs suivants sont obligatoires :
  + **cognito:username**
  + **email\$1verified** ou **phone\$1number\$1verified**
    + Au moins l'un des attributs à vérification automatique doit avoir la valeur `true` pour chaque utilisateur. Un attribut à vérification automatique est une adresse e-mail ou un numéro de téléphone auxquels Amazon Cognito envoie automatiquement un code lorsqu'un nouvel utilisateur rejoint votre groupe d'utilisateurs.
    + Le groupe d'utilisateurs doit avoir au moins un attribut à vérification automatique, que ce soit **email\$1verified** ou **phone\$1number\$1verified**. Si le pool d'utilisateurs n'a pas d'attributs à vérification automatique, la tâche d'importation ne démarre pas.
    + Si le pool d'utilisateurs n'a qu'un seul attribut à vérification automatique, cet attribut doit être vérifié pour chaque utilisateur. Par exemple, si le groupe d'utilisateurs n'a que **phone\$1number** comme attribut à vérification automatique, la valeur de **phone\$1number\$1verified** doit être `true` pour chaque utilisateur.
**Note**  
Pour pouvoir réinitialiser leur mot de passe, les utilisateurs doivent disposer d'une adresse e-mail ou d'un numéro de téléphone vérifiés. Amazon Cognito envoie un message contenant un code de réinitialisation de mot de passe à l'adresse e-mail ou au numéro de téléphone spécifiés dans le fichier CSV. Si le message est envoyé au numéro de téléphone, il est envoyé par SMS. Pour de plus amples informations, veuillez consulter [Vérification des coordonnées à l’inscription](signing-up-users-in-your-app.md#allowing-users-to-sign-up-and-confirm-themselves).
  + **email** (si **email\$1verified** a la valeur `true`)
  + **phone\$1number** (si **phone\$1number\$1verified** a la valeur `true`)
  + Tous les attributs que vous avez marqués comme obligatoires lorsque vous avez créé le pool d'utilisateurs
+ Les valeurs d'attribut qui sont des chaînes *ne doivent pas* être entre guillemets.
+ Si une valeur d'attribut contient une virgule, vous devez placer une barre oblique inverse (\$1) devant la virgule. La raison en est que les champs au sein d'un fichier CSV sont séparés par des virgules.
+ Le contenu du fichier CSV doit être au format UTF-8 sans marque d'ordre d'octet.
+ Le champ **cognito:username** est obligatoire et doit être unique au sein de votre groupe d'utilisateurs. Ce peut être n'importe quelle chaîne Unicode. Cependant, elle ne peut pas comporter d'espaces ou de tabulations.
+ Les valeurs de **date de naissance**, si elles sont présentes, doivent être au format **mm/dd/yyyy**. Cela signifie, par exemple, que la date du 1er février 1985 doit être codée sous la forme **02/01/1985**.
+ Le champ **cognito:mfa\$1enabled** doit correspondre aux exigences MFA de votre groupe d'utilisateurs. Si vous avez défini l'authentification multifactorielle (MFA) comme obligatoire dans votre groupe d'utilisateurs, ce champ doit `true` être ou vide pour tous les utilisateurs. Si vous avez désactivé le MFA, ce champ doit être vide `false` ou être vide pour tous les utilisateurs. Une valeur vide définit le statut MFA des utilisateurs importés sur l'état requis par le groupe d'utilisateurs. Vous pouvez importer des utilisateurs dans un groupe d'utilisateurs requis par la MFA sans facteur MFA valide, que vous ayez défini une valeur ou non. `cognito:mfa_enabled` Dans cet état, l'authentification MFA est active mais ne peuvent pas se connecter tant qu'ils n'ont pas configuré un attribut d'e-mail, un attribut de numéro de téléphone ou un TOTP, et cette configuration est un facteur MFA valide dans votre groupe d'utilisateurs.
+ La longueur maximale de la ligne est de 16 000 caractères.
+ La taille maximale du fichier CSV est de 100 Mo.
+ Le nombre maximal de lignes (utilisateurs) du fichier est de 500 000. La ligne d'en-tête n'est pas comprise dans ce nombre maximal.
+ La valeur du champ **updated\$1at** doit être une heure Posix exprimée en secondes, par exemple : **1471453471**.
+ Les espaces de début ou de fin d'une valeur d'attribut seront supprimés.

La liste suivante est un exemple de fichier d'importation CSV pour un groupe d'utilisateurs sans attributs personnalisés. Le schéma de votre groupe d'utilisateurs peut être différent par rapport à cet exemple. Dans ce cas, vous devez fournir des valeurs de test dans le modèle CSV que vous téléchargez à partir de votre groupe d'utilisateurs.

```
cognito:username,name,given_name,family_name,middle_name,nickname,preferred_username,profile,picture,website,email,email_verified,gender,birthdate,zoneinfo,locale,phone_number,phone_number_verified,address,updated_at,cognito:mfa_enabled
John,,John,Doe,,,,,,,johndoe@example.com,TRUE,,02/01/1985,,,+12345550100,TRUE,123 Any Street,,FALSE
Jane,,Jane,Roe,,,,,,,janeroe@example.com,TRUE,,01/01/1985,,,+12345550199,TRUE,100 Main Street,,FALSE
```

## Création et exécution de la tâche d'importation de groupe d'utilisateurs Amazon Cognito
<a name="cognito-user-pools-creating-import-job"></a>

Cette section explique comment créer et exécuter la tâche d'importation du groupe d'utilisateurs à l'aide de la console Amazon Cognito et du AWS Command Line Interface ()AWS CLI.

**Topics**
+ [Importation d'utilisateurs à partir d'un fichier CSV (console)](#cognito-user-pools-using-import-tool-console)
+ [Importation d'utilisateurs (AWS CLI)](#cognito-user-pools-using-import-tool-cli)

### Importation d'utilisateurs à partir d'un fichier CSV (console)
<a name="cognito-user-pools-using-import-tool-console"></a>

La procédure suivante montre comment importer les utilisateurs à partir du fichier CSV.

**Pour importer les utilisateurs à partir du fichier CSV (console)**

1. Accédez à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Il se peut que vous soyez invité à saisir vos AWS informations d'identification.

1. Choisissez **Groupes d'utilisateurs**.

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

1. Choisissez le menu **Utilisateurs**.

1. Dans la section **Import users** (Importer des utilisateurs), choisissez **Create an import job** (Créer une tâche d'importation).

1. Sur la page **Create import job** (Créer une tâche d'importation), saisissez un **nom de tâche**.

1. Choisissez **Create a new IAM role** (Créer un nouveau rôle IAM) ou **Use an existing IAM role** (Utiliser un rôle IAM existant).

   1. Si vous avez choisi **Create a new IAM role** (Créer un nouveau rôle IAM), attribuez un nom à votre nouveau rôle. Amazon Cognito crée alors automatiquement un rôle doté des autorisations et de la relation d'approbation adéquates. Le principal IAM qui crée la tâche d'importation doit disposer des autorisations permettant de créer des rôles IAM.

   1. Si vous avez choisi **Use an existing IAM role** (Utiliser un rôle IAM existant), choisissez un rôle dans la liste située en dessous de **IAM role selection** (Sélection du rôle IAM). Ce rôle doit disposer des autorisations et de la politique d'approbation décrites dans [Création du rôle CloudWatch Logs IAM](#cognito-user-pools-using-import-tool-cli-cloudwatch-iam-role).

1. Sous **Télécharger un fichier CSV**, **choisissez Choisir un fichier** et joignez le fichier CSV que vous avez préparé.

1. Choisissez **Create job** (Créer une tâche) pour soumettre votre tâche, mais démarrez-la plus tard. Choisissez **Create and start job** (Créer et démarrer une tâche) pour soumettre votre tâche et la démarrer immédiatement.

1. Si vous avez créé votre tâche mais que vous ne l'avez pas démarrée, vous pouvez la démarrer ultérieurement. Dans le menu **Utilisateurs**, sous **Importer des utilisateurs**, choisissez votre tâche d'importation, puis sélectionnez **Démarrer**. Vous pouvez également envoyer une demande d'[StartUserImportJob](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_StartUserImportJob.html)API à partir d'un AWS SDK.

1. Surveillez la progression de votre tâche d'importation d'utilisateurs dans le menu **Utilisateurs** sous **Importer des utilisateurs**. Si votre tâche échoue, vous pouvez sélectionner la valeur **Status** (État). Pour plus de détails, sélectionnez **Afficher les CloudWatch journaux pour plus de détails** et passez en revue les éventuels problèmes dans la console CloudWatch Logs.

### Importation d'utilisateurs (AWS CLI)
<a name="cognito-user-pools-using-import-tool-cli"></a>

Les commandes de CLI suivantes sont disponibles pour l'importation des utilisateurs dans un pool d'utilisateurs :
+ `create-user-import-job`
+ `get-csv-header`
+ `describe-user-import-job`
+ `list-user-import-jobs`
+ `start-user-import-job`
+ `stop-user-import-job`

Pour obtenir la liste des options de ligne de commande pour ces commandes, utilisez l'option de ligne de commande `help`. Par exemple :

```
aws cognito-idp get-csv-header help
```

#### Création d'une tâche d'importation d'utilisateurs
<a name="cognito-user-pools-using-import-tool-cli-creating-user-import-job"></a>

Après avoir créé votre fichier CSV, créez une tâche d'importation d'utilisateurs en exécutant la commande CLI suivante, où *JOB\$1NAME* figurent le nom que vous choisissez pour la tâche, *USER\$1POOL\$1ID* l'ID du groupe d'utilisateurs dans lequel les nouveaux utilisateurs seront ajoutés et *ROLE\$1ARN* l'ARN du rôle dans lequel vous avez reçu [Création du rôle CloudWatch Logs IAM](#cognito-user-pools-using-import-tool-cli-cloudwatch-iam-role) : 

```
aws cognito-idp create-user-import-job --job-name "JOB_NAME" --user-pool-id "USER_POOL_ID" --cloud-watch-logs-role-arn "ROLE_ARN"
```

La *PRE\$1SIGNED\$1URL* valeur renvoyée dans la réponse est valide pendant 15 minutes. Au-delà de ce délai, la valeur expire et vous devez créer une nouvelle tâche d'importation des utilisateurs pour obtenir une nouvelle URL.

**Example réponse :**  

```
{
    "UserImportJob": {
        "Status": "Created",
        "SkippedUsers": 0,
        "UserPoolId": "USER_POOL_ID",
        "ImportedUsers": 0,
        "JobName": "JOB_NAME",
        "JobId": "JOB_ID",
        "PreSignedUrl": "PRE_SIGNED_URL",
        "CloudWatchLogsRoleArn": "ROLE_ARN",
        "FailedUsers": 0,
        "CreationDate": 1470957431.965
    }
}
```

#### Valeurs d'état pour une tâche d'importation d'utilisateurs
<a name="cognito-user-pools-using-import-tool-cli-status-values-for-user-import-job"></a>

Dans les réponses à vos commandes d'importation d'utilisateurs, vous verrez l'une des valeurs `Status` suivantes :
+ `Created` – La tâche a été créée, mais n'a pas démarré.
+ `Pending` – Un état de transition. Vous avez démarré la tâche, mais elle n'a pas encore commencé à importer les utilisateurs.
+ `InProgress` – La tâche a démarré et les utilisateurs sont en cours d'importation.
+ `Stopping` – Vous avez arrêté la tâche, mais la tâche n'a pas encore cessé d'importer les utilisateurs.
+ `Stopped` – Vous avez arrêté la tâche et la tâche a cessé d'importer les utilisateurs.
+ `Succeeded` – La tâche a été bien exécutée.
+ `Failed` – La tâche s'est arrêtée à la suite d'une erreur.
+ `Expired` – Vous avez créé une tâche, mais n'avez pas commencé la tâche au cours des 24 ou 48 heures écoulées. Toutes les données associées à la tâche ont été supprimées et la tâche ne peut pas être démarrée.

#### Chargement du fichier CSV
<a name="cognito-user-pools-using-import-tool-cli-uploading-csv-file"></a>

Utilisez la commande `curl` suivante pour charger le fichier CSV contenant vos données utilisateur sur l'URL présignée que vous avez obtenue de la réponse de la commande `create-user-import-job`.

```
curl -v -T "PATH_TO_CSV_FILE" -H "x-amz-server-side-encryption:aws:kms" "PRE_SIGNED_URL"
```

Dans la sortie de cette commande, recherchez l'expression `"We are completely uploaded and fine"`. Cette expression indique que le fichier a été téléchargé avec succès. Vos groupes d'utilisateurs ne conservent pas les informations contenues dans vos fichiers d'importation une fois que vous avez exécuté vos tâches d'importation. Une fois qu'ils sont terminés ou qu'ils expirent, Amazon Cognito supprime le fichier CSV que vous avez chargé.

#### Description d'une tâche d'importation d'utilisateurs
<a name="cognito-user-pools-using-import-tool-cli-describing-user-import-job"></a>

Pour obtenir une description de votre tâche d'importation d'utilisateurs, utilisez la commande suivante, où se *USER\$1POOL\$1ID* trouve l'ID de votre groupe d'utilisateurs et *JOB\$1ID* l'ID de tâche renvoyé lorsque vous avez créé la tâche d'importation d'utilisateurs. 

```
aws cognito-idp describe-user-import-job --user-pool-id "USER_POOL_ID" --job-id "JOB_ID"
```

**Example Exemple de réponse :**  

```
{
    "UserImportJob": {
        "Status": "Created",
        "SkippedUsers": 0,
        "UserPoolId": "USER_POOL_ID",
        "ImportedUsers": 0,
        "JobName": "JOB_NAME",
        "JobId": "JOB_ID",
        "PreSignedUrl": "PRE_SIGNED_URL",
        "CloudWatchLogsRoleArn":"ROLE_ARN",
        "FailedUsers": 0,
        "CreationDate": 1470957431.965
    }
}
```

Dans l'exemple de sortie précédent, *PRE\$1SIGNED\$1URL* il s'agit de l'URL vers laquelle vous avez chargé le fichier CSV. *ROLE\$1ARN*Il s'agit de l'ARN du rôle CloudWatch Logs que vous avez reçu lors de la création du rôle.

#### Affichage des tâches d'importation d'utilisateurs
<a name="cognito-user-pools-using-import-tool-cli-listing-user-import-jobs"></a>

Pour afficher les tâches d'importation d'utilisateurs, utilisez la commande suivante :

```
aws cognito-idp list-user-import-jobs --user-pool-id "USER_POOL_ID" --max-results 2
```

**Example Exemple de réponse :**  

```
{
    "UserImportJobs": [
        {
            "Status": "Created",
            "SkippedUsers": 0,
            "UserPoolId": "USER_POOL_ID",
            "ImportedUsers": 0,
            "JobName": "JOB_NAME",
            "JobId": "JOB_ID",
            "PreSignedUrl":"PRE_SIGNED_URL",
            "CloudWatchLogsRoleArn":"ROLE_ARN",
            "FailedUsers": 0,
            "CreationDate": 1470957431.965
        },
        {
            "CompletionDate": 1470954227.701,
            "StartDate": 1470954226.086,
            "Status": "Failed",
            "UserPoolId": "USER_POOL_ID",
            "ImportedUsers": 0,
            "SkippedUsers": 0,
            "JobName": "JOB_NAME",
            "CompletionMessage": "Too many users have failed or been skipped during the import.",
            "JobId": "JOB_ID",
            "PreSignedUrl":"PRE_SIGNED_URL",
            "CloudWatchLogsRoleArn":"ROLE_ARN",
            "FailedUsers": 5,
            "CreationDate": 1470953929.313
        }
    ],
    "PaginationToken": "PAGINATION_TOKEN"
}
```

Les tâches sont affichées par ordre chronologique, depuis la dernière créée jusqu'à la première créée. La *PAGINATION\$1TOKEN* chaîne située après la deuxième tâche indique que cette commande de liste a des résultats supplémentaires. Pour afficher les résultats supplémentaires, utilisez l'option `--pagination-token` comme suit :

```
aws cognito-idp list-user-import-jobs --user-pool-id "USER_POOL_ID" --max-results 10 --pagination-token "PAGINATION_TOKEN"
```

#### Démarrage d'une tâche d'importation d'utilisateurs
<a name="cognito-user-pools-using-import-tool-cli-starting-user-import-job"></a>

Pour démarrer une tâche d'importation d'utilisateurs, utilisez la commande suivante :

```
aws cognito-idp start-user-import-job --user-pool-id "USER_POOL_ID" --job-id "JOB_ID"
```

Une seule tâche d'importation peut être active à la fois par compte.

**Example Exemple de réponse :**  

```
{
    "UserImportJob": {
        "Status": "Pending",
        "StartDate": 1470957851.483,
        "UserPoolId": "USER_POOL_ID",
        "ImportedUsers": 0,
        "SkippedUsers": 0,
        "JobName": "JOB_NAME",
        "JobId": "JOB_ID",
        "PreSignedUrl":"PRE_SIGNED_URL",
        "CloudWatchLogsRoleArn": "ROLE_ARN",
        "FailedUsers": 0,
        "CreationDate": 1470957431.965
    }
}
```

#### Arrêt d'une tâche d'importation d'utilisateurs
<a name="cognito-user-pools-using-import-tool-cli-stopping-user-import-job"></a>

Pour arrêter une tâche d'importation d'utilisateur alors qu'elle est en cours, utilisez la commande suivante. Une fois que vous avez arrêté la tâche, elle ne peut pas être redémarrée.

```
aws cognito-idp stop-user-import-job --user-pool-id "USER_POOL_ID" --job-id "JOB_ID"
```

**Example Exemple de réponse :**  

```
{
    "UserImportJob": {
        "CompletionDate": 1470958050.571,
        "StartDate": 1470958047.797,
        "Status": "Stopped",
        "UserPoolId": "USER_POOL_ID",
        "ImportedUsers": 0,
        "SkippedUsers": 0,
        "JobName": "JOB_NAME",
        "CompletionMessage": "The Import Job was stopped by the developer.",
        "JobId": "JOB_ID",
        "PreSignedUrl":"PRE_SIGNED_URL",
        "CloudWatchLogsRoleArn": "ROLE_ARN",
        "FailedUsers": 0,
        "CreationDate": 1470957972.387
    }
}
```

## Affichage des résultats de l'importation du groupe d'utilisateurs dans la CloudWatch console
<a name="cognito-user-pools-using-import-tool-cloudwatch"></a>

Vous pouvez consulter les résultats de votre tâche d'importation dans la CloudWatch console Amazon.

**Topics**
+ [Affichage des résultats](#cognito-user-pools-using-import-tool-viewing-the-results)
+ [Interprétation des résultats](#cognito-user-pools-using-import-tool-interpreting-the-results)

### Affichage des résultats
<a name="cognito-user-pools-using-import-tool-viewing-the-results"></a>

Les étapes suivantes expliquent comment afficher les résultats de l'importation du pool d'utilisateurs.

**Pour afficher les résultats de l'importation du pool d'utilisateurs**

1. Connectez-vous à la CloudWatch console AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Choisissez **Logs** (Journaux).

1. Sélectionnez le pool de journaux pour vos tâches d'importation du pool d'utilisateurs. Le nom du groupe de journaux est sous la forme `/aws/cognito/userpools/USER_POOL_ID/USER_POOL_NAME`.

1. Choisissez le journal pour la tâche d'importation d'utilisateurs que vous venez juste d'exécuter. Le nom du journal est au format*JOB\$1ID*/*JOB\$1NAME*. Les résultats du journal se réfèrent à vos utilisateurs par numéro de ligne. Aucune donnée utilisateur n'est écrite dans le journal. Pour chaque utilisateur, une ligne similaire à la suivante s'affiche :
   + `[SUCCEEDED] Line Number 5956 - The import succeeded.`
   + `[SKIPPED] Line Number 5956 - The user already exists.`
   + `[FAILED] Line Number 5956 - The User Record does not set any of the auto verified attributes to true. (Example: email_verified to true).`

### Interprétation des résultats
<a name="cognito-user-pools-using-import-tool-interpreting-the-results"></a>

Le statut des utilisateurs importés avec succès est défini sur « PasswordReset ».

Dans les cas suivants, l'utilisateur n'est pas importé, mais la tâche d'importation se poursuit :
+ Aucun attribut à vérification automatique n'est défini pour `true`.
+ Les données utilisateur ne correspondent pas au schéma.
+ L'utilisateur n'a pas pu être importé en raison d'une erreur interne.

Dans les cas suivants, la tâche d'importation échoue :
+ Le rôle Amazon CloudWatch Logs ne peut pas être assumé, ne dispose pas de la bonne politique d'accès ou a été supprimé.
+ Le pool d'utilisateurs a été supprimé.
+ Amazon Cognito ne peut pas analyser le fichier .csv.

## Obligation pour les utilisateurs importés de réinitialiser leur mot de passe
<a name="cognito-user-pools-using-import-tool-password-reset"></a>

Si votre groupe d'utilisateurs propose uniquement une connexion par mot de passe, les utilisateurs doivent réinitialiser leur mot de passe après son importation. La première fois qu'ils se connectent, ils peuvent saisir *n'importe quel* mot de passe. Amazon Cognito les invite à saisir un nouveau mot de passe dans la réponse de l'API à la demande de connexion de votre application.

Si votre groupe d'utilisateurs utilise des facteurs d'authentification sans mot de passe, Amazon Cognito utilise par défaut ceux des utilisateurs importés. Ils ne sont pas invités à saisir un nouveau mot de passe et peuvent se connecter immédiatement à l'aide d'un e-mail ou d'un SMS OTP sans mot de passe. Vous pouvez également demander aux utilisateurs de définir un mot de passe afin qu'ils puissent utiliser d'autres méthodes de connexion, telles que le nom d'utilisateur-mot de passe et le mot de passe. Les conditions suivantes s'appliquent à la connexion sans mot de passe après l'importation d'un utilisateur.

1. Vous devez importer des utilisateurs dont l'attribut correspond à un facteur de connexion sans mot de passe disponible. Si les utilisateurs peuvent se connecter avec une adresse e-mail, vous devez importer un `email` attribut. S'il s'agit d'un numéro de téléphone, vous devez importer un `phone_number` attribut. Dans les deux cas, importez une valeur pour l'un ou l'autre des attributs.

1. Normalement, les utilisateurs importent dans un `RESET_REQUIRED` état où ils doivent réinitialiser leur mot de passe. S'ils sont importés avec la possibilité de se connecter sans mot de passe, Amazon Cognito définit leur état sur. `CONFIRMED`

Pour plus d'informations sur l'authentification sans mot de passe, notamment sur la façon de la configurer et de créer le flux d'authentification dans votre application, consultez. [Authentification auprès des groupes d'utilisateurs Amazon Cognito](authentication.md)

La procédure suivante décrit l'expérience utilisateur dans un mécanisme de connexion personnalisé avec des utilisateurs locaux `RESET_REQUIRED` après l'importation d'un fichier CSV. Si vos utilisateurs se connectent avec un identifiant géré, demandez-leur de sélectionner le mot de **passe oublié ?** option, fournissez le code de leur e-mail ou de leur message texte et définissez un mot de passe.

**Obligation pour les utilisateurs importés de réinitialiser leur mot de passe**

1. Dans votre application, essayez de vous connecter silencieusement pour l'utilisateur actuel avec `InitiateAuth` à l'aide d'un mot de passe aléatoire.

1. Amazon Cognito renvoie `NotAuthorizedException` quand `PreventUserExistenceErrors` est activé. Sinon, la valeur renvoyée est `PasswordResetRequiredException`.

1. Votre application effectue une demande d'API `ForgotPassword` et réinitialise le mot de passe de l'utilisateur.

   1. L'application soumet le nom d'utilisateur dans une demande d'API `ForgotPassword`.

   1. Amazon Cognito envoie un code à l'adresse e-mail ou au numéro de téléphone vérifiés. La destination dépend des valeurs que vous avez fournies pour `email_verified` et `phone_number_verified` dans votre fichier CSV. La réponse à la demande `ForgotPassword` indique la destination du code.
**Note**  
Votre groupe d'utilisateurs doit être configuré pour vérifier les adresses e-mail ou les numéros de téléphone. Pour de plus amples informations, veuillez consulter [Inscription et confirmation des comptes d’utilisateur](signing-up-users-in-your-app.md).

   1. Votre application affiche un message demandant à votre utilisateur de vérifier l'endroit où le code a été envoyé et l'invite à saisir le code et un nouveau mot de passe.

   1. L'utilisateur entre le code et le nouveau mot de passe dans l'application.

   1. L'application soumet le code et le nouveau mot de passe dans une demande d'API `ConfirmForgotPassword`.

   1. Votre application redirige votre utilisateur vers la connexion.

# Utilisation des attributs utilisateur
<a name="user-pool-settings-attributes"></a>

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.

Nettoyez les entrées pour les valeurs des chaînes d'attributs utilisateur avant de les soumettre à votre groupe d'utilisateurs. L'une des méthodes pour analyser les valeurs d'attributs utilisateur proposées consiste à utiliser un déclencheur Lambda, tel que la [pré-inscription](user-pool-lambda-pre-sign-up.md).

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

**Topics**
+ [Attributs standard](#cognito-user-pools-standard-attributes)
+ [Noms d'utilisateur et noms d'utilisateurs préférés](#user-pool-settings-usernames)
+ [Personnalisation des attributs de connexion](#user-pool-settings-aliases)
+ [Attributs personnalisés](#user-pool-settings-custom-attributes)
+ [Autorisations d'attributs et de portées](#user-pool-settings-attribute-permissions-and-scopes)

## Attributs standard
<a name="cognito-user-pools-standard-attributes"></a>

Amazon Cognito attribue à tous les utilisateurs un ensemble d'attributs standard en fonction de la [Spécification OpenID Connect](http://openid.net/specs/openid-connect-core-1_0.html#StandardClaims). 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\$1number** 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 [réponse d'DescribeUserPool API](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeUserPool.html#API_DescribeUserPool_ResponseSyntax). 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](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-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 l'[AdminCreateUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminCreateUser.html)API. 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 l'[AdminUpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html)API ou de la commande [admin-update-user-attributes](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/admin-update-user-attributes.html) 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 le menu **Utilisateurs** de la console Amazon Cognito pour marquer une adresse e-mail comme vérifiée.  
La valeur doit être une [chaîne d'adresse e-mail valide](https://datatracker.ietf.org/doc/html/rfc3696#section-3) suivant le format d'e-mail standard avec le symbole @ et le domaine, d'une longueur maximale de 2 048 caractères.

**phone\$1number**  
Un utilisateur doit fournir un numéro de téléphone si l'authentification multifacteur (MFA) par SMS est active. Pour de plus amples informations, veuillez consulter [Ajout de l’authentification MFA à un groupe d’utilisateurs](user-pool-settings-mfa.md).  
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 l'[AdminUpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html)API ou de la [admin-update-user-attributes](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/admin-update-user-attributes.html) AWS CLI commande. Avec cette commande, l'administrateur peut affecter à l'attribut `phone_number_verified` la valeur `true`. Vous pouvez également modifier un utilisateur dans le menu **Utilisateurs** de la console Amazon Cognito pour marquer un numéro de téléphone comme vérifié.  
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 (**\$1**), suivi immédiatement de l'indicatif du pays. Ils peuvent uniquement contenir le signe **\$1** 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 : **\$114325551212**.

**preferred\$1username**  
Vous pouvez sélectionner `preferred_username` au besoin ou en tant qu'alias, mais pas les deux. S'il s'`preferred_username`agit d'un alias, vous pouvez envoyer une demande à l'opération [UpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserAttributes.html)API 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](how-to-manage-user-accounts.md).

### Afficher les attributs requis
<a name="how-to-edit-standard-attributes"></a>

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](https://console.aws.amazon.com/cognito/home) dans le. AWS Management Console Si la console vous y invite, entrez vos AWS informations d'identification.

1. Choisissez **Groupes d'utilisateurs**.

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

1. Choisissez le menu **d'inscription**.

1. 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
<a name="user-pool-settings-usernames"></a>

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](#user-pool-settings-aliases).

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](#user-pool-settings-aliases).

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 appliquées aux `username` attributs, consultez la propriété *username* d'une demande d'[SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html#CognitoUserPools-SignUp-request-Username)API.

## Personnalisation des attributs de connexion
<a name="user-pool-settings-aliases"></a>

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
<a name="user-pool-settings-aliases-settings"></a>


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

#### Option 1 : plusieurs attributs de connexion (attributs d'alias)
<a name="user-pool-settings-aliases-settings-option-1"></a>

Un attribut est un *alias* lorsque les utilisateurs ont un nom d'utilisateur mais peuvent également se connecter avec cet attribut. Configurez des alias lorsque vous souhaitez permettre à vos utilisateurs de choisir entre leur nom d'utilisateur et d'autres valeurs d'attribut dans le champ nom d'utilisateur de votre formulaire de connexion. L'`username`attribut 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 manuel [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)de référence de l'*API des groupes 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 poursuit la création du nouveau compte, votre application doit appeler l'API `ConfirmSignUp` avec l'option `forceAliasCreation`. `ConfirmSignUp` avec `forceAliasCreation` déplace l'alias du compte précédent vers le compte nouvellement créé et marque l'attribut comme étant 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.

------
#### [ Phone number or email address (console) ]

Vous devez définir l'adresse e-mail et le numéro de téléphone comme attributs d'alias lorsque vous créez un groupe d'utilisateurs.

**Pour créer un groupe d'utilisateurs avec des alias de nom d'utilisateur dans la console Amazon Cognito**

1. Accédez à [Amazon Cognito](https://console.aws.amazon.com/cognito/home) dans AWS Management Console. Si la console vous y invite, entrez vos AWS informations d'identification.

1. Créez un nouveau groupe d'utilisateurs à l'aide du bouton **Commencer** ou **Créer un groupe d'utilisateurs**.

1. Choisissez les paramètres de l'application dans **Définir votre application**.

1. **Dans **Configurer les options**, sous **Options pour les identifiants de connexion**, cochez la case à côté du **nom d'utilisateur et d'**au moins l'une des autres options, **e-mail** et numéro de téléphone.**

1. Choisissez vos attributs d'alias comme **Attributs obligatoires pour l'inscription.** Dans le formulaire d'inscription à la connexion gérée, Amazon Cognito invite les nouveaux utilisateurs à fournir des valeurs pour les attributs requis.

1. Sous **Ajouter une URL de retour**, configurez une URL de rappel d'application pour la redirection après une connexion gérée.

1. Choisissez **Créer**.

------
#### [ Phone number or email address (API/SDK) ]

Créez un nouveau groupe d'utilisateurs à l'aide de l'opération [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)API. Configurez le `AliasAttributes` paramètre comme indiqué. Vous pouvez supprimer l'`email`entrée si vous souhaitez uniquement des alias de numéro de téléphone, ou supprimer l'`phone_number`entrée si vous ne souhaitez que des alias d'adresse e-mail.

```
"AliasAttributes": [
   "email",
   "phone_number"
],
```

------
#### [ Preferred username (API/SDK) ]

La console Amazon Cognito crée des groupes d'utilisateurs sans `preferred_username` alias. Pour créer des groupes d'utilisateurs avec un `preferred_username` alias, configurez des groupes d'utilisateurs avec des demandes d'[CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)API dans un AWS SDK. Pour permettre la création d'attributs de nom d'utilisateur préférés lors de l'inscription, `preferred_username` définissez-les comme attribut obligatoire. Dans le formulaire d'inscription à la connexion gérée, Amazon Cognito invite les nouveaux utilisateurs à fournir des valeurs pour les attributs requis. Vous *pouvez* `preferred_username` le définir comme attribut obligatoire dans la console Amazon Cognito, mais cela ne le rend pas disponible en tant qu'alias.

**Configurer en tant qu'alias**  
Configurez en `preferred_username` tant qu'alias dans le `AliasAttributes` paramètre d'une `CreateUserPool` demande, comme indiqué. Supprimez de la liste toutes les valeurs que vous ne souhaitez pas utiliser comme attributs d'alias.

```
"AliasAttributes": [
   "email",
   "phone_number",
   "preferred_username"
],
```

**Configurez selon les besoins**  
Dans le formulaire d'inscription à la connexion gérée, Amazon Cognito invite les nouveaux utilisateurs à fournir des valeurs pour les attributs requis. Configurez `preferred_username` selon les besoins dans le `SchemaAttributes` paramètre d'une [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)demande.

Pour définir le nom d'utilisateur préféré comme attribut obligatoire, configurez-le comme indiqué. L'exemple suivant modifie le schéma par défaut de `preferred_username` pour le définir selon les besoins. D'autres paramètres de schéma tels que `AttributeDataType` (valeur par défaut`string`) et `StringAttributeConstraints` (longueur par défaut comprise entre 1 et 99 caractères) prennent des valeurs par défaut.

```
"Schema": [
   {
      "Name": "preferred_username",
      "Required": true
   }
]
```

------

#### Option 2 : adresse e-mail ou numéro de téléphone en tant qu'attribut de connexion (attributs de nom d'utilisateur)
<a name="user-pool-settings-aliases-settings-option-2"></a>

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 les attributs du nom d'utilisateur, ne sélectionnez pas le 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.

Lorsque vous sélectionnez l'adresse e-mail et le numéro de téléphone comme attributs de nom d'utilisateur, les utilisateurs peuvent se connecter avec l'un ou l'autre, même s'ils fournissent des valeurs pour les deux attributs. Le nom d'utilisateur de connexion est basé sur la valeur que vous transmettez dans le `Username` paramètre de [SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html#CognitoUserPools-SignUp-request-Username).

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

------
#### [ Username attributes (console) ]

La procédure suivante crée un groupe d'utilisateurs avec des attributs de nom d'utilisateur d'adresse e-mail ou de numéro de téléphone. La différence dans le processus relatif aux attributs de nom d'utilisateur dans la console Amazon Cognito réside dans le fait que vous ne définissez pas également le **nom d'utilisateur** comme attribut de connexion.

**Pour créer un groupe d'utilisateurs avec des attributs de nom d'utilisateur dans la console Amazon Cognito**

1. Accédez à [Amazon Cognito](https://console.aws.amazon.com/cognito/home) dans AWS Management Console. Si la console vous y invite, entrez vos AWS informations d'identification.

1. Créez un nouveau groupe d'utilisateurs à l'aide du bouton **Commencer** ou **Créer un groupe d'utilisateurs**.

1. Choisissez les paramètres de l'application dans **Définir votre application**.

1. Dans **Configurer les options**, sous **Options pour les identifiants de connexion**, sélectionnez les attributs de votre nom d'utilisateur : **e-mail**, **numéro de téléphone** ou les deux. Laissez le **nom d'utilisateur** décoché.

1. Il est recommandé de sélectionner les attributs de votre nom d'utilisateur comme **Attributs obligatoires pour l'inscription**. Dans le formulaire d'inscription à la connexion gérée, Amazon Cognito invite les nouveaux utilisateurs à fournir des valeurs pour les attributs requis. Si vous ne définissez pas les attributs de votre nom d'utilisateur comme requis, Amazon Cognito n'invite pas les nouveaux utilisateurs à fournir des valeurs pour ces attributs. Dans ce scénario, vous devez configurer votre application pour collecter et envoyer des adresses e-mail ou des numéros de téléphone pour chaque utilisateur avant qu'il ne puisse se connecter.

1. Sous **Ajouter une URL de retour**, configurez une URL de rappel d'application pour la redirection après une connexion gérée.

1. Choisissez **Créer**.

------
#### [ Username attributes (API/SDK) ]

Dans une [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)demande, configurez le `UsernameAttributes` paramètre comme indiqué. Pour autoriser la connexion uniquement avec des noms d'utilisateur d'adresse e-mail, spécifiez-le `email` uniquement dans cette liste. Pour autoriser la connexion uniquement avec des noms d'utilisateur comportant un numéro de téléphone, spécifiez uniquement. `phone_number` Ce paramètre remplace le nom d'utilisateur en tant qu'option de connexion.

```
"UsernameAttributes": [ 
   "email",
   "phone_number"
],
```

------

Lorsque vous configurez les attributs du nom d'utilisateur, vous pouvez effectuer des demandes d'[SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html)API qui transmettent une adresse e-mail ou un numéro de téléphone dans le `username` paramètre. Voici le comportement de l'opération d'`SignUp`API de code avec les attributs de nom d'utilisateur.
+ Si la `username` chaîne est au format d'adresse e-mail valide, par exemple`user@example.com`, le groupe d'utilisateurs remplit automatiquement l'`email`attribut de l'utilisateur avec la `username` valeur.
+ Si la `username` chaîne est au format de numéro de téléphone valide, par exemple`+12065551212`, le groupe d'utilisateurs remplit automatiquement l'`phone_number`attribut de l'utilisateur avec la `username` valeur.
+ Si le format de la chaîne `username` ne correspond pas à une adresse e-mail ou à un numéro de téléphone, l'API `SignUp` renvoie une exception.
+ Si la chaîne `username` contient une adresse e-mail ou un numéro de téléphone qui est déjà en cours d'utilisation, l'API `SignUp` renvoie une exception.
+ L'`SignUp`API remplit l'`username`attribut avec un [UUID](cognito-terms.md#terms-uuid) pour votre utilisateur. Cet UUID a la même valeur que la demande `sub` du jeton d'identité de l'utilisateur.

Vous pouvez utiliser une adresse e-mail ou un numéro de téléphone à la place du nom d'utilisateur pour toutes les opérations APIs, sauf pour l'[ListUsers](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html)opération. Dans les demandes d'`ListUsers`API, vous pouvez spécifier `Filter` un `email` ou`phone_number`. Si vous filtrez par`username`, vous devez fournir le nom d'utilisateur UUID, et non l'adresse e-mail ou le numéro de téléphone.

## Attributs personnalisés
<a name="user-pool-settings-custom-attributes"></a>

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. Le nom d'un attribut personnalisé doit correspondre au modèle d'expression régulière décrit dans le `Name` paramètre de [SchemaAttributeType](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SchemaAttributeType.html).

**Chaque attribut personnalisé possède les caractéristiques suivantes :**
+ Vous pouvez le définir sous la forme d'une chaîne, d'un nombre, d'un booléen ou `DateTime` d'un objet. Amazon Cognito écrit des valeurs d'attribut personnalisées dans le jeton d'identification uniquement sous forme de chaînes.
**Note**  
Dans la console Amazon Cognito, vous pouvez ajouter des attributs personnalisés uniquement des types de données de type chaîne et numérique. Des options supplémentaires telles que les types de données booléens et `DateTime` attributaires ne sont disponibles que dans les `SchemaAttributes` propriétés [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)et les requêtes d'[UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)API.
+ 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](quotas.md).
+ 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](#user-pool-settings-attribute-permissions-and-scopes).

**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](role-based-access-control.md), 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](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html). 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](https://console.aws.amazon.com/cognito/home) dans le. AWS Management Console Si la console vous y invite, entrez vos AWS informations d'identification.

1. Choisissez **Groupes d'utilisateurs**.

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

1. Choisissez le menu **d'inscription**, puis dans la section **Attributs personnalisés**, sélectionnez **Ajouter des attributs personnalisés**.

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

1. Sélectionnez **Enregistrer les modifications**.

## Autorisations d'attributs et de portées
<a name="user-pool-settings-attribute-permissions-and-scopes"></a>

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 à partir de la console Amazon Cognito, de l'API Amazon Cognito ou de l'interface 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**  
[DescribeUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeUserPoolClient.html)renvoie 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](https://console.aws.amazon.com/cognito/home) dans le. AWS Management Console Si la console vous y invite, entrez vos AWS informations d'identification.

1. Choisissez **Groupes d'utilisateurs**.

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

1. Choisissez le menu **Clients de l'application** et choisissez un client d'application dans la liste.

1. Dans l'onglet **Autorisations relatives aux attributs**, choisissez **Modifier**.

1. 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 le message. `NotAuthorizedException` [GetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUser.html)les 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 pouvez définir la valeur d'un attribut dans une demande d'API de groupes d'utilisateurs Amazon Cognito seulement lorsque 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
<a name="user-pool-settings-attribute-scope-based-permissions"></a>

Dans les groupes d'utilisateurs que vous configurez à l'aide d'un AWS SDK ou d'un CDK, de l'API REST ou du AWS CLI, vous pouvez configurer l'accès en lecture ou en écriture au client de l'application avec le champ d'application OIDC. `oidc:profile` `oidc:profile`accorde 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 standard OIDC moins`email`,, et `phone_number` `sub``address`, tels que définis dans la [section 2.4 de la spécification OIDC](https://openid.net/specs/openid-connect-basic-1_0.html#Scopes). Pour obtenir des informations sur les étendues que vous pouvez attribuer à vos clients d'application, consultez [Scopes, M2M et serveurs de ressources](cognito-user-pools-define-resource-servers.md).

Pour configurer le client de votre application afin qu'il écrive dans les `oidc:profile` attributs concernés, définissez la valeur de [WriteAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html#CognitoUserPools-CreateUserPoolClient-request-WriteAttributes)to`oidc:profile`, ainsi que tout autre attribut que vous souhaitez autoriser votre application à modifier, dans une demande d'[UpdateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPoolClient.html)API [CreateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html)ou d'API. De même, pour accorder un accès en lecture à ces attributs, `oidc:profile` augmentez la valeur de [ReadAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html#CognitoUserPools-CreateUserPoolClient-request-ReadAttributes).

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