

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.

# Authentification auprès des groupes d'utilisateurs Amazon Cognito
<a name="authentication"></a>

Amazon Cognito propose plusieurs méthodes d'authentification des utilisateurs. Les utilisateurs peuvent se connecter à l'aide de mots de WebAuthn passe et de clés d'accès. Amazon Cognito peut leur envoyer un mot de passe à usage unique par e-mail ou SMS. Vous pouvez implémenter des fonctions Lambda qui orchestrent votre propre séquence de défis et de réponses. Il s'agit de *flux d'authentification*. Dans les flux d'authentification, les utilisateurs fournissent un secret et Amazon Cognito le vérifie, puis émet des jetons Web JSON (JWTs) pour que les applications puissent les traiter avec les bibliothèques OIDC. Dans ce chapitre, nous verrons comment configurer vos groupes d'utilisateurs et vos clients d'applications pour différents flux d'authentification dans différents environnements d'applications. Vous découvrirez les options relatives à l'utilisation des pages de connexion hébergées de la connexion gérée et à la création de votre propre logique et de votre propre interface dans un AWS SDK.

Tous les groupes d'utilisateurs, que vous possédiez un domaine ou non, peuvent authentifier les utilisateurs dans l'API des groupes d'utilisateurs. Si vous ajoutez un domaine à votre groupe d'utilisateurs, vous pouvez utiliser les [points de terminaison de groupe d'utilisateurs](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-userpools-server-contract-reference.html). L'API des groupes d'utilisateurs prend en charge divers modèles d'autorisation et flux de demandes pour les demandes d'API.

Pour vérifier l'identité des utilisateurs, Amazon Cognito prend en charge les flux d'authentification qui intègrent des types de défis en plus des mots de passe tels que les mots de passe à usage unique et les clés d'accès pour e-mails et SMS.

**Topics**
+ [Mettre en œuvre des flux d'authentification](#authentication-implement)
+ [Ce qu'il faut savoir sur l'authentification auprès des groupes d'utilisateurs](#authentication-flow-things-to-know)
+ [Exemple de session d'authentification](#amazon-cognito-user-pools-authentication-flow)
+ [Configuration des méthodes d'authentification pour la connexion gérée](authentication-flows-selection-managedlogin.md)
+ [Gérez les méthodes d'authentification dans AWS SDKs](authentication-flows-selection-sdk.md)
+ [Flux d’authentification](amazon-cognito-user-pools-authentication-flow-methods.md)
+ [Modèles d'autorisation pour l'authentification par API et SDK](authentication-flows-public-server-side.md)

## Mettre en œuvre des flux d'authentification
<a name="authentication-implement"></a>

Que vous implémentiez une [connexion gérée](authentication-flows-selection-managedlogin.md) ou une [interface d'application personnalisée](authentication-flows-selection-sdk.md) avec un AWS SDK pour l'authentification, vous devez configurer votre client d'application pour les types d'authentification que vous souhaitez implémenter. Les informations suivantes décrivent la configuration des flux d'authentification dans vos [clients d'application](user-pool-settings-client-apps.md) et dans votre application.

------
#### [ App client supported flows ]

Vous pouvez configurer les flux pris en charge pour les clients de votre application dans la console Amazon Cognito ou avec l'API d'un AWS SDK. Après avoir configuré votre client d'application pour prendre en charge ces flux, vous pouvez les déployer dans votre application.

La procédure suivante configure les flux d'authentification disponibles pour un client d'application avec la console Amazon Cognito.

**Pour configurer un client d'application pour les flux d'authentification (console)**

1. Connectez-vous AWS et accédez à la console des [groupes d'utilisateurs Amazon Cognito](https://console.aws.amazon.com/cognito/v2/idp). Choisissez un groupe d'utilisateurs ou créez-en un nouveau.

1. Dans la configuration de votre groupe d'utilisateurs, sélectionnez le menu **App clients**. Choisissez un client d'application ou créez-en un nouveau.

1. Sous **Informations sur le client de l'application**, sélectionnez **Modifier**.

1. Sous **Flux clients de l'application**, choisissez les flux d'authentification que vous souhaitez prendre en charge.

**Pour configurer un client d'application pour les flux d'authentification (API/SDK)**  
Pour configurer les flux d'authentification disponibles pour un client d'application avec l'API Amazon Cognito, définissez la valeur de `ExplicitAuthFlows` in a [CreateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html#CognitoUserPools-CreateUserPoolClient-request-ExplicitAuthFlows)or [UpdateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPoolClient.html#CognitoUserPools-UpdateUserPoolClient-request-ExplicitAuthFlows)request. Voici un exemple qui fournit un mot de passe à distance sécurisé (SRP) et une authentification basée sur les choix à un client.

```
"ExplicitAuthFlows": [ 
   "ALLOW_USER_AUTH",
   "ALLOW_USER_SRP_AUTH
]
```

Lorsque vous configurez des flux pris en charge par le client de l'application, vous pouvez spécifier les options et valeurs d'API suivantes.


**Support du flux client de l'application**  

| Flux d'authentification | Compatibilité | Console | API  | 
| --- | --- | --- | --- | 
| [Authentification basée sur le choix](authentication-flows-selection-sdk.md#authentication-flows-selection-choice) | Côté serveur, côté client | Sélectionnez un type d'authentification lors de la connexion | ALLOW\$1USER\$1AUTH | 
| [Connectez-vous avec des mots de passe persistants](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-password) | Côté client | Connectez-vous avec votre nom d'utilisateur et votre mot de passe | ALLOW\$1USER\$1PASSWORD\$1AUTH | 
| [Connectez-vous avec des mots de passe persistants et une charge utile sécurisée](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-srp) | Côté serveur, côté client | Connectez-vous avec un mot de passe à distance sécurisé (SRP) | ALLOW\$1USER\$1SRP\$1AUTH | 
| [Actualiser les jetons](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-refresh) | Côté serveur, côté client | Obtenez de nouveaux jetons d'utilisateur à partir de sessions authentifiées existantes | ALLOW\$1REFRESH\$1TOKEN\$1AUTH | 
| [Authentification côté serveur](authentication-flows-public-server-side.md#amazon-cognito-user-pools-server-side-authentication-flow) | Côté serveur | Connectez-vous à l'aide des informations d'identification administratives côté serveur | ALLOW\$1ADMIN\$1USER\$1PASSWORD\$1AUTH | 
| [Authentification personnalisée](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-custom) | Applications personnalisées côté serveur et côté client. Non compatible avec la connexion gérée. | Connectez-vous à l'aide de flux d'authentification personnalisés à partir de déclencheurs Lambda | ALLOW\$1CUSTOM\$1AUTH | 

------
#### [ Implement flows in your application ]

La connexion gérée rend automatiquement les options d'authentification que vous avez configurées disponibles sur vos pages de connexion. Dans les applications personnalisées, lancez l'authentification par une déclaration du flux initial.
+ Pour choisir parmi une liste d'options de flux pour un utilisateur, déclarez l'[authentification basée sur les choix](authentication-flows-selection-sdk.md#authentication-flows-selection-choice) auprès du `USER_AUTH` flux. [Ce flux propose des méthodes d'authentification qui ne sont pas disponibles dans les flux d'authentification basés sur le client, par exemple l'authentification par [clé et sans mot](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passkey) de passe.](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless)
+ Pour choisir votre flux d'authentification dès le départ, déclarez l'[authentification basée sur le client](authentication-flows-selection-sdk.md#authentication-flows-selection-client) avec tout autre flux disponible dans le client de votre application.

Lorsque vous connectez des utilisateurs, le corps de votre [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html#CognitoUserPools-AdminInitiateAuth-request-AuthFlow)demande [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html#CognitoUserPools-InitiateAuth-request-AuthFlow)ou de votre demande doit inclure un `AuthFlow` paramètre.

Authentification basée sur les choix :

```
"AuthFlow": "USER_AUTH"
```

Authentification basée sur le client avec SRP :

```
"AuthFlow": "USER_SRP_AUTH"
```

------

## Ce qu'il faut savoir sur l'authentification auprès des groupes d'utilisateurs
<a name="authentication-flow-things-to-know"></a>

Tenez compte des informations suivantes lors de la conception de votre modèle d'authentification avec les groupes d'utilisateurs Amazon Cognito.

**Flux d'authentification dans la connexion gérée et dans l'interface utilisateur hébergée**  
La [connexion gérée](cognito-user-pools-managed-login.md) offre plus d'options d'authentification que l'interface utilisateur hébergée classique. Par exemple, les utilisateurs peuvent effectuer une authentification sans mot de passe et par clé d'accès uniquement dans le cadre d'une connexion gérée.

**Les flux d'authentification personnalisés sont uniquement disponibles dans l'authentification du AWS SDK**  
Vous ne pouvez pas créer de *flux d'authentification personnalisés*, ni [d'authentification personnalisée avec des déclencheurs Lambda](user-pool-lambda-challenge.md), avec une connexion gérée ou l'interface utilisateur hébergée classique. L'authentification personnalisée est disponible dans [l'authentification avec AWS SDKs](authentication-flows-selection-sdk.md).

**Connexion gérée pour la connexion à un fournisseur d'identité externe (IdP)**  
Vous ne pouvez pas connecter les utilisateurs par le biais [d' IdPsune authentification [tierce](cognito-user-pools-identity-federation.md) avec AWS SDKs](authentication-flows-selection-sdk.md). Vous devez implémenter la connexion gérée ou l'interface utilisateur hébergée classique, rediriger vers l'objet d'authentification obtenu IdPs, puis le traiter avec les bibliothèques OIDC de votre application. Pour plus d'informations sur la connexion gérée, consultez[Connexion gérée par le groupe d'utilisateurs](cognito-user-pools-managed-login.md).

**Effet de l'authentification sans mot de passe sur les autres fonctionnalités de l'utilisateur**  
L'activation de la connexion sans mot de passe avec des mots de [[passe ou des clés](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passkey) d'accès à usage unique](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless) dans votre groupe d'utilisateurs et votre client d'application a un effet sur la création et la migration des utilisateurs. Lorsque la connexion sans mot de passe est active :  

1. Les administrateurs peuvent créer des utilisateurs sans mot de passe. Le modèle de message d'invitation par défaut change pour ne plus inclure l'espace réservé au `{###}` mot de passe. Pour de plus amples informations, veuillez consulter [Création de comptes d’utilisateur en tant qu’administrateur](how-to-create-user-accounts.md).

1. Pour les [SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html)opérations basées sur le SDK, les utilisateurs ne sont pas tenus de fournir un mot de passe lors de leur inscription. La connexion gérée et l'interface utilisateur hébergée nécessitent un mot de passe sur la page d'inscription, même si l'authentification sans mot de passe est autorisée. Pour de plus amples informations, veuillez consulter [Inscription et confirmation des comptes d’utilisateur](signing-up-users-in-your-app.md).

1. Les utilisateurs importés à partir d'un fichier CSV peuvent se connecter immédiatement à l'aide des options sans mot de passe, sans réinitialiser leur mot de passe, si leurs attributs incluent une adresse e-mail ou un numéro de téléphone pour une option de connexion sans mot de passe disponible. 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).

1. L'authentification sans mot de passe n'invoque pas le déclencheur [Lambda de migration des utilisateurs](user-pool-lambda-migrate-user.md).

1. Les utilisateurs qui se connectent avec un premier facteur de mot de passe à usage unique (OTP) ne peuvent pas ajouter de [facteur d'authentification multifactorielle (MFA)](user-pool-settings-mfa.md) à leur session. Les clés d'accès avec vérification utilisateur peuvent satisfaire aux exigences de la MFA lorsqu'elles sont configurées avec. `MULTI_FACTOR_WITH_USER_VERIFICATION`

**La partie qui utilise le mot de passe ne URLs peut pas figurer sur la liste des suffixes publics**  
Vous pouvez utiliser les noms de domaine que vous possédez, par exemple`www.example.com`, comme ID de partie de confiance (RP) dans la configuration de votre clé d'accès. Cette configuration est destinée à prendre en charge les applications personnalisées qui s'exécutent sur des domaines que vous possédez. La [liste de suffixes publics](https://publicsuffix.org/), ou PSL, contient des domaines de haut niveau protégés. Amazon Cognito renvoie un message d'erreur lorsque vous tentez de définir l'URL de votre RP vers un domaine sur la PSL.

**Topics**
+ [Durée du flux de session d'authentification](#authentication-flow-session-duration)
+ [Comportement de verrouillage en cas d'échec des tentatives de connexion](#authentication-flow-lockout-behavior)

### Durée du flux de session d'authentification
<a name="authentication-flow-session-duration"></a>

En fonction des caractéristiques de votre groupe d'utilisateurs, vous pouvez être amené à relever plusieurs défis `RespondToAuthChallenge` avant que votre application ne récupère les jetons sur Amazon Cognito. `InitiateAuth` Amazon Cognito inclut une chaîne de session dans la réponse à chaque demande. Pour combiner vos requêtes d'API dans un flux d'authentification, incluez la chaîne de session de la réponse à la demande précédente dans chaque demande suivante. Par défaut, vos utilisateurs disposent de trois minutes pour terminer chaque défi avant l'expiration de la chaîne de session. Pour modifier cette période, modifiez la **Durée de session d'authentification** du client d'application. La procédure suivante explique comment modifier ce paramètre dans la configuration de votre client d'application.

**Note**  
Les paramètres de **durée de session du flux d'authentification** s'appliquent à l'authentification avec l'API des groupes d'utilisateurs Amazon Cognito. La connexion gérée définit la durée de session à 3 minutes pour l'authentification multifactorielle et à 8 minutes pour les codes de réinitialisation du mot de passe.

------
#### [ Amazon Cognito console ]

**Pour configurer la durée de session du flux d'authentification du client d'application (AWS Management Console)**

1. À partir de l’onglet **App integration** (Intégration d'applications) dans votre groupe d'utilisateurs, sélectionnez le nom de votre client d'application à partir du conteneur **App clients and analytics** (Clients d'applications et analyses).

1. Choisissez **Modifier** dans le conteneur **Informations sur le client d'application**.

1. Modifiez la valeur de la **durée de session du flux d'authentification** par la durée de validité que vous souhaitez, en minutes, pour les codes MFA des SMS et des e-mails. Cela modifie également le temps dont dispose chaque utilisateur pour réaliser un défi d'authentification dans votre client d'application.

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

------
#### [ User pools API ]

**Pour configurer la durée de session du flux d'authentification du client d'application (API Amazon Cognito)**

1. Préparez une demande `UpdateUserPoolClient` avec vos paramètres de groupe d’utilisateurs existants à partir d'une demande `DescribeUserPoolClient`. Votre demande `UpdateUserPoolClient` doit inclure toutes les propriétés du client d'application existant.

1. Modifiez la valeur de `AuthSessionValidity` et indiquez la durée de validité (en minutes) choisie pour les codes MFA par SMS. Cela modifie également le temps dont dispose chaque utilisateur pour réaliser un défi d'authentification dans votre client d'application.

------

Pour plus d'informations sur les clients d'application, consultez [Paramètres spécifiques à l'application avec les clients d'applications](user-pool-settings-client-apps.md).

### Comportement de verrouillage en cas d'échec des tentatives de connexion
<a name="authentication-flow-lockout-behavior"></a>

Après cinq tentatives de connexion infructueuses avec le mot de passe d'un utilisateur, que celles-ci soient demandées par le biais d'opérations d'API non authentifiées ou autorisées par IAM, Amazon Cognito verrouille votre utilisateur pendant une seconde. La durée du verrouillage double ensuite après chaque nouvelle tentative infructueuse, jusqu'à un maximum d'environ 15 minutes.

Les tentatives effectuées pendant une période de verrouillage génèrent une exception `Password attempts exceeded` et n'affectent pas la durée des périodes de verrouillage suivantes. Pour un nombre cumulé de tentatives de connexion infructueuses *n*, à l'exclusion des exceptions `Password attempts exceeded`, Amazon Cognito verrouille votre utilisateur pendant *2^(n-5)* secondes. Pour restaurer l'état initial du verrouillage (*n=0*), votre utilisateur doit parvenir à se connecter à l'issue d'une période de verrouillage ou ne lancer à aucun moment de tentative de connexion pendant 15 minutes consécutives après le verrouillage. Ce comportement est susceptible d'être modifié. Ce comportement ne s'applique pas aux défis personnalisés à moins qu'ils n'effectuent également une authentification basée sur un mot de passe.

## Exemple de session d'authentification
<a name="amazon-cognito-user-pools-authentication-flow"></a>

Le schéma et le step-by-step guide suivants illustrent un scénario typique dans lequel un utilisateur se connecte à une application. L'exemple d'application présente à un utilisateur plusieurs options de connexion. Ils en sélectionnent un en saisissant leurs informations d'identification, en fournissant un facteur d'authentification supplémentaire et en se connectant.

![\[Un organigramme qui montre une application qui invite un utilisateur à saisir des informations et le connecte à l'aide d'un AWS SDK.\]](http://docs.aws.amazon.com/fr_fr/cognito/latest/developerguide/images/authentication-api-userauth.png)


Imaginez une application avec une page de connexion où les utilisateurs peuvent se connecter à l'aide d'un nom d'utilisateur et d'un mot de passe, demander un code à usage unique dans un e-mail ou choisir une option d'empreinte digitale.

1. Demande de **connexion** : votre application affiche un écran d'accueil avec un bouton *de connexion*.

1. **Demande de connexion** : l'utilisateur sélectionne *Se connecter*. À partir d'un cookie ou d'un cache, votre application récupère leur nom d'utilisateur ou les invite à le saisir.

1. **Options de demande** : votre application demande les options de connexion de l'utilisateur par le biais d'une demande d'`InitiateAuth`API avec le `USER_AUTH` flux, demandant les méthodes de connexion disponibles pour l'utilisateur.

1. **Envoyer les options de connexion** : Amazon Cognito répond `PASSWORD` par`EMAIL_OTP`, et. `WEB_AUTHN` La réponse inclut un identifiant de session que vous pourrez rejouer dans la réponse suivante.

1. **Options d'affichage** : votre application affiche des éléments d'interface utilisateur permettant à l'utilisateur de saisir son nom d'utilisateur et son mot de passe, d'obtenir un code à usage unique ou de scanner son empreinte digitale.

1. **Choisissez les option/Enter informations d'identification** : l'utilisateur saisit son nom d'utilisateur et son mot de passe.

1. **Lancer l'authentification** : votre application fournit les informations de connexion de l'utilisateur avec une demande d'`RespondToAuthChallenge`API qui confirme la connexion par nom d'utilisateur/mot de passe et fournit le nom d'utilisateur et le mot de passe.

1. **Valider les informations d'identification** : Amazon Cognito confirme les informations d'identification de l'utilisateur.

1. **Défi supplémentaire** : l'utilisateur dispose d'une authentification multifactorielle configurée à l'aide d'une application d'authentification. Amazon Cognito renvoie un `SOFTWARE_TOKEN_MFA` défi.

1. Demande de **défi** : votre application affiche un formulaire demandant un mot de passe à usage unique basé sur le temps (TOTP) à l'application d'authentification de l'utilisateur.

1. **Défi de réponse** : L'utilisateur soumet le TOTP.

1. **Répondre au défi** : dans une autre `RespondToAuthChallenge` demande, votre application fournit le TOTP de l'utilisateur.

1. **Validez la réponse au défi** : Amazon Cognito confirme le code de l'utilisateur et détermine que votre groupe d'utilisateurs est configuré pour ne pas adresser de défis supplémentaires à l'utilisateur actuel.

1. **Émission de jetons** : Amazon Cognito renvoie l'identifiant, l'accès et l'actualisation des jetons Web JSON ()JWTs. L'authentification initiale de l'utilisateur est terminée.

1. **Stocker les jetons** : votre application met en cache les jetons de l'utilisateur afin de pouvoir référencer les données utilisateur, autoriser l'accès aux ressources et mettre à jour les jetons lorsqu'ils expirent.

1. **Afficher le contenu autorisé** : votre application détermine l'accès de l'utilisateur aux ressources en fonction de son identité et de ses rôles, et fournit le contenu de l'application.

1. **Accès au contenu** : l'utilisateur est connecté et commence à utiliser l'application.

1. **Demander du contenu avec un jeton expiré** : ultérieurement, l'utilisateur demande une ressource qui nécessite une autorisation. Le jeton mis en cache de l'utilisateur a expiré.

1. **Jetons d'actualisation** : votre application fait une `InitiateAuth` demande avec le jeton d'actualisation enregistré par l'utilisateur.

1. **Émission de jetons** : Amazon Cognito renvoie un nouvel identifiant et un nouvel accès. JWTs La session de l'utilisateur est actualisée en toute sécurité sans qu'il soit nécessaire de saisir des informations d'identification supplémentaires.

Vous pouvez utiliser des [AWS Lambda déclencheurs](cognito-user-pools-working-with-lambda-triggers.md) pour personnaliser le mode d'authentification des utilisateurs. Ces déclencheurs émettent et vérifient leurs propres défis dans le cadre du flux d'authentification.

Vous pouvez également utiliser le flux d'authentification de l'administration pour des serveurs backend sécurisés. Vous pouvez utiliser le [flux d'authentification de migration](cognito-user-pools-using-import-tool.md) des utilisateurs pour rendre la migration des utilisateurs possible sans qu'ils aient à réinitialiser leur mot de passe.

# Configuration des méthodes d'authentification pour la connexion gérée
<a name="authentication-flows-selection-managedlogin"></a>

Vous pouvez invoquer des [pages de connexion gérées](cognito-user-pools-managed-login.md), une interface Web pour l'authentification du groupe d'utilisateurs, lorsque vous souhaitez que les utilisateurs se connectent, se déconnectent ou réinitialisent leur mot de passe. Dans ce modèle, votre application importe des bibliothèques OIDC pour traiter les tentatives d'authentification par navigateur avec des pages de connexion gérées par un pool d'utilisateurs. Les formes d'authentification mises à la disposition de vos utilisateurs dépendent de la configuration de votre groupe d'utilisateurs et de votre client d'application. Implémentez le `ALLOW_USER_AUTH` flux dans votre client d'application et Amazon Cognito invite les utilisateurs à sélectionner une méthode de connexion parmi les options disponibles. Implémentez `ALLOW_USER_PASSWORD_AUTH` et attribuez un fournisseur SAML, et vos pages de connexion invitent les utilisateurs à saisir leur nom d'utilisateur et leur mot de passe ou à se connecter à leur IdP.

La console des groupes d'utilisateurs Amazon Cognito peut vous aider à configurer l'authentification de connexion gérée pour votre application. Lorsque vous créez un nouveau groupe d'utilisateurs, spécifiez la plate-forme pour laquelle vous développez. La console vous donne des exemples d'implémentation d'OIDC et de OAuth bibliothèques avec un code de démarrage pour implémenter des flux de connexion et de déconnexion. Vous pouvez créer une connexion gérée avec de nombreuses implémentations de parties dépendantes OIDC. Nous vous recommandons de travailler avec des [bibliothèques tierces certifiées par l'OIDC](https://openid.net/developers/certified-openid-connect-implementations/) dans la mesure du possible. Pour de plus amples informations, veuillez consulter [Démarrage avec les groupes d'utilisateurs](getting-started-user-pools.md).

Généralement, les bibliothèques tierces qui s'appuient sur l'OIDC vérifient régulièrement le `.well-known/openid-configuration` point de terminaison de votre groupe d'utilisateurs pour déterminer l'émetteur, URLs tel que le point de terminaison du jeton et le point de terminaison d'autorisation. Il est recommandé d'implémenter ce comportement de découverte automatique lorsque vous en avez l'option. La configuration manuelle des points de terminaison de l'émetteur présente un risque d'erreur. Par exemple, vous pouvez modifier le domaine de votre groupe d'utilisateurs. Le chemin d'accès `openid-configuration` n'étant pas lié au domaine de votre groupe d'utilisateurs, les applications qui découvrent automatiquement les points de terminaison du service détecteront automatiquement votre modification de domaine.

## Paramètres du groupe d'utilisateurs pour la connexion gérée
<a name="authentication-flows-selection-managedlogin-settings"></a>

Vous pouvez autoriser la connexion avec plusieurs fournisseurs pour votre application ou utiliser Amazon Cognito comme annuaire d'utilisateurs indépendant. Vous souhaiterez peut-être également collecter des attributs utilisateur, configurer et demander l'authentification MFA, ou exiger des adresses e-mail comme noms d'utilisateur. Vous ne pouvez pas modifier directement les champs dans la connexion gérée et dans l'interface utilisateur hébergée. Au lieu de cela, la configuration de votre groupe d'utilisateurs définit automatiquement la gestion des flux d'authentification par connexion gérée.

Les éléments de configuration du groupe d'utilisateurs suivants déterminent les méthodes d'authentification qu'Amazon Cognito présente aux utilisateurs dans le cadre de la connexion gérée et de l'interface utilisateur hébergée.

------
#### [ User pool options (Sign-in menu) ]

Les options suivantes se trouvent dans le menu de **connexion** d'un groupe d'utilisateurs dans la console Amazon Cognito.

**Options de connexion au groupe d'utilisateurs de Cognito**  
Possède des options pour les noms d'utilisateur. Vos pages de connexion gérée et d'interface utilisateur hébergée n'acceptent que les noms d'utilisateur dans les formats que vous sélectionnez. Lorsque, par exemple, vous configurez un groupe d'utilisateurs avec le **courrier électronique** comme seule option de connexion, vos pages de connexion gérées n'acceptent que les noms d'utilisateur au format e-mail.

**Attributs obligatoires**  
Lorsque vous définissez un attribut comme requis dans votre groupe d'utilisateurs, la connexion gérée invite les utilisateurs à saisir une valeur pour cet attribut lors de leur inscription.

**Options de connexion en fonction du choix**  
Dispose de paramètres pour les méthodes d'authentification dans[Authentification basée sur le choix](authentication-flows-selection-sdk.md#authentication-flows-selection-choice). Ici, vous pouvez activer ou désactiver des méthodes d'authentification telles que le mot de passe et l'authentification [sans mot](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passkey) de [passe](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless). Ces méthodes ne sont disponibles que pour les groupes d'utilisateurs dotés de [domaines de connexion gérés](managed-login-branding.md) et de [plans de fonctionnalités](cognito-sign-in-feature-plans.md) supérieurs au niveau **Lite**.

**Authentification multifacteur**  
La connexion gérée et l'interface utilisateur hébergée gèrent les opérations d'enregistrement et d'authentification pour le [MFA](user-pool-settings-mfa.md). Lorsque le MFA est requis dans votre groupe d'utilisateurs, vos pages de connexion invitent automatiquement les utilisateurs à configurer leur facteur supplémentaire. Ils invitent également les utilisateurs dotés d'une configuration MFA à effectuer l'authentification à l'aide d'un code MFA. Lorsque l'authentification multifacteur est désactivée ou facultative dans votre groupe d'utilisateurs, vos pages de connexion ne vous demandent pas de configurer la MFA.

**Récupération du compte utilisateur**  
Le paramètre de [récupération de compte]() en libre-service de votre groupe d'utilisateurs détermine si vos pages de connexion affichent un lien permettant aux utilisateurs de réinitialiser leur mot de passe.

------
#### [ User pool options (Domain menu) ]

Les options suivantes se trouvent dans le menu **Domaine** d'un groupe d'utilisateurs de la console Amazon Cognito.

**Domain**  
Le domaine du groupe d'utilisateurs que vous avez choisi définit le chemin du lien que les utilisateurs ouvrent lorsque vous appelez leur navigateur pour s'authentifier.

**Version de marque**  
Le choix d'une version de marque détermine si le domaine de votre groupe d'utilisateurs affiche la connexion gérée ou l'interface utilisateur hébergée.

------
#### [ User pool options (Social and external providers menu) ]

L'option suivante se trouve dans le menu des **fournisseurs sociaux et externes** d'un groupe d'utilisateurs dans la console Amazon Cognito.

**Prestataires**  
Les fournisseurs d'identité (IdPs) que vous ajoutez à votre groupe d'utilisateurs peuvent rester actifs ou inactifs pour chaque client d'application du groupe d'utilisateurs.

------
#### [ App client options ]

Les options suivantes se trouvent dans le menu **App clients** d'un groupe d'utilisateurs dans la console Amazon Cognito. Pour passer en revue ces options, sélectionnez un client d'application dans la liste.

**Guide de configuration rapide**  
Le guide de configuration rapide contient des exemples de code pour divers environnements de développement. Ils contiennent les bibliothèques nécessaires pour intégrer l'authentification de connexion gérée à votre application.

**Informations sur le client de l'application**  
Modifiez cette configuration IdPs pour la définir attribuée à l'application représentée par le client d'application actuel. Sur les pages de connexion gérées, Amazon Cognito affiche les choix proposés aux utilisateurs. Ces choix sont déterminés à partir des méthodes assignées et de l'IdP. Par exemple, si vous attribuez un `MySAML` nom d'IdP SAML 2.0 et un identifiant de groupe d'utilisateurs local, vos pages de connexion gérées affichent des instructions relatives à la méthode d'authentification et un bouton pour. `MySAML`

**Paramètres d'authentification**  
Modifiez cette configuration pour définir les méthodes d'authentification de votre application. Sur les pages de connexion gérées, Amazon Cognito affiche les choix proposés aux utilisateurs. Ces choix sont déterminés en fonction de la disponibilité du groupe d'utilisateurs en tant qu'IdP et des méthodes que vous attribuez. Par exemple, si vous attribuez une `ALLOW_USER_AUTH` authentification basée sur les choix, vos pages de connexion gérées affichent les choix disponibles, tels que la saisie d'une adresse e-mail et la connexion à l'aide d'un mot de passe. Les pages de connexion gérées affichent également des boutons pour les utilisateurs assignés IdPs.

**Pages de connexion**  
Définissez l'effet visuel de votre connexion gérée ou des pages interactives de votre interface utilisateur hébergée à l'aide des options disponibles dans cet onglet. Pour de plus amples informations, veuillez consulter [Appliquer une image de marque aux pages de connexion gérées](managed-login-branding.md).

------

# Gérez les méthodes d'authentification dans AWS SDKs
<a name="authentication-flows-selection-sdk"></a>

*Les utilisateurs des groupes d'utilisateurs Amazon Cognito peuvent se connecter à l'aide de diverses options ou facteurs de connexion initiale.* Pour certains facteurs, les utilisateurs peuvent effectuer un suivi grâce à l'authentification multifactorielle (MFA). Ces premiers facteurs incluent le nom d'utilisateur et le mot de passe, le mot de passe à usage unique, la clé d'accès et l'authentification personnalisée. Pour de plus amples informations, veuillez consulter [Flux d’authentification](amazon-cognito-user-pools-authentication-flow-methods.md). Lorsque votre application intègre des composants d'interface utilisateur et importe un module AWS SDK, vous devez créer une logique d'application pour l'authentification. Vous devez choisir l'une des deux méthodes principales et, à partir de cette méthode, les mécanismes d'authentification que vous souhaitez implémenter.

Vous pouvez implémenter l'*authentification basée sur le client* dans le cadre de laquelle votre application, ou client, déclare le type d'authentification à l'avance. L'autre option est l'*authentification basée sur les choix*, dans le cadre de laquelle votre application collecte un nom d'utilisateur et demande les types d'authentification disponibles pour les utilisateurs. Vous pouvez implémenter ces modèles ensemble dans la même application ou les répartir entre les clients d'applications, selon vos besoins. Chaque méthode possède des fonctionnalités qui lui sont propres, par exemple l'authentification personnalisée en mode client et l'authentification sans mot de passe en mode choix.

Dans les applications personnalisées qui effectuent l'authentification avec l'implémentation par le AWS SDK de l'API des groupes d'utilisateurs, vous devez structurer vos demandes d'API en fonction de la configuration du groupe d'utilisateurs, de la configuration du client de l'application et des préférences côté client. Une `InitiateAuth` session qui commence par un `AuthFlow` de `USER_AUTH` lance une authentification basée sur les choix. Amazon Cognito répond à votre API en vous demandant soit une méthode d'authentification préférée, soit une liste de choix. Une session qui commence par ou `CUSTOM_AUTH` passe directement à `AuthFlow` l'authentification personnalisée avec des déclencheurs Lambda.

Certaines méthodes d'authentification sont associées à l'un des deux types de flux, et certaines méthodes sont disponibles dans les deux types.

**Topics**
+ [Authentification basée sur le choix](#authentication-flows-selection-choice)
+ [Authentification basée sur le client](#authentication-flows-selection-client)

## Authentification basée sur le choix
<a name="authentication-flows-selection-choice"></a>

Votre application peut demander les méthodes d'authentification suivantes dans le cadre de l'authentification basée sur les choix. Déclarez ces options dans le `PREFERRED_CHALLENGE` paramètre de [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html#CognitoUserPools-InitiateAuth-request-AuthParameters)ou [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html#CognitoUserPools-AdminInitiateAuth-request-AuthParameters), ou dans le `ChallengeName` paramètre de [RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html#CognitoUserPools-RespondToAuthChallenge-request-ChallengeName)ou [AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html#CognitoUserPools-AdminRespondToAuthChallenge-request-ChallengeName).

1. `EMAIL_OTP` et `SMS_OTP`

   [Connexion sans mot de passe avec mots de passe uniques](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless)

1. `WEB_AUTHN`

   [Connexion sans mot de passe avec clés de passe WebAuthn](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passkey)

1. `PASSWORD`

   [Connectez-vous avec des mots de passe persistants](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-password)

   [Connectez-vous avec des mots de passe persistants et une charge utile sécurisée](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-srp)

   [MFA après connexion](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-mfa)

Pour passer en revue ces options dans leur contexte d'API, reportez-vous `ChallengeName` à [RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html#CognitoUserPools-RespondToAuthChallenge-request-ChallengeName).

La connexion basée sur les choix pose un défi en réponse à votre demande initiale. Ce défi vérifie qu'une option demandée est disponible ou fournit une liste des choix disponibles. Votre application peut présenter ces choix aux utilisateurs, qui saisissent ensuite les informations d'identification correspondant à leur méthode de connexion préférée et procèdent à l'authentification dans les réponses aux défis.

Vous disposez des options basées sur les choix suivantes dans votre flux d'authentification. Toutes les demandes de ce type nécessitent que votre application collecte d'abord un nom d'utilisateur ou le récupère dans un cache.

1. Options de demande avec `AuthParameters` ou `USERNAME` uniquement. Amazon Cognito renvoie un `SELECT_CHALLENGE` défi. À partir de là, votre application peut inviter l'utilisateur à sélectionner un défi et à renvoyer cette réponse à votre groupe d'utilisateurs.

1. Demandez un défi préféré avec `AuthParameters` of `PREFERRED_CHALLENGE` et les paramètres de votre défi préféré, le cas échéant. Par exemple, si vous demandez un `PREFERRED_CHALLENGE` de`PASSWORD_SRP`, vous devez également inclure`SRP_A`. Si votre utilisateur, votre groupe d'utilisateurs et votre client d'application sont tous configurés pour le défi préféré, Amazon Cognito répond à l'étape suivante de ce défi, par exemple `PASSWORD_VERIFIER` dans le `PASSWORD_SRP` flux ou [CodeDeliveryDetails](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CodeDeliveryDetailsType.html)dans les flux `EMAIL_OTP` et`SMS_OTP`. Si le défi préféré n'est pas disponible, Amazon Cognito répond en fournissant `SELECT_CHALLENGE` une liste des défis disponibles.

1. Connectez d'abord les utilisateurs, puis demandez leurs options d'authentification basées sur leurs choix. Une [GetUserAuthFactors](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUserAuthFactors.html)demande avec le jeton d'accès d'un utilisateur connecté renvoie ses facteurs d'authentification basés sur les choix disponibles et ses paramètres MFA. Avec cette option, un utilisateur peut d'abord se connecter avec un nom d'utilisateur et un mot de passe, puis activer une autre forme d'authentification. Vous pouvez également utiliser cette opération pour vérifier des options supplémentaires pour un utilisateur qui s'est connecté avec un défi préféré.

Pour [configurer le client de votre application](authentication.md#authentication-implement) pour une authentification basée sur les choix, ajoutez `ALLOW_USER_AUTH` aux flux d'authentification autorisés. Vous devez également choisir les facteurs basés sur le choix que vous souhaitez autoriser dans la configuration de votre groupe d'utilisateurs. Le processus suivant montre comment choisir des facteurs d'authentification basés sur le choix.

------
#### [ Amazon Cognito console ]

**Pour configurer les options d'authentification basées sur les choix dans un groupe d'utilisateurs**

1. Connectez-vous AWS et accédez à la console des [groupes d'utilisateurs Amazon Cognito](https://console.aws.amazon.com/cognito/v2/idp). Choisissez un groupe d'utilisateurs ou créez-en un nouveau.

1. Dans la configuration de votre groupe d'utilisateurs, sélectionnez le menu de **connexion**. **Localisez **les options de connexion basées sur les choix** et choisissez Modifier.**

1. L'option **Mot de passe** est toujours disponible. Cela inclut les `PASSWORD_SRP` flux `PASSWORD` et. Sélectionnez les **choix supplémentaires** que vous souhaitez ajouter aux options de vos utilisateurs. Vous pouvez ajouter une **clé d'accès** pour`WEB_AUTHN`, un mot de passe à **usage unique pour `EMAIL_OTP` un e-mail et un mot de passe** à **usage unique pour un message SMS** pour`SMS_OTP`.

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

------
#### [ API/SDK ]

Le corps partiel [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)ou de [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)demande suivant configure toutes les options disponibles pour l'authentification basée sur les choix.

```
"Policies": {
    "SignInPolicy": {
        "AllowedFirstAuthFactors": [
            "PASSWORD",
            "WEB_AUTHN",
            "EMAIL_OTP",
            "SMS_OTP"
        ]
    }
},
```

------

## Authentification basée sur le client
<a name="authentication-flows-selection-client"></a>

L'authentification basée sur le client prend en charge les flux d'authentification suivants. Déclarez ces options dans le `AuthFlow` paramètre de [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html#CognitoUserPools-InitiateAuth-request-AuthFlow)ou [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html#CognitoUserPools-AdminInitiateAuth-request-AuthFlow).

1. `USER_PASSWORD_AUTH` et `ADMIN_USER_PASSWORD_AUTH`

   [Connectez-vous avec des mots de passe persistants](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-password)

   [MFA après connexion](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-mfa)

   Ce flux d'authentification est équivalent à l'`PASSWORD`authentification basée sur les choix.

1. `USER_SRP_AUTH`

   [Connectez-vous avec des mots de passe persistants et une charge utile sécurisée](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-srp)

   [MFA après connexion](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-mfa)

   Ce flux d'authentification est équivalent à l'`PASSWORD_SRP`authentification basée sur les choix.

1. `REFRESH_TOKEN_AUTH`

   [Actualiser les jetons](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-refresh)

   Ce flux d'authentification n'est disponible que pour l'authentification basée sur le client.

1. `CUSTOM_AUTH`

   [Authentification personnalisée](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-custom)

   Ce flux d'authentification n'est disponible que pour l'authentification basée sur le client.

Dans le cas de l'authentification basée sur le client, Amazon Cognito part du principe que vous avez déterminé la manière dont votre utilisateur souhaite s'authentifier avant de commencer les flux d'authentification. La logique de détermination du facteur de connexion qu'un utilisateur souhaite fournir doit être déterminée à l'aide de paramètres par défaut ou d'instructions personnalisées, puis déclarée lors de la première demande adressée à votre groupe d'utilisateurs. La `InitiateAuth` demande déclare une connexion `AuthFlow` qui correspond directement à l'une des options répertoriées, par exemple`USER_SRP_AUTH`. Avec cette déclaration, la demande inclut également les paramètres permettant de commencer l'authentification, par exemple `USERNAME``SECRET_HASH`, et`SRP_A`. Amazon Cognito peut donner suite à cette demande avec des défis supplémentaires, tels que `PASSWORD_VERIFIER` pour le SRP ou `SOFTWARE_TOKEN_MFA` pour la connexion par mot de passe avec le TOTP MFA.

Pour [configurer votre client d'application](authentication.md#authentication-implement) pour l'authentification basée sur le client, ajoutez des flux d'authentification autres que les flux `ALLOW_USER_AUTH` d'authentification autorisés. Les exemples sont `ALLOW_USER_PASSWORD_AUTH``ALLOW_CUSTOM_AUTH`,`ALLOW_REFRESH_TOKEN_AUTH`. Pour autoriser les flux d'authentification basés sur le client, aucune configuration de groupe d'utilisateurs supplémentaire n'est requise.

# Flux d’authentification
<a name="amazon-cognito-user-pools-authentication-flow-methods"></a>

Le processus d'authentification auprès des groupes d'utilisateurs Amazon Cognito peut être décrit comme un *flux* dans lequel les utilisateurs font un choix initial, soumettent des informations d'identification et répondent à des défis supplémentaires. Lorsque vous implémentez l'authentification de connexion gérée dans votre application, Amazon Cognito gère le flux de ces demandes et de ces défis. Lorsque vous implémentez des flux avec un AWS SDK dans le back-end de votre application, vous devez élaborer la logique des demandes, inviter les utilisateurs à saisir des informations et relever les défis.

En tant qu'administrateur d'applications, vos caractéristiques d'utilisateur, vos exigences de sécurité et votre modèle d'autorisation vous aident à déterminer comment vous souhaitez autoriser les utilisateurs à se connecter. Posez-vous les questions suivantes.
+ Dois-je autoriser les utilisateurs à se connecter avec les informations d'identification d'[autres fournisseurs d'identité (IdPs)](#amazon-cognito-user-pools-authentication-flow-methods-federated) ?
+ Le [nom d'utilisateur et le mot de passe](#amazon-cognito-user-pools-authentication-flow-methods-password) sont-ils une preuve d'identité suffisante ?
+ Mes demandes d'authentification par nom d'utilisateur/mot de passe peuvent-elles être interceptées ? Est-ce que je veux que mon application transmette des mots de passe ou [négocie l'authentification à l'aide de hachages et de sels](#amazon-cognito-user-pools-authentication-flow-methods-srp) ?
+ Dois-je autoriser les utilisateurs à ignorer la saisie du mot de passe et à [recevoir un mot de passe à usage unique](#amazon-cognito-user-pools-authentication-flow-methods-passwordless) qui les connecte ?
+ Dois-je autoriser les utilisateurs à se connecter à l'aide d'une [empreinte digitale, d'un visage ou d'une clé de sécurité matérielle](#amazon-cognito-user-pools-authentication-flow-methods-passkey) ?
+ Quand dois-je exiger l'[authentification multifactorielle (MFA](#amazon-cognito-user-pools-authentication-flow-methods-mfa)), le cas échéant ?
+ Est-ce que je souhaite [conserver les sessions utilisateur sans avoir à nouveau à saisir les informations d'identification](#amazon-cognito-user-pools-authentication-flow-methods-refresh) ?
+ Est-ce que je souhaite [étendre mon modèle d'autorisation](#amazon-cognito-user-pools-authentication-flow-methods-custom) au-delà des fonctionnalités intégrées d'Amazon Cognito ?

Lorsque vous aurez les réponses à ces questions, vous pourrez apprendre à activer les fonctionnalités pertinentes et à les implémenter dans les demandes d'authentification effectuées par votre application.

Une fois que vous avez configuré les flux de connexion pour un utilisateur, vous pouvez vérifier son statut actuel en matière de MFA [et](authentication-flows-selection-sdk.md#authentication-flows-selection-choice) de facteurs d'authentification basés sur le choix à l'aide des demandes adressées à [GetUserAuthFactors](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUserAuthFactors.html)l'opération API. Cette opération nécessite une autorisation avec le jeton d'accès d'un utilisateur connecté. Il renvoie les facteurs d'authentification utilisateur et les paramètres MFA.

**Topics**
+ [Connectez-vous avec un tiers IdPs](#amazon-cognito-user-pools-authentication-flow-methods-federated)
+ [Connectez-vous avec des mots de passe persistants](#amazon-cognito-user-pools-authentication-flow-methods-password)
+ [Connectez-vous avec des mots de passe persistants et une charge utile sécurisée](#amazon-cognito-user-pools-authentication-flow-methods-srp)
+ [Connexion sans mot de passe avec mots de passe uniques](#amazon-cognito-user-pools-authentication-flow-methods-passwordless)
+ [Connexion sans mot de passe avec clés de passe WebAuthn](#amazon-cognito-user-pools-authentication-flow-methods-passkey)
+ [MFA après connexion](#amazon-cognito-user-pools-authentication-flow-methods-mfa)
+ [Actualiser les jetons](#amazon-cognito-user-pools-authentication-flow-methods-refresh)
+ [Authentification personnalisée](#amazon-cognito-user-pools-authentication-flow-methods-custom)
+ [Flux d'authentification pour la migration d'utilisateurs](#amazon-cognito-user-pools-user-migration-authentication-flow)

## Connectez-vous avec un tiers IdPs
<a name="amazon-cognito-user-pools-authentication-flow-methods-federated"></a>

Les groupes d'utilisateurs Amazon Cognito servent d'intermédiaire pour les sessions d'authentification entre les services IdPs Sign in with Apple, Login with Amazon et OpenID Connect (OIDC). Ce processus est également appelé *connexion fédérée ou authentification* *fédérée*. L'authentification fédérée n'utilise aucun des flux d'authentification que vous pouvez intégrer à votre client d'application. Au lieu de cela, vous attribuez un groupe d'utilisateurs configuré IdPs à votre client d'application. La connexion fédérée se produit lorsque les utilisateurs sélectionnent leur IdP dans la connexion gérée ou lorsque votre application ouvre une session avec une redirection vers leur page de connexion IdP.

Avec la connexion fédérée, vous déléguez les facteurs d'authentification principaux et MFA à l'IdP de l'utilisateur. Amazon Cognito n'ajoute pas les autres flux avancés de cette section à un utilisateur fédéré, sauf si vous [les liez à un](cognito-user-pools-identity-federation-consolidate-users.md) utilisateur local. Les utilisateurs fédérés non liés ont des noms d'utilisateur, mais il s'agit d'un magasin de données attributaires mappées qui ne sont généralement pas utilisées pour la connexion indépendamment du flux basé sur le navigateur.

**Ressources de mise en œuvre**
+ [Connexion au groupe d'utilisateurs avec des fournisseurs d'identité tiers](cognito-user-pools-identity-federation.md)

## Connectez-vous avec des mots de passe persistants
<a name="amazon-cognito-user-pools-authentication-flow-methods-password"></a>

Dans les groupes d'utilisateurs Amazon Cognito, chaque utilisateur possède un nom d'utilisateur. Il peut s'agir d'un numéro de téléphone, d'une adresse e-mail ou d'un identifiant choisi ou fourni par l'administrateur. Les utilisateurs de ce type peuvent se connecter à l'aide de leur nom d'utilisateur et de leur mot de passe, et éventuellement fournir un MFA. Les groupes d'utilisateurs peuvent effectuer une connexion par nom d'utilisateur et mot de passe à l'aide d'opérations d'API et de méthodes SDK publiques ou autorisées par l'IAM. Votre application peut directement envoyer le mot de passe à votre groupe d'utilisateurs pour authentification. Votre groupe d'utilisateurs répond à des défis supplémentaires ou aux jetons Web JSON (JWTs) résultant d'une authentification réussie.

------
#### [ Activate password sign-in ]

Pour activer l'[authentification basée sur le client](authentication-flows-selection-sdk.md#authentication-flows-selection-client) avec nom d'utilisateur et mot de passe, configurez le client de votre application pour l'autoriser. Dans la console Amazon Cognito, accédez au menu **Clients de l'application** sous **Applications** dans la configuration de votre groupe d'utilisateurs. **Pour autoriser la connexion par mot de passe simple pour une application mobile ou native côté client, modifiez un client d'application et choisissez **Se connecter avec un nom d'utilisateur et un mot de passe : ALLOW\$1USER\$1PASSWORD\$1AUTH sous** Flux d'authentification.** Pour autoriser la connexion par mot de passe simple pour une application côté serveur, modifiez un client d'application et choisissez **Se connecter avec des informations d'identification administratives côté serveur : ALLOW\$1ADMIN\$1USER\$1PASSWORD\$1AUTH**.

Pour activer l'[authentification basée sur les choix](authentication-flows-selection-sdk.md#authentication-flows-selection-choice) avec nom d'utilisateur et mot de passe, configurez le client de votre application pour l'autoriser. Modifiez le client de votre application et choisissez la **connexion basée sur les choix :** ALLOW\$1USER\$1AUTH.

![\[Capture d'écran de la console Amazon Cognito illustrant le choix des flux d'authentification par mot de passe simple pour un client d'application. Les options ALLOW_USER_PASSWORD_AUTH, ALLOW_ADMIN_USER_PASSWORD_AUTH et ALLOW_USER_AUTH ont été sélectionnées.\]](http://docs.aws.amazon.com/fr_fr/cognito/latest/developerguide/images/screenshot-choose-password-admin-password-and-user-auth.png)


Pour vérifier que l'authentification par mot de passe est disponible dans les flux d'authentification basés sur les choix, accédez au **menu de connexion et consultez** la section sous **Options pour la connexion basée sur les choix**. Vous pouvez vous connecter avec une authentification par mot de passe simple si le **mot de passe** est visible sous Choix **disponibles.** L'option **Mot de passe** inclut les variantes d'authentification par nom d'utilisateur et mot de passe simples et SRP.

![\[Capture d'écran de la console Amazon Cognito qui illustre le choix de l'authentification par mot de passe dans la configuration de connexion basée sur le choix USER_AUTH pour un groupe d'utilisateurs. L'option Mot de passe apparaît comme active.\]](http://docs.aws.amazon.com/fr_fr/cognito/latest/developerguide/images/screenshot-password-flow-in-user-auth.png)


Configurez `ExplicitAuthFlows` avec vos options username-and-password d'authentification préférées dans une [UpdateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPoolClient.html)demande [CreateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html)ou.

```
"ExplicitAuthFlows": [ 
   "ALLOW_USER_PASSWORD_AUTH",
   "ALLOW_ADMIN_USER_PASSWORD_AUTH",
   "ALLOW_USER_AUTH"
]
```

Dans une [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)demande [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)ou, configurez `Policies` avec les flux d'authentification basés sur les choix que vous souhaitez prendre en charge. La `PASSWORD` valeur in `AllowedFirstAuthFactors` inclut à la fois les options de flux d'authentification par mot de passe brut et SRP.

```
"Policies": {
   "SignInPolicy": {
      "AllowedFirstAuthFactors": [
         "PASSWORD",
         "EMAIL_OTP",
         "WEB_AUTHN"
      ]
   }
}
```

------
#### [ Choice-based sign-in with a password ]

Pour connecter un utilisateur à une application à l'aide de l'authentification par nom d'utilisateur et mot de passe, configurez le corps de votre [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)requête [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)ou de la manière suivante. Cette demande de connexion aboutit ou passe au défi suivant si l'utilisateur actuel est éligible à l'authentification par nom d'utilisateur/mot de passe. Dans le cas contraire, il fournit une liste des défis d'authentification par facteur principal disponibles. Cet ensemble de paramètres est le minimum requis pour la connexion. Des paramètres supplémentaires sont disponibles.

```
{
   "AuthFlow": "USER_AUTH",
   "AuthParameters": { 
      "USERNAME" : "testuser",
      "PREFERRED_CHALLENGE" : "PASSWORD",
      "PASSWORD" : "[User's password]"
   },
   "ClientId": "1example23456789"
}
```

Vous pouvez également omettre la `PREFERRED_CHALLENGE` valeur et recevoir une réponse contenant une liste des facteurs de connexion éligibles pour l'utilisateur.

```
{
   "AuthFlow": "USER_AUTH",
   "AuthParameters": { 
      "USERNAME" : "testuser"
   },
   "ClientId": "1example23456789"
}
```

Si vous n'avez pas soumis de défi préféré ou si l'utilisateur soumis n'est pas éligible à son défi préféré, Amazon Cognito renvoie une liste d'options dans. `AvailableChallenges` En `AvailableChallenges` cas d'inclusion `ChallengeName` d'un ou`PASSWORD`, vous pouvez poursuivre l'authentification avec une réponse [RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)ou un [AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html)défi au format suivant. Vous devez transmettre un `Session` paramètre qui associe la réponse au défi à la réponse de l'API à votre demande de connexion initiale. Cet ensemble de paramètres est le minimum requis pour la connexion. Des paramètres supplémentaires sont disponibles.

```
{
   "ChallengeName": "PASSWORD",
   "ChallengeResponses": { 
      "USERNAME" : "testuser",
      "PASSWORD" : "[User's Password]"
   },
   "ClientId": "1example23456789",
   "Session": "[Session ID from the previous response"
}
```

Amazon Cognito répond aux demandes de défi préféré éligibles et réussies à l'aide de jetons ou d'un `PASSWORD` défi supplémentaire tel que l'authentification multifactorielle (MFA).

------
#### [ Client-based sign-in with a password ]

Pour connecter un utilisateur à une application côté client avec une authentification par nom d'utilisateur et mot de passe, configurez le corps de votre demande comme suit. [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html) Cet ensemble de paramètres est le minimum requis pour la connexion. Des paramètres supplémentaires sont disponibles.

```
{
   "AuthFlow": "USER_PASSWORD_AUTH",
   "AuthParameters": { 
      "USERNAME" : "testuser",
      "PASSWORD" : "[User's password]"
   },
   "ClientId": "1example23456789"
}
```

Pour connecter un utilisateur à une application côté serveur avec une authentification par nom d'utilisateur et mot de passe, configurez le corps de votre demande comme suit. [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html) Votre application doit signer cette demande avec des AWS informations d'identification. Cet ensemble de paramètres est le minimum requis pour la connexion. Des paramètres supplémentaires sont disponibles.

```
{
   "AuthFlow": "ADMIN_USER_PASSWORD_AUTH",
   "AuthParameters": { 
      "USERNAME" : "testuser",
      "PASSWORD" : "[User's password]"
   },
   "ClientId": "1example23456789"
}
```

Amazon Cognito répond aux demandes réussies à l'aide de jetons ou à un défi supplémentaire, tel que l'authentification multifactorielle (MFA).

------

## Connectez-vous avec des mots de passe persistants et une charge utile sécurisée
<a name="amazon-cognito-user-pools-authentication-flow-methods-srp"></a>

Le protocole SRP (Secure Remote Password) constitue une autre forme de méthode de connexion par nom d'utilisateur et mot de passe dans les groupes d'utilisateurs. Cette option envoie la preuve de la connaissance d'un mot de passe (hachage et sel de mot de passe) que votre groupe d'utilisateurs peut vérifier. En l'absence d'informations secrètes lisibles dans la demande adressée à Amazon Cognito, votre application est la seule entité qui traite les mots de passe saisis par les utilisateurs. L'authentification SRP implique des calculs mathématiques qu'il est préférable d'effectuer par un composant existant que vous pouvez importer dans votre SDK. Le SRP est généralement implémenté dans des applications côté client telles que les applications mobiles. Pour plus d'informations sur le protocole, consultez la page d'[accueil du Stanford SRP](http://srp.stanford.edu/). [Wikipédia](https://en.wikipedia.org/wiki/Secure_Remote_Password_protocol) propose également des ressources et des exemples. [Diverses bibliothèques publiques](https://en.wikipedia.org/wiki/Secure_Remote_Password_protocol#Implementations) sont disponibles pour effectuer les calculs SRP pour vos flux d'authentification.

La initiate-challenge-respond séquence d'authentification Amazon Cognito valide les utilisateurs et leurs mots de passe avec le SRP. Vous devez configurer votre groupe d'utilisateurs et votre client d'application pour prendre en charge l'authentification SRP, puis implémenter la logique des demandes de connexion et des réponses aux défis dans votre application. Vos bibliothèques SRP peuvent générer des nombres aléatoires et des valeurs calculées qui démontrent à votre groupe d'utilisateurs que vous êtes en possession du mot de passe d'un utilisateur. Votre application saisit ces valeurs calculées dans les `ChallengeParameters` champs au format JSON `AuthParameters` et dans les opérations d'API des groupes d'utilisateurs Amazon Cognito et dans les méthodes du SDK pour l'authentification.

------
#### [ Activate SRP sign-in ]

Pour activer l'[authentification basée sur le client](authentication-flows-selection-sdk.md#authentication-flows-selection-client) avec nom d'utilisateur et SRP, configurez le client de votre application pour l'autoriser. Dans la console Amazon Cognito, accédez au menu **Clients de l'application** sous **Applications** dans la configuration de votre groupe d'utilisateurs. **Pour autoriser la connexion SRP pour une application mobile ou native côté client, modifiez un client d'application et choisissez **Se connecter avec un mot de passe distant sécurisé (SRP) : ALLOW\$1USER\$1SRP\$1AUTH** sous Flux d'authentification.**

Pour activer l'[authentification basée sur les choix](authentication-flows-selection-sdk.md#authentication-flows-selection-choice) avec nom d'utilisateur et SRP, modifiez le client de votre application et choisissez **Connexion basée sur les choix :** ALLOW\$1USER\$1AUTH.

![\[Capture d'écran de la console Amazon Cognito illustrant le choix des flux d'authentification à distance sécurisés par mot de passe pour un client d'application. Les options ALLOW_USER_SRP_AUTH et ALLOW_USER_AUTH ont été sélectionnées.\]](http://docs.aws.amazon.com/fr_fr/cognito/latest/developerguide/images/screenshot-choose-SRP-and-user-auth.png)


Pour vérifier que l'authentification SRP est disponible dans vos flux d'authentification basés sur les choix, accédez au **menu de connexion et consultez** la section sous **Options pour** la connexion basée sur les choix. Vous pouvez vous connecter avec l'authentification SRP si le **mot de passe** est visible sous **Choix disponibles**. L'option **Mot de passe** inclut les variantes d'authentification en texte clair et SRP par nom d'utilisateur/mot de passe.

![\[Capture d'écran de la console Amazon Cognito qui illustre le choix de l'authentification par mot de passe dans la configuration de connexion basée sur le choix USER_AUTH pour un groupe d'utilisateurs. L'option Mot de passe est affichée comme étant active.\]](http://docs.aws.amazon.com/fr_fr/cognito/latest/developerguide/images/screenshot-password-flow-in-user-auth.png)


Configurez `ExplicitAuthFlows` avec vos options username-and-password d'authentification préférées dans une [UpdateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPoolClient.html)demande [CreateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html)ou.

```
"ExplicitAuthFlows": [ 
   "ALLOW_USER_SRP_AUTH",
   "ALLOW_USER_AUTH"
]
```

Dans une [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)demande [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)ou, configurez `Policies` avec les flux d'authentification basés sur les choix que vous souhaitez prendre en charge. La `PASSWORD` valeur in `AllowedFirstAuthFactors` inclut à la fois les options de flux d'authentification en texte brut et SRP.

```
"Policies": {
   "SignInPolicy": {
      "AllowedFirstAuthFactors": [
         "PASSWORD",
         "EMAIL_OTP",
         "WEB_AUTHN"
      ]
   }
}
```

------
#### [ Choice-based sign-in with SRP ]

Pour connecter un utilisateur à une application avec une authentification par nom d'utilisateur et mot de passe avec SRP, configurez le corps de votre demande [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)ou [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)de la manière suivante. Cette demande de connexion aboutit ou passe au défi suivant si l'utilisateur actuel est éligible à l'authentification par nom d'utilisateur/mot de passe. Dans le cas contraire, il fournit une liste des défis d'authentification par facteur principal disponibles. Cet ensemble de paramètres est le minimum requis pour la connexion. Des paramètres supplémentaires sont disponibles.

```
{
   "AuthFlow": "USER_AUTH",
   "AuthParameters": { 
      "USERNAME" : "testuser",
      "PREFERRED_CHALLENGE" : "PASSWORD_SRP",
      "SRP_A" : "[g^a % N]"
   },
   "ClientId": "1example23456789"
}
```

Vous pouvez également omettre la `PREFERRED_CHALLENGE` valeur et recevoir une réponse contenant une liste des facteurs de connexion éligibles pour l'utilisateur.

```
{
   "AuthFlow": "USER_AUTH",
   "AuthParameters": { 
      "USERNAME" : "testuser"
   },
   "ClientId": "1example23456789"
}
```

Si vous n'avez pas soumis de défi préféré ou si l'utilisateur soumis n'est pas éligible à son défi préféré, Amazon Cognito renvoie une liste d'options dans. `AvailableChallenges` En `AvailableChallenges` cas d'inclusion `ChallengeName` d'un ou`PASSWORD_SRP`, vous pouvez poursuivre l'authentification avec une réponse [RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)ou un [AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html)défi au format suivant. Vous devez transmettre un `Session` paramètre qui associe la réponse au défi à la réponse de l'API à votre demande de connexion initiale. Cet ensemble de paramètres est le minimum requis pour la connexion. Des paramètres supplémentaires sont disponibles.

```
{
   "ChallengeName": "PASSWORD_SRP",
   "ChallengeResponses": { 
      "USERNAME" : "testuser",
      "SRP_A" : "[g^a % N]"
   },
   "ClientId": "1example23456789",
   "Session": "[Session ID from the previous response"
}
```

Amazon Cognito répond aux demandes de défi préféré éligibles et aux réponses de défi par `PASSWORD_SRP` un défi. `PASSWORD_VERIFIER` Votre client doit effectuer les calculs du SRP et répondre au défi par le biais d'une [AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html)demande [RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)ou d'une demande.

```
{
   "ChallengeName": "PASSWORD_VERIFIER",
   "ChallengeResponses": { 
      "PASSWORD_CLAIM_SIGNATURE" : "string",
      "PASSWORD_CLAIM_SECRET_BLOCK" : "string",
      "TIMESTAMP" : "string"
   },
   "ClientId": "1example23456789",
   "Session": "[Session ID from the previous response]"
}
```

En cas de réponse réussie à un `PASSWORD_VERIFIER` défi, Amazon Cognito émet des jetons ou un autre défi obligatoire tel que l'authentification multifactorielle (MFA).

------
#### [ Client-based sign-in with SRP ]

L'authentification SRP est plus courante pour l'authentification côté client que pour l'authentification côté serveur. Toutefois, vous pouvez utiliser l'authentification SRP avec [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)et [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html). Pour connecter un utilisateur à une application, configurez le corps de votre `AdminInitiateAuth` demande `InitiateAuth` ou de votre demande comme suit. Cet ensemble de paramètres est le minimum requis pour la connexion. Des paramètres supplémentaires sont disponibles.

Le client génère `SRP_A` à partir d'un générateur modulo N *g* élevé à la puissance d'un entier aléatoire secret *a.*

```
{
   "AuthFlow": "USER_SRP_AUTH",
   "AuthParameters": { 
      "USERNAME" : "testuser",
      "SRP_A" : "[g^a % N]"
   },
   "ClientId": "1example23456789"
}
```

Amazon Cognito répond par une question de sécurité `PASSWORD_VERIFIER`. Votre client doit effectuer les calculs du SRP et répondre au défi par le biais d'une [AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html)demande [RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)ou d'une demande.

```
{
   "ChallengeName": "PASSWORD_VERIFIER",
   "ChallengeResponses": { 
      "PASSWORD_CLAIM_SIGNATURE" : "string",
      "PASSWORD_CLAIM_SECRET_BLOCK" : "string",
      "TIMESTAMP" : "string"
   },
   "ClientId": "1example23456789",
   "Session": "[Session ID from the previous response]"
}
```

En cas de réponse réussie à un `PASSWORD_VERIFIER` défi, Amazon Cognito émet des jetons ou un autre défi obligatoire tel que l'authentification multifactorielle (MFA).

------

## Connexion sans mot de passe avec mots de passe uniques
<a name="amazon-cognito-user-pools-authentication-flow-methods-passwordless"></a>

Les mots de passe peuvent être perdus ou volés. Vous souhaiterez peut-être vérifier uniquement que vos utilisateurs ont accès à une adresse e-mail, à un numéro de téléphone ou à une application d'authentification vérifiés. La solution consiste à se connecter *sans mot* de passe. Votre application peut inviter les utilisateurs à saisir leur nom d'utilisateur, leur adresse e-mail ou leur numéro de téléphone. Amazon Cognito génère ensuite un mot de passe à usage unique (OTP), un code qu'ils doivent confirmer. Un code réussi termine l'authentification.

Les flux d'authentification par mot de passe à usage unique (OTP) ne sont pas compatibles avec l'authentification multifactorielle (MFA) requise dans votre groupe d'utilisateurs. L'authentification par clé d'accès avec vérification de l'utilisateur peut satisfaire aux exigences de la MFA lorsque vous `FactorConfiguration` définissez cette option. `MULTI_FACTOR_WITH_USER_VERIFICATION` Si le MFA est facultatif dans votre groupe d'utilisateurs, les utilisateurs qui ont activé le MFA ne peuvent pas se connecter avec un premier facteur OTP. Les utilisateurs qui n'ont pas de préférence MFA dans un groupe d'utilisateurs optionnel peuvent se connecter sans mot de passe. Pour de plus amples informations, veuillez consulter [Ce qu'il faut savoir sur le MFA pour groupes d'utilisateurs](user-pool-settings-mfa.md#user-pool-settings-mfa-prerequisites).

Lorsqu'un utilisateur saisit correctement un code reçu dans un SMS ou un e-mail dans le cadre de l'authentification sans mot de passe, en plus d'authentifier l'utilisateur, votre groupe d'utilisateurs marque l'adresse e-mail ou l'attribut de numéro de téléphone non vérifié de l'utilisateur comme vérifié. Le statut de l'utilisateur est également passé de `UNCONFIRMED` à`CONFIRMED`, que vous ayez ou non configuré votre groupe d'utilisateurs pour [vérifier automatiquement les](signing-up-users-in-your-app.md) adresses e-mail ou les numéros de téléphone.

**Nouvelles options avec connexion sans mot de passe**  
Lorsque vous activez l'authentification sans mot de passe dans votre groupe d'utilisateurs, cela modifie le fonctionnement de certains flux d'utilisateurs.

1. Les utilisateurs peuvent s'inscrire sans mot de passe et choisir un facteur sans mot de passe lorsqu'ils se connectent. Vous pouvez également créer des utilisateurs sans mot de passe en tant qu'administrateur.

1. Les utilisateurs que vous [importez à l'aide d'un fichier CSV](cognito-user-pools-using-import-tool.md) peuvent se connecter immédiatement sans mot de passe. Ils ne sont pas tenus de définir un mot de passe avant de se connecter.

1. Les utilisateurs qui n'ont pas de mot de passe peuvent envoyer des demandes d'[ChangePassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ChangePassword.html)API sans le `PreviousPassword` paramètre.

**Connexion automatique avec OTPs**  
Les utilisateurs qui s'inscrivent et confirment leur compte utilisateur par e-mail ou SMS OTPs peuvent se connecter automatiquement en utilisant le facteur sans mot de passe correspondant à leur message de confirmation. Dans l'interface utilisateur de connexion gérée, les utilisateurs qui confirment leurs comptes et sont éligibles à la connexion OTP avec le mode de livraison du code de confirmation passent automatiquement à leur première connexion après avoir fourni le code de confirmation. Dans votre application personnalisée dotée d'un AWS SDK, transmettez les paramètres suivants à une opération [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)or [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html).
+ Le `Session` paramètre issu de la réponse de [ConfirmSignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html)l'API en tant que paramètre de `Session` demande.
+ Un [AuthFlow](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html#CognitoUserPools-InitiateAuth-request-AuthFlow)de`USER_AUTH`.

Vous pouvez réussir un [PREFERRED\$1CHALLENGE](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html#CognitoUserPools-InitiateAuth-request-AuthParameters) de `EMAIL_OTP` ou`SMS_OTP`, mais ce n'est pas obligatoire. Le `Session` paramètre fournit une preuve d'authentification et Amazon Cognito l'ignore `AuthParameters` lorsque vous transmettez un code de session valide.

L'opération de connexion renvoie la réponse indiquant la réussite de l'authentification [AuthenticationResult](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AuthenticationResultType.html), sans difficulté supplémentaire si les conditions suivantes sont réunies.
+ Le `Session` code est valide et n'a pas expiré.
+ L'utilisateur est éligible à la méthode d'authentification OTP.

------
#### [ Activate passwordless sign-in ]

**Console**  
Pour activer la connexion sans mot de passe, configurez votre groupe d'utilisateurs pour autoriser la connexion principale avec un ou plusieurs types sans mot de passe, puis configurez votre client d'application pour autoriser le flux. `USER_AUTH` Dans la console Amazon Cognito, accédez au menu de **connexion** sous **Authentification** dans la configuration de votre groupe d'utilisateurs. Modifiez **les options pour une connexion basée sur le choix** et choisissez le mot de passe à **usage unique pour les e-mails ou le mot de passe** à usage **unique pour les SMS**. Vous pouvez activer les deux options. Enregistrez vos modifications.

Accédez au menu des **clients de l'application** et choisissez un client d'application ou créez-en un nouveau. Sélectionnez **Modifier**, puis **sélectionnez un type d'authentification lors de la connexion : ALLOW\$1USER\$1AUTH**.

**API/SDK**  
Dans l'API des groupes d'utilisateurs, configurez `SignInPolicy` avec les options sans mot de passe appropriées dans une demande [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)or [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html).

```
"SignInPolicy": { 
    "AllowedFirstAuthFactors": [ 
        "EMAIL_OTP",
        "SMS_OTP"
    ]
}
```

Configurez votre client `ExplicitAuthFlows` d'application avec l'option requise dans une [UpdateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPoolClient.html)demande [CreateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html)ou.

```
"ExplicitAuthFlows": [ 
   "ALLOW_USER_AUTH"
]
```

------
#### [ Sign in with passwordless ]

La connexion sans mot de passe n'a pas de [fonction client](authentication-flows-selection-sdk.md#authentication-flows-selection-client) `AuthFlow` que vous pouvez spécifier dans et. [InitiateAuth[AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html) L'authentification OTP n'est disponible que dans la version [basée sur le choix](authentication-flows-selection-sdk.md#authentication-flows-selection-choice) `AuthFlow``USER_AUTH`, où vous pouvez demander une option de connexion préférée ou choisir l'option sans mot de passe parmi celles d'un utilisateur. [AvailableChallenges](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html#CognitoUserPools-InitiateAuth-response-AvailableChallenges) Pour connecter un utilisateur à une application, configurez le corps de votre `AdminInitiateAuth` demande `InitiateAuth` ou de votre demande comme suit. Cet ensemble de paramètres est le minimum requis pour la connexion. Des paramètres supplémentaires sont disponibles.

Dans cet exemple, nous ne savons pas de quelle manière l'utilisateur souhaite se connecter. Si nous ajoutons un `PREFERRED_CHALLENGE` paramètre et que le défi préféré est disponible pour l'utilisateur, Amazon Cognito répond par ce défi.

```
{
   "AuthFlow": "USER_AUTH",
   "AuthParameters": { 
      "USERNAME" : "testuser"
   },
   "ClientId": "1example23456789"
}
```

Vous pouvez plutôt ajouter `"PREFERRED_CHALLENGE": "EMAIL_OTP"` ou `"PREFERRED_CHALLENGE": "SMS_OTP"` à `AuthParameters` dans cet exemple. Si l'utilisateur est éligible à cette méthode préférée, votre groupe d'utilisateurs envoie immédiatement un code à l'adresse e-mail ou au numéro de téléphone de l'utilisateur et renvoie `"ChallengeName": "EMAIL_OTP"` ou`"ChallengeName": "SMS_OTP"`.

Si vous ne spécifiez pas de défi préféré, Amazon Cognito répond avec un `AvailableChallenges` paramètre.

```
{
   "AvailableChallenges": [ 
      "EMAIL_OTP", 
      "SMS_OTP",
      "PASSWORD"
    ],
   "Session": "[Session ID]"
}
```

Cet utilisateur est éligible à une connexion sans mot de passe avec un e-mail OTP, un SMS OTP et un nom d'utilisateur-mot de passe. Votre application peut demander à l'utilisateur de faire sa sélection ou effectuer une sélection en fonction de la logique interne. Il procède ensuite à une [AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html)demande [RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)ou qui sélectionne le défi. Supposons que l'utilisateur souhaite effectuer une authentification sans mot de passe avec un message électronique OTP.

```
{
   "ChallengeName": "SELECT_CHALLENGE",
   "ChallengeResponses": { 
      "USERNAME" : "testuser",
      "ANSWER" : "EMAIL_OTP" 
   },
   "ClientId": "1example23456789",
   "Session": "[Session ID from the previous response]"
}
```

Amazon Cognito répond par un `EMAIL_OTP` défi et envoie un code à l'adresse e-mail vérifiée de votre utilisateur. Votre candidature doit ensuite répondre à nouveau à ce défi.

Ce serait également la prochaine réponse au défi si vous en faites la demande `EMAIL_OTP` en tant que`PREFERRED_CHALLENGE`.

```
{
   "ChallengeName": "EMAIL_OTP",
   "ChallengeResponses": {
      "USERNAME" : "testuser", 
      "EMAIL_OTP_CODE" : "123456" 
   },
   "ClientId": "1example23456789",
   "Session": "[Session ID from the previous response]"
}
```

------

## Connexion sans mot de passe avec clés de passe WebAuthn
<a name="amazon-cognito-user-pools-authentication-flow-methods-passkey"></a>

Les clés d'accès sont sécurisées et imposent un niveau d'effort relativement faible aux utilisateurs. La connexion par clé d'accès utilise des *authentificateurs*, des appareils externes avec lesquels les utilisateurs peuvent s'authentifier. Les mots de passe classiques exposent les utilisateurs à des vulnérabilités telles que le phishing, le devinage de mots de passe et le vol d'informations d'identification. Grâce aux clés d'accès, votre application peut bénéficier de mesures de sécurité avancées sur les téléphones portables et autres appareils connectés ou intégrés aux systèmes d'information. Un processus de connexion par clé d'accès courant commence par un appel à votre appareil qui appelle votre mot de passe ou votre gestionnaire *d'informations d'identification*, par exemple le trousseau iOS ou le gestionnaire de mots de passe Google Chrome. Le gestionnaire d'informations d'identification intégré à l'appareil les invite à sélectionner une clé d'accès et à l'autoriser à l'aide d'un mécanisme d'identification ou de déverrouillage de l'appareil existant. Les téléphones modernes sont équipés de scanners faciaux, de lecteurs d'empreintes digitales, de modèles de déverrouillage et d'autres mécanismes, dont certains répondent à la fois à ce que *vous connaissez* et à *ce que vous utilisez* selon les principes d'une authentification forte. Dans le cas de l'authentification par clé biométrique, les clés d'accès représentent *ce* que vous êtes.

Vous souhaiterez peut-être remplacer les mots de passe par l'authentification par empreinte digitale, faciale ou clé de sécurité. Il s'agit d'une *clé d'accès* ou *WebAuthn*d'une authentification. Il est courant que les développeurs d'applications autorisent les utilisateurs à enregistrer un appareil biométrique après s'être connectés pour la première fois avec un mot de passe. Avec les groupes d'utilisateurs Amazon Cognito, votre application peut configurer cette option de connexion pour les utilisateurs. L'authentification par clé d'accès peut satisfaire aux exigences d'authentification multifactorielle (MFA) lorsque votre groupe d'utilisateurs est configuré sur. `FactorConfiguration` `MULTI_FACTOR_WITH_USER_VERIFICATION` Dans cette configuration, l'authentification par clé d'accès avec vérification de l'utilisateur est considérée comme une authentification multifactorielle.

Les flux d'authentification par mot de passe à usage unique (OTP) ne sont pas compatibles avec l'authentification multifactorielle (MFA) requise dans votre groupe d'utilisateurs. L'authentification par clé d'accès avec vérification de l'utilisateur peut satisfaire aux exigences de la MFA lorsque vous `FactorConfiguration` définissez cette option. `MULTI_FACTOR_WITH_USER_VERIFICATION` Si le MFA est facultatif dans votre groupe d'utilisateurs, les utilisateurs qui ont activé le MFA ne peuvent pas se connecter avec un premier facteur OTP. Les utilisateurs qui n'ont pas de préférence MFA dans un groupe d'utilisateurs optionnel peuvent se connecter sans mot de passe. Pour de plus amples informations, veuillez consulter [Ce qu'il faut savoir sur le MFA pour groupes d'utilisateurs](user-pool-settings-mfa.md#user-pool-settings-mfa-prerequisites).

### Que sont les clés d'accès ?
<a name="amazon-cognito-user-pools-authentication-flow-methods-passkey-what-are"></a>

Les clés d'accès simplifient l'expérience utilisateur en éliminant le besoin de mémoriser ou de saisir OTPs des mots de passe complexes. Les clés de passe sont basées sur WebAuthn les CTAP2 normes élaborées par le [World Wide Web Consortium](https://www.w3.org/TR/webauthn-3/) (W3C) et l'alliance FIDO (Fast Identity Online). *Les navigateurs et les plateformes mettent en œuvre ces normes, fournissent des applications Web ou mobiles APIs pour démarrer un processus d'enregistrement ou d'authentification par clé d'accès, ainsi qu'une interface utilisateur permettant à l'utilisateur de sélectionner un authentificateur par clé d'accès et d'interagir avec celui-ci.*

Lorsqu'un utilisateur enregistre un authentificateur auprès d'un site Web ou d'une application, celui-ci crée une paire de clés publique-privée. WebAuthn les navigateurs et les plateformes soumettent la clé publique au back-end de l'application du site Web ou de l'application. L'authentificateur conserve la clé privée, la clé et les métadonnées relatives à l'utilisateur et à l'application. IDs Lorsque l'utilisateur souhaite s'authentifier dans l'application enregistrée avec son authentificateur enregistré, l'application génère un défi aléatoire. La réponse à ce défi est la signature numérique du défi générée avec la clé privée de l'authentificateur pour cette application et cet utilisateur, ainsi que les métadonnées pertinentes. Le navigateur ou la plateforme d'application reçoit la signature numérique et la transmet au back-end de l'application. L'application valide ensuite la signature avec la clé publique enregistrée.

**Note**  
Votre application ne reçoit aucun secret d'authentification fourni par les utilisateurs à leur authentificateur, pas plus qu'elle ne reçoit d'informations sur la clé privée.

Voici quelques exemples et fonctionnalités des authentificateurs actuellement sur le marché. Un authentificateur peut répondre à l'une ou à l'ensemble de ces catégories.
+ Certains authentificateurs vérifient *l'utilisateur* à l'aide de facteurs tels qu'un code PIN, une saisie biométrique avec un visage ou une empreinte digitale, ou un mot de passe avant d'accorder l'accès, garantissant ainsi que seul l'utilisateur légitime peut autoriser les actions. Les autres authentificateurs ne disposent pas de fonctionnalités de vérification utilisateur, et certains peuvent ignorer la vérification utilisateur lorsqu'une application ne l'exige pas.
+ Certains authentificateurs, par exemple les jetons YubiKey matériels, sont portables. Ils communiquent avec les appareils via des connexions USB, Bluetooth ou NFC. Certains authentificateurs sont locaux et liés à une plate-forme, par exemple Windows Hello sur un PC ou Face ID sur un iPhone. Un authentificateur lié à l'appareil peut être transporté par l'utilisateur s'il est suffisamment petit, comme un appareil mobile. Parfois, les utilisateurs peuvent connecter leur authentificateur matériel à de nombreuses plateformes différentes grâce à une communication sans fil. Par exemple, les utilisateurs de navigateurs de bureau peuvent utiliser leur smartphone comme authentificateur par clé d'accès lorsqu'ils scannent un code QR.
+ Certaines clés d'accès liées à la plateforme sont synchronisées avec le cloud afin de pouvoir être utilisées à partir de plusieurs emplacements. Par exemple, les clés d'accès Face ID sur les iPhones synchronisent les métadonnées des clés d'accès avec les comptes Apple des utilisateurs dans leur trousseau iCloud. Ces clés d'accès permettent une authentification fluide sur tous les appareils Apple, au lieu d'obliger les utilisateurs à enregistrer chaque appareil indépendamment. Les applications d'authentification logicielles telles que 1Password, Dashlane et Bitwarden synchronisent les clés d'accès sur toutes les plateformes sur lesquelles l'utilisateur a installé l'application.

En WebAuthn termes de terminologie, les sites Web et les applications sont *des parties fiables*. Chaque clé d'accès est associée à un identifiant de partie utilisatrice spécifique, un identifiant unifié qui représente les sites Web ou les applications qui acceptent l'authentification par clé d'accès. Les développeurs doivent sélectionner avec soin leur identifiant de partie utilisatrice afin de disposer de la bonne portée de l'authentification. Un identifiant de partie de confiance typique est le nom de domaine racine d'un serveur Web. Une clé d'accès avec cette spécification d'identifiant de partie utilisatrice peut authentifier ce domaine et ces sous-domaines. Les navigateurs et les plateformes refusent l'authentification par clé d'accès lorsque l'URL du site Web auquel un utilisateur souhaite accéder ne correspond pas à l'identifiant de la partie utilisatrice. De même, pour les applications mobiles, une clé d'accès ne peut être utilisée que si le chemin de l'application est présent dans les fichiers d'`.well-known`association que l'application met à disposition sur le chemin indiqué par l'identifiant de la partie utilisatrice.

Les clés d'accès sont *détectables*. Ils peuvent être automatiquement reconnus et utilisés par un navigateur ou une plateforme sans que l'utilisateur ait à saisir un nom d'utilisateur. Lorsqu'un utilisateur visite un site Web ou une application qui prend en charge l'authentification par clé d'accès, il peut choisir parmi une liste de clés d'accès que le navigateur ou la plateforme connaît déjà, ou il peut scanner un code QR.

### Comment Amazon Cognito implémente-t-il l'authentification par clé d'accès ?
<a name="amazon-cognito-user-pools-authentication-flow-methods-passkey-cognito"></a>

**Les clés d'accès sont une fonctionnalité optionnelle disponible dans tous les [plans de fonctionnalités](cognito-sign-in-feature-plans.md), à l'exception de Lite.** Il n'est disponible que dans le [flux d'authentification basé sur les choix](authentication-flows-selection-sdk.md#authentication-flows-selection-choice). Avec la [connexion gérée](authentication-flows-selection-managedlogin.md), Amazon Cognito gère la logique de l'authentification par clé d'accès. Vous pouvez également utiliser l'[API des groupes d'utilisateurs Amazon Cognito AWS SDKs](#amazon-cognito-user-pools-authentication-flow-methods) pour effectuer une authentification par clé d'accès dans le back-end de votre application.

Amazon Cognito reconnaît les clés d'accès créées à l'aide de l'un des deux algorithmes cryptographiques asymétriques ES256 (-7) et (-257). RS256 La plupart des authentificateurs prennent en charge les deux algorithmes. Par défaut, les utilisateurs peuvent configurer n'importe quel type d'authentificateur, par exemple des jetons matériels, des téléphones intelligents mobiles et des applications d'authentification logicielle. Amazon Cognito ne prend actuellement pas en charge l'application des [attestations](https://csrc.nist.gov/glossary/term/attestation).

Dans votre groupe d'utilisateurs, vous pouvez configurer la vérification des utilisateurs pour qu'elle soit préférée ou obligatoire. Ce paramètre est défini par défaut sur préféré dans les demandes d'API qui ne fournissent pas de valeur, et le paramètre préféré est sélectionné par défaut dans la console Amazon Cognito. Lorsque vous définissez la validation utilisateur sur « préféré », les utilisateurs peuvent configurer des authentificateurs qui ne disposent pas de la fonctionnalité de vérification utilisateur, et les opérations d'enregistrement et d'authentification peuvent réussir sans vérification de l'utilisateur. Pour rendre obligatoire la vérification des utilisateurs lors de l'enregistrement et de l'authentification par clé d'accès, remplacez ce paramètre par obligatoire.

L'ID de la partie de confiance (RP) que vous avez défini dans la configuration de votre clé d'accès est une décision importante. Lorsque vous ne spécifiez pas le contraire et que la [version de votre marque de domaine](managed-login-branding.md) est une connexion gérée, votre groupe d'utilisateurs attend par défaut le nom de votre [domaine personnalisé](cognito-user-pools-add-custom-domain.md) comme identifiant RP. Si vous n'avez pas de domaine personnalisé et que vous ne spécifiez pas le contraire, votre groupe d'utilisateurs utilise par défaut un ID RP de votre domaine [préfixe](cognito-user-pools-assign-domain-prefix.md). Vous pouvez également configurer votre RP ID pour qu'il soit un nom de domaine ne figurant pas dans la liste des suffixes publics (PSL). La saisie de votre identifiant RP s'applique à l'enregistrement et à l'authentification par clé d'accès dans le cadre de la connexion gérée et de l'authentification du SDK. La clé de passe ne fonctionne que dans les applications mobiles où Amazon Cognito peut localiser `.well-known` un fichier d'association avec votre ID RP comme domaine. Il est recommandé de déterminer et de définir la valeur de votre identifiant de partie de confiance avant que votre site Web ou votre application ne soit accessible au public. Si vous modifiez votre identifiant RP, vos utilisateurs doivent s'enregistrer à nouveau avec le nouveau RP ID.

Chaque utilisateur peut enregistrer jusqu'à 20 clés d'accès. Ils ne peuvent enregistrer une clé d'accès qu'après s'être connectés au moins une fois à votre groupe d'utilisateurs. La connexion gérée élimine les efforts importants liés à l'enregistrement par clé d'accès. Lorsque vous activez l'authentification par clé d'accès pour un groupe d'utilisateurs et un client d'application, votre groupe d'utilisateurs doté d'un domaine de connexion géré rappelle aux utilisateurs finaux d'enregistrer une clé d'accès après avoir ouvert un nouveau compte utilisateur. Vous pouvez également appeler le navigateur des utilisateurs à tout moment pour les diriger vers une page de connexion gérée pour l'enregistrement par clé d'accès. Les utilisateurs doivent fournir un nom d'utilisateur pour qu'Amazon Cognito puisse lancer l'authentification par clé d'accès. La connexion gérée gère cela automatiquement. La page de connexion invite à saisir un nom d'utilisateur, confirme que l'utilisateur possède au moins une clé d'accès enregistrée, puis invite à se connecter par clé d'accès. De même, les applications basées sur le SDK doivent demander un nom d'utilisateur et le fournir dans la demande d'authentification.

Lorsque vous configurez l'authentification du groupe d'utilisateurs à l'aide de clés d'accès et que vous disposez d'un domaine personnalisé et d'un domaine préfixe, l'ID RP est par défaut le nom de domaine complet (FQDN) de votre domaine personnalisé. **Pour définir un domaine de préfixe comme ID RP dans la console Amazon Cognito, supprimez votre domaine personnalisé ou entrez le FQDN du domaine de préfixe en tant que domaine tiers.**

------
#### [ Activate passkey sign-in ]

**Console**  
Pour activer la connexion à l'aide de clés d'accès, configurez votre groupe d'utilisateurs pour autoriser la connexion principale avec un ou plusieurs types sans mot de passe, puis configurez votre client d'application pour autoriser le flux. `USER_AUTH` Dans la console Amazon Cognito, accédez au menu de **connexion** sous **Authentification** dans la configuration de votre groupe d'utilisateurs. **Modifiez **les options pour la connexion basée sur les choix** et ajoutez le mot de **passe à** la liste des choix disponibles.**

Accédez au menu **Méthodes d'authentification** et modifiez le mot de **passe.**
+ La **vérification utilisateur** est le paramètre permettant de déterminer si votre groupe d'utilisateurs nécessite des dispositifs à clé d'accès qui effectuent des vérifications supplémentaires pour vérifier que l'utilisateur actuel est autorisé à utiliser une clé d'accès. Pour encourager les utilisateurs à configurer un appareil avec validation utilisateur, mais sans l'exiger, sélectionnez **Préféré**. Pour prendre en charge uniquement les appareils dotés d'une vérification utilisateur, sélectionnez **Obligatoire**. Pour plus d'informations, consultez la section [Vérification des utilisateurs](https://www.w3.org/TR/webauthn-2/#user-verification) sur w3.org.
+ Le **domaine pour l'identifiant de partie fiable** est l'identifiant que votre application transmettra aux demandes d'enregistrement par clé d'accès des utilisateurs. Il définit l'objectif de la relation de confiance avec l'émetteur des clés d'accès des utilisateurs. Votre identifiant de partie de confiance peut être : le domaine de votre groupe d'utilisateurs si   
**Domaine Cognito**  
Le [domaine du préfixe](cognito-user-pools-assign-domain-prefix.md) Amazon Cognito de votre groupe d'utilisateurs.  
**Domaine personnalisé**  
Le [domaine personnalisé](cognito-user-pools-add-custom-domain.md) de votre groupe d'utilisateurs.  
**Domaine tiers**  
Domaine des applications qui n'utilisent pas les pages de connexion gérées par les groupes d'utilisateurs. Ce paramètre est généralement associé aux groupes d'utilisateurs qui n'ont pas de [domaine](cognito-user-pools-assign-domain.md) et qui effectuent l'authentification à l'aide d'un AWS SDK et de l'API des groupes d'utilisateurs dans le backend.

Accédez au menu des **clients de l'application** et choisissez un client d'application ou créez-en un nouveau. Sélectionnez **Modifier** et sous **Flux d'authentification**, choisissez **Sélectionner un type d'authentification lors de la connexion : ALLOW\$1USER\$1AUTH**.

**API/SDK**  
Dans l'API des groupes d'utilisateurs, configurez `SignInPolicy` avec les options de clé d'accès appropriées dans une [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)demande [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)or. L'`WEB_AUTHN`option d'authentification par clé d'accès doit être accompagnée d'au moins une autre option. L'enregistrement par clé d'accès nécessite une session d'authentification existante.

```
"SignInPolicy": { 
    "AllowedFirstAuthFactors": [ 
        "PASSWORD",
        "WEB_AUTHN"
    ]
}
```

Configurez vos préférences de vérification utilisateur et votre identifiant RP dans les `WebAuthnConfiguration` paramètres d'une [SetUserPoolMfaConfig](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetUserPoolMfaConfig.html#CognitoUserPools-SetUserPoolMfaConfig-request-WebAuthnConfiguration)demande. La `RelyingPartyId` cible prévue des résultats de l'authentification par clé d'accès peut être le préfixe de votre groupe d'utilisateurs ou votre domaine personnalisé, ou un domaine de votre choix.

```
"WebAuthnConfiguration": { 
   "RelyingPartyId": "example.auth.us-east-1.amazoncognito.com",
   "UserVerification": "preferred",
   "FactorConfiguration": "SINGLE_FACTOR"
}
```

Configurez votre client `ExplicitAuthFlows` d'application avec l'option requise dans une [UpdateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPoolClient.html)demande [CreateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html)ou.

```
"ExplicitAuthFlows": [ 
   "ALLOW_USER_AUTH"
]
```

------
#### [ Register a passkey (managed login) ]

La connexion gérée gère l'enregistrement des clés d'accès par l'utilisateur. Lorsque l'authentification par clé de passe est active dans votre groupe d'utilisateurs, Amazon Cognito invite les utilisateurs à configurer une clé d'accès lorsqu'ils créent un nouveau compte utilisateur.

Amazon Cognito n'invite pas les utilisateurs à configurer une clé d'accès s'ils se sont déjà inscrits et n'ont pas configuré de clé d'accès, ou si vous avez créé leur compte en tant qu'administrateur. Les utilisateurs dans cet état doivent se connecter à l'aide d'un autre facteur, tel qu'un mot de passe ou un OTP sans mot de passe, avant de pouvoir enregistrer une clé d'accès.

**Pour enregistrer une clé d'accès**

1. Dirigez l'utilisateur vers votre [page de connexion](authorization-endpoint.md).

   ```
   https://auth.example.com/oauth2/authorize/?client_id=1example23456789&response_type=code&scope=email+openid+phone&redirect_uri=https%3A%2F%2Fwww.example.com
   ```

1. Traitez le résultat de l'authentification fourni par l'utilisateur. Dans cet exemple, Amazon Cognito les redirige `www.example.com` avec un code d'autorisation que votre application échange contre des jetons.

1. Dirigez l'utilisateur vers votre page de clé d'enregistrement. L'utilisateur disposera d'un cookie de navigateur qui conserve sa session de connexion. L'URL du mot de passe prend `client_id` et définit ses `redirect_uri` paramètres. Amazon Cognito autorise uniquement les utilisateurs authentifiés à accéder à cette page. Connectez-vous à votre utilisateur à l'aide d'un mot de passe, d'un e-mail OTP ou d'un SMS OTP, puis appelez une URL correspondant au modèle suivant.

   Vous pouvez également ajouter d'autres [Point de terminaison d’autorisation](authorization-endpoint.md) paramètres à cette requête, tels que `response_type` et`scope`.

   ```
   https://auth.example.com/passkeys/add?client_id=1example23456789&redirect_uri=https%3A%2F%2Fwww.example.com
   ```

------
#### [ Register a passkey (SDK) ]

Vous enregistrez les informations d'identification par clé d'accès avec les métadonnées d'un [PublicKeyCreationOptions](https://www.w3.org/TR/webauthn-3/#dictdef-publickeycredentialcreationoptions)objet. Vous pouvez générer cet objet avec les informations d'identification d'un utilisateur connecté et les présenter dans une demande d'API à son émetteur de clé d'accès. L'émetteur renverra un objet [RegistrationResponseJSON](https://www.w3.org/TR/webauthn-3/#dictdef-registrationresponsejson) qui confirme l'enregistrement de la clé d'accès.

Pour démarrer le processus d'enregistrement par clé d'accès, connectez un utilisateur à l'aide d'une option de connexion existante. Autorisez la demande [d'[StartWebAuthnRegistration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_StartWebAuthnRegistration.html)API autorisée par](authentication-flows-public-server-side.md#user-pool-apis-auth-unauth-token-auth) jeton avec le jeton d'accès de l'utilisateur actuel. Le corps d'un exemple de `GetWebAuthnRegistrationOptions` demande est présenté ci-dessous.

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

La réponse de votre groupe d'utilisateurs contient l'`PublicKeyCreationOptions`objet. Présentez cet objet dans une demande d'API à l'émetteur de l'utilisateur. Il fournit des informations telles que la clé publique et l'identifiant de la partie utilisatrice. L'émetteur répondra par un `RegistrationResponseJSON` objet.

Présentez la réponse d'enregistrement dans une demande d'[CompleteWebAuthnRegistration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CompleteWebAuthnRegistration.html)API, à nouveau autorisée avec le jeton d'accès de l'utilisateur. Lorsque votre groupe d'utilisateurs répond par une réponse HTTP 200 avec un corps vide, le mot de passe de votre utilisateur est enregistré.

------
#### [ Sign in with a passkey ]

La connexion sans mot de passe n'a pas de nom `AuthFlow` que vous pouvez spécifier dans et. [InitiateAuth[AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html) Vous devez plutôt déclarer un `AuthFlow` de `USER_AUTH` et demander une option de connexion ou choisir votre option sans mot de passe dans la réponse de votre groupe d'utilisateurs. Pour connecter un utilisateur à une application, configurez le corps de votre `AdminInitiateAuth` demande `InitiateAuth` ou de votre demande comme suit. Cet ensemble de paramètres est le minimum requis pour la connexion. Des paramètres supplémentaires sont disponibles.

Dans cet exemple, nous savons que l'utilisateur souhaite se connecter avec un mot de passe, et nous ajoutons un `PREFERRED_CHALLENGE` paramètre.

```
{
   "AuthFlow": "USER_AUTH",
   "AuthParameters": { 
      "USERNAME" : "testuser",
      "PREFERRED_CHALLENGE" : "WEB_AUTHN"
   },
   "ClientId": "1example23456789"
}
```

Amazon Cognito répond par une question de sécurité `WEB_AUTHN`. Votre candidature doit répondre à ce défi. Lancez une demande de connexion auprès du fournisseur de clé d'accès de l'utilisateur. Il renverra un objet [AuthenticationResponseJSON](https://www.w3.org/TR/webauthn-3/#dictdef-authenticationresponsejson).

```
{
   "ChallengeName": "WEB_AUTHN",
   "ChallengeResponses": {
      "USERNAME" : "testuser", 
      "CREDENTIAL" : "{AuthenticationResponseJSON}" 
   },
   "ClientId": "1example23456789",
   "Session": "[Session ID from the previous response]"
}
```

------

## MFA après connexion
<a name="amazon-cognito-user-pools-authentication-flow-methods-mfa"></a>

Vous pouvez configurer les utilisateurs qui se connectent à l'aide d'un flux de nom d'utilisateur et de mot de passe pour qu'ils soient invités à effectuer une vérification supplémentaire à l'aide d'un mot de passe à usage unique provenant d'un e-mail, d'un message SMS ou d'une application de génération de code. La MFA est différente de la connexion sans mot de passe avec des mots de passe à usage unique. Cependant, les clés d'accès avec vérification utilisateur peuvent satisfaire aux exigences de la MFA lorsque vous les `FactorConfiguration` configurez `MULTI_FACTOR_WITH_USER_VERIFICATION` comme dans votre groupe d'utilisateurs. `WebAuthnConfiguration` Pour les flux basés sur des mots de passe, la MFA dans les groupes d'utilisateurs est un modèle défi-réponse dans lequel l'utilisateur démontre d'abord qu'il connaît le mot de passe, puis qu'il a accès à son appareil à second facteur enregistré.

**Ressources de mise en œuvre**
+ [Ajout de l’authentification MFA à un groupe d’utilisateurs](user-pool-settings-mfa.md)

## Actualiser les jetons
<a name="amazon-cognito-user-pools-authentication-flow-methods-refresh"></a>

Lorsque vous souhaitez que les utilisateurs restent connectés sans saisir à nouveau leurs informations d'identification, les *jetons d'actualisation* sont l'outil dont dispose votre application pour conserver la session d'un utilisateur. Les applications peuvent présenter des jetons d'actualisation à votre groupe d'utilisateurs et les échanger contre de nouveaux identifiants et jetons d'accès. Grâce à l'actualisation des jetons, vous pouvez vous assurer qu'un utilisateur connecté est toujours actif, obtenir des informations actualisées sur les attributs et mettre à jour les droits de contrôle d'accès sans intervention de l'utilisateur.

**Ressources de mise en œuvre**
+ [Actualiser les jetons](amazon-cognito-user-pools-using-the-refresh-token.md)

## Authentification personnalisée
<a name="amazon-cognito-user-pools-authentication-flow-methods-custom"></a>

Vous souhaiterez peut-être configurer une méthode d'authentification pour vos utilisateurs qui n'est pas répertoriée ici. Vous pouvez le faire grâce à une *authentification personnalisée à l'*aide de déclencheurs Lambda. Dans une séquence de fonctions Lambda, Amazon Cognito lance un défi, pose une question à laquelle les utilisateurs doivent répondre, vérifie l'exactitude de la réponse, puis détermine si un autre défi doit être lancé. Les questions et réponses peuvent inclure des questions de sécurité, des demandes adressées à un service CAPTCHA, des demandes à une API de service MFA externe, ou tout cela en séquence.

**Ressources de mise en œuvre**
+ [Déclencheurs Lambda création d'une stimulation d'authentification personnalisée](user-pool-lambda-challenge.md)

### Flux d'authentification personnalisé
<a name="amazon-cognito-user-pools-custom-authentication-flow"></a>

Les groupes d'utilisateurs Amazon Cognito permettent aussi d'utiliser les flux d'authentification personnalisés, qui peuvent vous aider à créer un modèle d'authentification basé sur une demande de vérification/réponse à l'aide des déclencheurs AWS Lambda .

Le flux d'authentification personnalisé permet des cycles de stimulation/réponse personnalisés pour répondre à des besoins différents. Le flux commence par un appel à l'opération d'API `InitiateAuth` qui indique le type d'authentification qui sera utilisé, et fournit les paramètres d'authentification initiaux. Amazon Cognito répond à l'appel `InitiateAuth` avec l'un des types d'informations suivants : 
+ Une stimulation pour l'utilisateur avec une session et des paramètres.
+ Une erreur si l'utilisateur ne parvient pas à s'authentifier.
+ Les jetons d'identification, d'accès et d'actualisation si les paramètres fournis dans l'appel `InitiateAuth` sont suffisants pour connecter l'utilisateur. (En règle générale, l'utilisateur ou l'appli doit d'abord répondre à une stimulation, mais votre code personnalisé doit le déterminer.)

 Si Amazon Cognito répond à l'appel `InitiateAuth` avec une demande de vérification, l'application recueille davantage d'informations et appelle l'opération `RespondToAuthChallenge`. Cet appel fournit les réponses à la demande de vérification et les renvoie à la session. Amazon Cognito répond à l'appel `RespondToAuthChallenge` de la même manière qu'à l'appel `InitiateAuth`. Si l'utilisateur s'est connecté, Amazon Cognito fournit des jetons ou si l'utilisateur n'est pas connecté, Amazon Cognito fournit une autre demande de vérification ou une erreur. Si Amazon Cognito renvoie une autre demande de vérification, la séquence se reproduit et l'application appelle `RespondToAuthChallenge` jusqu'à ce que l'utilisateur se connecte avec succès ou qu'une erreur soit retournée. Pour plus d'informations sur les opérations d'API `InitiateAuth` et `RespondToAuthChallenge`, consultez la [documentation sur les API](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/Welcome.html). 

### Flux d'authentification personnalisé et stimulations
<a name="Custom-authentication-flow-and-challenges"></a>

Pour initier un flux d'authentification personnalisé, une appli peut appeler `InitiateAuth` avec `CUSTOM_AUTH` comme paramètre `Authflow`. Avec un flux d'authentification personnalisé, trois déclencheurs Lambda contrôlent les demandes de vérification et la vérification des réponses.
+ Le déclencheur Lambda `DefineAuthChallenge` utilise en entrée un tableau de session de demandes de vérification et de réponses précédentes. Il affiche ensuite le nom de la demande de vérification suivante et les booléens qui indiquent si l'utilisateur est authentifié et peut recevoir des jetons. Ce déclencheur Lambda est une machine d'état qui contrôle le parcours de l'utilisateur au fil des stimulations.
+ Le déclencheur Lambda `CreateAuthChallenge` prend un nom de demande de vérification en entrée et génère le défi et les paramètres permettant d'évaluer la réponse. Quand `DefineAuthChallenge` retourne `CUSTOM_CHALLENGE` comme demande de vérification suivante, le flux d'authentification appelle `CreateAuthChallenge`. Le déclencheur Lambda `CreateAuthChallenge` transmet le type de demande de vérification suivant dans le paramètre de métadonnées de demande de vérification.
+ La fonction Lambda `VerifyAuthChallengeResponse` évalue la réponse et renvoie une valeur booléenne indiquant si la réponse était valide.

Un flux d'authentification personnalisé peut également utiliser une combinaison de stimulations intégrées, telles que la vérification de mot de passe via le protocole SRP et la MFA par SMS. Il peut utiliser des stimulations personnalisées, telles que CAPTCHA ou des questions secrètes.

### Utiliser la vérification de mot de passe par protocole SRP dans le flux d'authentification personnalisé
<a name="Using-SRP-password-verification-in-custom-authentication-flow"></a>

Si vous souhaitez inclure le protocole SRP dans un flux d'authentification personnalisé, vous devez commencer par SRP.
+ Pour lancer la vérification de mot de passe par protocole SRP dans un flux personnalisé, l'appli appelle `InitiateAuth` avec `CUSTOM_AUTH` en tant que `Authflow`. Dans le mappage `AuthParameters`, la demande de votre application inclut `SRP_A:` (la valeur SRP A) et `CHALLENGE_NAME: SRP_A`.
+ Le flux `CUSTOM_AUTH` invoque le déclencheur Lambda `DefineAuthChallenge` avec une session initiale de `challengeName: SRP_A` et `challengeResult: true`. Votre fonction Lambda répond avec `challengeName: PASSWORD_VERIFIER`, `issueTokens: false` et `failAuthentication: false`.
+  L'appli doit ensuite appeler `RespondToAuthChallenge` avec `challengeName: PASSWORD_VERIFIER` et les autres paramètres requis pour le protocole SRP dans la carte `challengeResponses`. 
+ Si Amazon Cognito vérifie le mot de passe, `RespondToAuthChallenge` appelle le déclencheur Lambda `DefineAuthChallenge` avec une deuxième session de `challengeName: PASSWORD_VERIFIER` et `challengeResult: true`. À ce stade, le déclencheur Lambda `DefineAuthChallenge` répond avec `challengeName: CUSTOM_CHALLENGE` pour démarrer la stimulation personnalisée.
+ Si l'authentification MFA est activée pour un utilisateur, une fois qu'Amazon Cognito a vérifié le mot de passe, l'utilisateur est invité à configurer MFA ou à se connecter avec MFA.

**Note**  
La page web de connexion hébergée Amazon Cognito ne peut pas activer les [Déclencheurs Lambda création d'une stimulation d'authentification personnalisée](user-pool-lambda-challenge.md).

Pour plus d'informations sur les déclencheurs Lambda, ainsi qu'un exemple de code, consultez [Personnalisation des flux de travail de groupe d'utilisateurs avec des déclencheurs Lambda](cognito-user-pools-working-with-lambda-triggers.md).

## Flux d'authentification pour la migration d'utilisateurs
<a name="amazon-cognito-user-pools-user-migration-authentication-flow"></a>

Un déclencheur Lambda de migration d'utilisateur facilite la migration d'utilisateurs à partir d'un système de gestion des utilisateurs hérité vers votre groupe d'utilisateurs. Si vous choisissez le flux d'authentification `USER_PASSWORD_AUTH`, les utilisateurs n'ont pas à réinitialiser leurs mots de passe durant la migration des utilisateurs. Ce flux envoie les mots de passe de vos utilisateurs au service via une connexion SSL cryptée pendant l'authentification.

Lorsque vous avez migré tous vos utilisateurs, changez de flux et passez au flux SRP plus sécurisé. Le flux SRP n'envoie aucun mot de passe sur le réseau.

Pour en savoir plus sur les déclencheurs Lambda, consultez [Personnalisation des flux de travail de groupe d'utilisateurs avec des déclencheurs Lambda](cognito-user-pools-working-with-lambda-triggers.md).

Pour plus d'informations sur la migration d'utilisateurs avec un déclencheur Lambda, consultez [Importation d'utilisateurs avec un déclencheur Lambda de migration d'utilisateur](cognito-user-pools-import-using-lambda.md).

# Modèles d'autorisation pour l'authentification par API et SDK
<a name="authentication-flows-public-server-side"></a>

Lorsque vous commencez le développement de votre application avec l'authentification des groupes d'utilisateurs, vous devez choisir le modèle d'autorisation d'API adapté à votre type d'application. Un modèle d'autorisation est un système permettant de fournir l'autorisation d'effectuer des demandes avec les composants d'authentification des intégrations d'API et de SDK des groupes d'utilisateurs Amazon Cognito. Amazon Cognito propose trois modèles d'autorisation : autorisé par IAM, public et autorisé par jeton.

Dans le cas des demandes autorisées par IAM, l'autorisation provient d'une signature par un ensemble d'informations d'identification AWS IAM dans l'`Authorization`en-tête d'une demande. Pour les applications côté serveur, cette pratique protège les opérations d'authentification avec l'autorisation IAM. Pour les demandes d'authentification publiques (non authentifiées), aucune autorisation n'est requise. Cela convient aux applications côté client distribuées aux utilisateurs. Dans le cas des opérations autorisées par jeton, généralement mises en œuvre en combinaison avec des opérations publiques, l'autorisation provient d'un jeton de session ou d'un jeton d'accès inclus dans l'`Authorization`en-tête de la demande. L'authentification Amazon Cognito nécessite généralement que vous implémentiez au moins deux opérations d'API dans l'ordre, et les opérations d'API que vous utilisez dépendent des caractéristiques de votre application. Les clients publics, où l'application est distribuée aux utilisateurs, utilisent des opérations publiques, où les demandes de connexion ne nécessitent pas d'autorisation. Les opérations autorisées par des jetons poursuivent la session des utilisateurs dans les applications publiques. Les clients côté serveur, où la logique de l'application est hébergée sur un système distant, protègent les opérations d'authentification avec l'autorisation IAM pour les demandes de connexion. Les paires d'opérations d'API qui suivent, ainsi que les méthodes du SDK correspondantes, correspondent aux modèles d'autorisation disponibles.

Chaque opération d'authentification publique possède une forme d'équivalent côté serveur, par exemple [UpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserAttributes.html)et. [AdminUpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html) Alors que les opérations côté client sont initiées par l'utilisateur et nécessitent une confirmation, les opérations côté serveur supposent que la modification a été validée par un administrateur du groupe d'utilisateurs et les modifications prennent effet immédiatement. Dans cet exemple, Amazon Cognito envoie un message contenant un code de confirmation à l'utilisateur, et le jeton d'accès de l'utilisateur autorise une [VerifyUserAttribute](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_VerifyUserAttribute.html)demande qui envoie le code. L'application côté serveur peut définir immédiatement la valeur de n'importe quel attribut, bien que des [considérations particulières s'appliquent](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html#CognitoUserPools-AdminUpdateUserAttributes-request-UserAttributes) à la modification de la valeur des adresses e-mail et des numéros de téléphone lorsqu'ils sont utilisés pour la connexion.

Pour comparer l'authentification des API et consulter la liste complète des opérations d'API et de leurs modèles d'autorisation, consultez[Comprendre l'API, l'OIDC et l'authentification par pages de connexion gérées](#user-pools-API-operations).

------
#### [ Client-side (public) authentication ]

Voici une séquence typique de demandes dans une application côté client :

1. L'[InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)opération publique soumet des informations d'identification principales telles qu'un nom d'utilisateur et un mot de passe.

1. L'[RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)opération autorisée par jeton envoie un jeton de *session* à partir de la `InitiateAuth` réponse et de la réponse à un défi, par exemple un MFA. L'autorisation par jeton de session indique les demandes qui font partie des cycles not-yet-complete d'authentification.

1. L'[ConfirmDevice](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmDevice.html)opération autorisée par jeton soumet un jeton d'*accès* et effectue l'opération d'écriture consistant à ajouter un appareil mémorisé au profil de l'utilisateur. L'autorisation par jeton d'accès indique les demandes qui concernent les opérations en libre-service des utilisateurs une fois l'authentification terminée.

Pour plus d’informations, consultez [Options d'authentification côté client](#amazon-cognito-user-pools-client-side-authentication-flow) et [Comprendre l'API, l'OIDC et l'authentification par pages de connexion gérées](#user-pools-API-operations).

------
#### [ Server-side authentication ]

Voici une séquence typique de demandes provenant d'une opération côté serveur. Chaque demande comporte un en-tête d'autorisation [AWS Signature Version 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) signé avec les informations d'identification de la machine IAM qui ont été envoyées au serveur d'applications.

1. L'[AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)opération soumet des informations d'identification principales telles qu'un nom d'utilisateur et un mot de passe.

1. [AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html)L'opération soumet la réponse à un défi, par exemple le MFA.

1. L'[AdminUpdateDeviceStatus](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateDeviceStatus.html)opération définit la clé de l'appareil à partir de la `AdminInitiateAuth` [réponse](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html#API_AdminInitiateAuth_ResponseSyntax) telle qu'elle est mémorisée.

Pour plus d’informations, consultez [Options d'authentification côté serveur](#amazon-cognito-user-pools-server-side-authentication-flow) et [Comprendre l'API, l'OIDC et l'authentification par pages de connexion gérées](#user-pools-API-operations).

------

Un utilisateur s'authentifie en répondant à des demandes de vérification successives jusqu'à ce que l'authentification échoue ou qu'Amazon Cognito émette des jetons pour l'utilisateur. Vous pouvez répéter ces étapes avec Amazon Cognito, dans un processus qui inclut différentes demandes de vérification, pour prendre en charge n'importe quel flux d'authentification personnalisé.

**Topics**
+ [Options d'authentification côté serveur](#amazon-cognito-user-pools-server-side-authentication-flow)
+ [Options d'authentification côté client](#amazon-cognito-user-pools-client-side-authentication-flow)
+ [Comprendre l'API, l'OIDC et l'authentification par pages de connexion gérées](#user-pools-API-operations)
+ [Liste des opérations d'API regroupées par modèle d'autorisation](#user-pool-apis-auth-unauth)

## Options d'authentification côté serveur
<a name="amazon-cognito-user-pools-server-side-authentication-flow"></a>

Les applications Web et autres applications *côté serveur* implémentent l'authentification sur un serveur distant qu'un client charge dans une application d'affichage à distance telle qu'un navigateur ou une session SSH. Les applications côté serveur présentent généralement les caractéristiques suivantes.
+ Ils sont intégrés à une application installée sur un serveur dans des langages tels que Java, Ruby ou Node.js.
+ Ils se connectent à des [clients d'applications](user-pool-settings-client-apps.md) de pool d'utilisateurs susceptibles de détenir un secret client, appelés *clients confidentiels*.
+ Ils ont accès aux AWS informations d'identification.
+ Ils invoquent la [connexion gérée](cognito-user-pools-managed-login.md) pour l'authentification ou utilisent des opérations autorisées par IAM dans l'API des groupes d'utilisateurs avec un AWS SDK.
+ Ils servent des clients internes et peuvent servir des clients publics.

Les opérations côté serveur avec l'API des groupes d'utilisateurs peuvent utiliser des mots de passe, des mots de passe à usage unique ou des clés d'accès comme principal facteur de connexion. Pour les applications côté serveur, l'authentification d'un groupe d'utilisateurs est similaire à celle des applications côté client, à l'exception des aspects suivants :
+ L'application côté serveur envoie une demande d'[AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)API. Cette opération nécessite des AWS informations d'identification avec des autorisations telles que `cognito-idp:AdminInitiateAuth` et`cognito-idp:AdminRespondToAuthChallenge`. L'opération renvoie le résultat du défi ou de l'authentification requis.
+ Lorsque l'application reçoit un défi, elle envoie une demande d'[AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html)API. Le fonctionnement de `AdminRespondToAuthChallenge` l'API nécessite également des AWS informations d'identification.

Pour plus d'informations sur la signature des demandes d'API Amazon Cognito avec des AWS informations d'identification, consultez le [processus de signature Signature version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) dans le manuel de référence *AWS général*.

Dans la réponse `AdminInitiateAuth` `ChallengeParameters`, l'attribut `USER_ID_FOR_SRP`, s'il est présent, contient le nom d'utilisateur réel de l'utilisateur, et non pas un alias (tel qu'une adresse e-mail ou un numéro de téléphone). Dans votre appel à `AdminRespondToAuthChallenge`, dans le `ChallengeResponses`, vous devez transmettre ce nom d'utilisateur dans le paramètre `USERNAME`. 

**Note**  
Étant donné que les implémentations d'administration principale utilisent le flux d'authentification des administrateurs, celui-ci ne prend pas en charge les appareils mémorisés. Lorsque la fonctionnalité de suivi des dispositifs est activée, l'authentification d'administrateur réussit, mais tout appel visant à actualiser le jeton d'accès échoue.

## Options d'authentification côté client
<a name="amazon-cognito-user-pools-client-side-authentication-flow"></a>

Les applications mobiles et autres types d'applications *côté client* sont installées sur les appareils des utilisateurs et exécutent la logique d'authentification et d'interface utilisateur localement. Ils présentent généralement les caractéristiques suivantes.
+ Ils sont conçus dans des langages tels que React Native, Flutter et Swift et sont déployés sur les appareils des utilisateurs.
+ Ils se connectent à des [clients d'applications](user-pool-settings-client-apps.md) de pool d'utilisateurs qui n'ont pas de secret client, appelés *clients publics*.
+ Ils n'ont pas accès aux AWS informations d'identification qui autoriseraient les demandes d'API autorisées par IAM.
+ Ils invoquent la [connexion gérée](cognito-user-pools-managed-login.md) pour l'authentification, ou utilisent des opérations publiques et autorisées par des jetons dans l'API des groupes d'utilisateurs avec un AWS SDK.
+ Ils servent les clients publics et permettent à quiconque de s'inscrire et de se connecter.

Les opérations côté client avec l'API des groupes d'utilisateurs peuvent utiliser des mots de passe, des mots de passe à usage unique ou des clés d'accès comme principal facteur de connexion. Le processus suivant fonctionne pour les applications côté client utilisateur que vous créez avec [AWS Amplify](https://docs.amplify.aws/javascript/start/getting-started/)ou avec. [AWS SDKs](https://aws.amazon.com/developer/tools/)

1. L'utilisateur entre le nom d'utilisateur et le mot de passe dans l'application.

1. L'application appelle l'opération `InitiateAuth` avec le nom d'utilisateur et les informations SRP (Secure Remote Password) détaillées de l'utilisateur.

   Cette opération d'API renvoie les paramètres d'authentification.
**Note**  
L'application génère des informations relatives au SRP à l'aide des fonctionnalités Amazon Cognito SRP intégrées. AWS SDKs

1. L'appli appelle l'opération `RespondToAuthChallenge`. Si l'appel aboutit, Amazon Cognito retourne les jetons de l'utilisateur et le flux d'authentification est terminé.

   Si Amazon Cognito requiert une autre demande de vérification, l'appel à `RespondToAuthChallenge` ne renvoie aucun jeton. À la place, l'appel renvoie une session.

1. Si `RespondToAuthChallenge` renvoie une session, l'appli appelle `RespondToAuthChallenge` à nouveau, cette fois avec la session et la réponse à la stimulation (par exemple, le code MFA).

## Comprendre l'API, l'OIDC et l'authentification par pages de connexion gérées
<a name="user-pools-API-operations"></a>

Les groupes d'utilisateurs Amazon Cognito sont une combinaison de plusieurs technologies d'authentification. Ils s'appuient sur des fournisseurs d'identité externes (IdPs). Ils sont destinés IdPs aux applications qui implémentent l'authentification avec OpenID Connect (OIDC). SDKs Ils fournissent une authentification en tant qu'émetteurs de jetons Web JSON (JWTs) similaire à l'authentification OIDC, mais dans le cadre de méthodes d'API qui en font partie. AWS SDKs Ils peuvent également être des points d'entrée sécurisés pour vos applications.

Si vous voulez inscrire, connecter et gérer les utilisateurs de votre groupe d’utilisateurs, deux options s’offrent à vous. 

1. Vos *pages de connexion gérées* et l'*interface utilisateur hébergée* classique incluent les points de [terminaison interactifs avec l'utilisateur de connexion gérée et les points de terminaison](managed-login-endpoints.md) de [fédération qui gèrent les rôles](federation-endpoints.md) d'IdP et de partie utilisatrice. Ils constituent un ensemble de pages Web publiques qu’Amazon Cognito active lorsque vous [choisissez un domaine](cognito-user-pools-assign-domain.md) pour votre groupe d’utilisateurs. Pour démarrer rapidement avec les fonctionnalités d'authentification et d'autorisation des groupes d'utilisateurs Amazon Cognito, notamment les pages d'inscription, de connexion, de gestion des mots de passe et d'authentification multifactorielle (MFA), utilisez l'interface utilisateur intégrée de la connexion gérée.

   Les autres points de terminaison du groupe d'utilisateurs facilitent l'authentification auprès de fournisseurs d'identité tiers (IdPs). Les services qu’ils fournissent incluent ce qui suit.

   1. Points de terminaison de rappel des fournisseurs de services pour les réclamations authentifiées provenant de vous, comme et. IdPs `saml2/idpresponse` `oauth2/idpresponse` Lorsqu’Amazon Cognito est un fournisseur de services intermédiaire (SP) entre votre application et votre fournisseur d’identité, les points de terminaison de rappel représentent le service.

   1. Des points de terminaison qui fournissent des informations sur votre environnement, comme `oauth2/userInfo` et`/.well-known/jwks.json`. Votre application utilise ces points de terminaison lorsqu'elle vérifie des jetons ou récupère des données de profil utilisateur dans les bibliothèques de développement OIDC ou OAuth 2.0.

1. L'[API des groupes d'utilisateurs Amazon Cognito](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/Welcome.html) est un ensemble d'outils permettant à votre application Web ou mobile d'authentifier les utilisateurs après avoir collecté les informations de connexion dans votre propre interface personnalisée. L’authentification par API des groupes d’utilisateurs produit les jetons Web JSON suivants.

   1. Un jeton d’identité avec des champs standard d’attribut vérifiables provenant de votre utilisateur.

   1. Un jeton d’accès qui autorise votre utilisateur à créer des demandes d’API autorisées par jeton sur un [point de terminaison de service AWS](https://docs.aws.amazon.com/general/latest/gr/cognito_identity.html).
**Note**  
Par défaut, les jetons d’accès issus de l’authentification par API des groupes d’utilisateurs contiennent uniquement la portée `aws.cognito.signin.user.admin`. Pour générer un jeton d’accès avec des portées supplémentaires, par exemple pour autoriser une demande à une API tierce, demandez des portées pendant l’authentification via les points de terminaison de votre groupe d’utilisateurs ou ajoutez des portées personnalisées dans un [Déclencheur Lambda avant génération de jeton](user-pool-lambda-pre-token-generation.md). La personnalisation des jetons d'accès augmente les coûts de votre AWS facture.

   1. Un jeton d'actualisation qui autorise les demandes de nouveaux identifiants et jetons d'accès, et qui actualise l'identité des utilisateurs et les propriétés de contrôle d'accès.

Vous pouvez lier un utilisateur fédéré, qui se connecterait normalement via les points de terminaison des groupes d’utilisateurs, à un utilisateur dont le profil est *local* à votre groupe d’utilisateurs. Un utilisateur local existe exclusivement dans l’annuaire de votre groupe d’utilisateurs sans fédération via un fournisseur d’identité externe. Si vous liez leur identité fédérée à un utilisateur local dans une demande d'[AdminLinkProviderForUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminLinkProviderForUser.html)API, ils peuvent se connecter avec l'API des groupes d'utilisateurs. Pour de plus amples informations, veuillez consulter [Liaison d'utilisateurs fédérés à un profil utilisateur existant](cognito-user-pools-identity-federation-consolidate-users.md).

L’API des groupes d’utilisateurs Amazon Cognito est à double usage.

1. D’une part, elle permet de créer et de configurer les ressources de vos groupes d’utilisateurs Amazon Cognito. Par exemple, vous pouvez créer des groupes d'utilisateurs, ajouter des AWS Lambda déclencheurs et configurer le domaine du groupe d'utilisateurs qui héberge vos pages de connexion gérées.

1. Il effectue l'inscription, la connexion et d'autres opérations utilisateur pour les utilisateurs locaux et liés.

**Exemple de scénario avec l’API des groupes d’utilisateurs Amazon Cognito**

1. Votre utilisateur sélectionne un bouton « Create an account » (Créer un compte) que vous avez créé dans votre application. Il saisit une adresse e-mail et un mot de passe.

1. Votre application envoie une demande d'[SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html)API et crée un nouvel utilisateur dans votre groupe d'utilisateurs.

1. Votre application demande à votre utilisateur un code de confirmation par e-mail. L’utilisateur saisit le code qu’il a reçu dans un e-mail.

1. Votre application envoie une demande d'[ConfirmSignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html)API avec le code de confirmation de l'utilisateur.

1. Votre application demande à votre utilisateur son nom d’utilisateur et son mot de passe et saisit ces informations.

1. Votre application envoie une demande d'[InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)API et stocke un jeton d'identification, un jeton d'accès et un jeton d'actualisation. Votre application appelle les bibliothèques OIDC pour gérer les jetons de l’utilisateur et faire persister la session de cet utilisateur.

Dans l’API des groupes d’utilisateurs Amazon Cognito, vous ne pouvez pas connecter les utilisateurs fédérés via un fournisseur d’identité. Vous devez authentifier ces utilisateurs via les points de terminaison de votre groupe d’utilisateurs. Pour plus d'informations sur les points de terminaison du groupe d'utilisateurs qui incluent la connexion gérée, consultez[Points de terminaison du groupe d'utilisateurs et référence de connexion gérée](cognito-userpools-server-contract-reference.md).

Vos utilisateurs fédérés peuvent commencer par une connexion gérée et sélectionner leur IdP, ou vous pouvez ignorer la connexion gérée et envoyer vos utilisateurs directement vers votre IdP pour qu'ils se connectent. Lorsque votre demande d’API à destination du [Point de terminaison d’autorisation](authorization-endpoint.md) comporte un paramètre de fournisseur d’identité, Amazon Cognito redirige discrètement votre utilisateur vers la page de connexion du fournisseur d’identité.

**Exemple de scénario avec des pages de connexion gérées**

1. Votre utilisateur sélectionne un bouton « Create an account » (Créer un compte) que vous avez créé dans votre application.

1. La connexion gérée présente à votre utilisateur une liste des fournisseurs d'identité sociale pour lesquels vous avez enregistré des informations d'identification de développeur. Votre utilisateur choisit Apple.

1. Votre application adresse une demande au [Point de terminaison d’autorisation](authorization-endpoint.md) avec le nom de fournisseur `SignInWithApple`.

1. Le navigateur de votre utilisateur ouvre la page d'authentification Apple. Votre utilisateur se connecte et choisit d'autoriser Amazon Cognito à lire les informations de son profil.

1. Amazon Cognito confirme le jeton d’accès Apple et interroge le profil Apple de votre utilisateur.

1. Votre utilisateur présente un code d’autorisation Amazon Cognito à votre application.

1. La bibliothèque OIDC de votre application échange le code d'autorisation avec le [Point de terminaison de jeton](token-endpoint.md) et stocke un jeton d'identification, un jeton d'accès et un jeton d'actualisation émis par le groupe d'utilisateurs. Votre application utilise les bibliothèques OIDC pour gérer les jetons de votre utilisateur et maintenir une session permanente pour cet utilisateur.

L'API des groupes d'utilisateurs et les pages de connexion gérées prennent en charge divers scénarios, décrits dans ce guide. Les sections suivantes examinent la façon dont l’API des groupes d’utilisateurs se divise en différentes classes qui répondent à vos exigences en matière d’inscription, de connexion et de gestion des ressources.

## Liste des opérations d'API regroupées par modèle d'autorisation
<a name="user-pool-apis-auth-unauth"></a>

L’API des groupes d’utilisateurs Amazon Cognito, qui est à la fois une interface de gestion des ressources et une interface d’authentification et d’autorisation destinée à l’utilisateur, combine les modèles d’autorisation suivants dans ses opérations. En fonction de l’opération de l’API, vous serez peut-être amené à fournir une autorisation avec des informations d’identification IAM, un jeton d’accès, un jeton de session, un secret client ou une combinaison de ces éléments. Pour bon nombre d’opérations d’authentification et d’autorisation des utilisateurs, vous avez le choix entre différentes versions authentifiées et non authentifiées de la demande. Les opérations non authentifiées constituent une bonne pratique de sécurité pour les applications que vous distribuez à vos utilisateurs, comme les applications mobiles, car vous n’avez pas besoin d’inclure de secrets dans votre code.

Vous ne pouvez attribuer des autorisations de politiques IAM que pour les [Opérations de gestion autorisées par l'IAM](#user-pool-apis-auth-unauth-sigv4-management) et les [Opérations effectuées par des utilisateurs autorisés par IAM](#user-pool-apis-auth-unauth-sigv4-user).

### Opérations de gestion autorisées par l'IAM
<a name="user-pool-apis-auth-unauth-sigv4-management"></a>

Les opérations de gestion autorisées par IAM modifient et visualisent votre groupe d'utilisateurs et la configuration de votre client d'applications, comme vous le feriez dans le. AWS Management Console

Par exemple, pour modifier votre groupe d'utilisateurs dans une demande d'[UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)API, vous devez présenter des AWS informations d'identification et des autorisations IAM pour mettre à jour la ressource.

Pour autoriser ces demandes dans le AWS Command Line Interface (AWS CLI) ou dans un AWS SDK, configurez votre environnement avec des variables d'environnement ou une configuration client qui ajoute des informations d'identification IAM à votre demande. Pour plus d'informations, consultez la section [Accès à AWS l'aide de vos AWS informations d'identification](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys) dans le *Références générales AWS*. Vous pouvez également envoyer des demandes directement aux [points de terminaison de service](https://docs.aws.amazon.com/general/latest/gr/cognito_identity.html) pour l’API des groupes d’utilisateurs Amazon Cognito. Vous devez autoriser ou *signer* ces demandes avec des AWS informations d'identification que vous intégrez dans l'en-tête de votre demande. Pour plus d'informations, consultez la section [Signature des demandes AWS d'API](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html).


| Opérations de gestion autorisées par l'IAM | 
| --- |
| [AddCustomAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AddCustomAttributes.html) | 
| [CreateGroup](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateGroup.html) | 
| [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html) | 
| [CreateResourceServer](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateResourceServer.html) | 
| [CreateUserImportJob](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserImportJob.html) | 
| [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html) | 
| [CreateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html) | 
| [CreateUserPoolDomain](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolDomain.html) | 
| [DeleteGroup](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteGroup.html) | 
| [DeleteIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteIdentityProvider.html) | 
| [DeleteResourceServer](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteResourceServer.html) | 
| [DeleteUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteUserPool.html) | 
| [DeleteUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteUserPoolClient.html) | 
| [DeleteUserPoolDomain](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteUserPoolDomain.html) | 
| [DescribeIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeIdentityProvider.html) | 
| [DescribeResourceServer](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeResourceServer.html) | 
| [DescribeRiskConfiguration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeRiskConfiguration.html) | 
| [DescribeUserImportJob](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeUserImportJob.html) | 
| [DescribeUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeUserPool.html) | 
| [DescribeUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeUserPoolClient.html) | 
| [DescribeUserPoolDomain](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeUserPoolDomain.html) | 
| [Obtenez CSVHeader](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetCSVHeader.html) | 
| [GetGroup](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetGroup.html) | 
| [GetIdentityProviderByIdentifier](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetIdentityProviderByIdentifier.html) | 
| [GetSigningCertificate](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetSigningCertificate.html) | 
| [Obtenez UICustomization](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUICustomization.html) | 
| [GetUserPoolMfaConfig](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUserPoolMfaConfig.html) | 
| [ListGroups](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListGroups.html) | 
| [ListIdentityProviders](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListIdentityProviders.html) | 
| [ListResourceServers](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListResourceServers.html) | 
| [ListTagsForResource](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListTagsForResource.html) | 
| [ListUserImportJobs](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUserImportJobs.html) | 
| [ListUserPoolClients](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUserPoolClients.html) | 
| [ListUserPools](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUserPools.html) | 
| [ListUsers](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html) | 
| [ListUsersInGroup](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsersInGroup.html) | 
| [SetRiskConfiguration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetRiskConfiguration.html) | 
| [Set UICustomization](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetUICustomization.html) | 
| [SetUserPoolMfaConfig](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetUserPoolMfaConfig.html) | 
| [StartUserImportJob](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_StartUserImportJob.html) | 
| [StopUserImportJob](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_StopUserImportJob.html) | 
| [TagResource](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_TagResource.html) | 
| [UntagResource](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UntagResource.html) | 
| [UpdateGroup](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateGroup.html) | 
| [UpdateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html) | 
| [UpdateResourceServer](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateResourceServer.html) | 
| [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html) | 
| [UpdateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPoolClient.html) | 
| [UpdateUserPoolDomain](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPoolDomain.html) | 

### Opérations effectuées par des utilisateurs autorisés par IAM
<a name="user-pool-apis-auth-unauth-sigv4-user"></a>

Opérations utilisateur autorisées par IAM : inscription, connexion, gestion des informations d'identification, modification et consultation de vos utilisateurs. 

Par exemple, vous pouvez avoir un niveau d’application côté serveur qui repose sur un front-end web. Votre application côté serveur est un client OAuth confidentiel auquel vous faites confiance et qui dispose d'un accès privilégié à vos ressources Amazon Cognito. Pour enregistrer un utilisateur dans l'application, votre serveur peut inclure des AWS informations d'identification dans une demande d'[AdminCreateUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminCreateUser.html)API. Pour plus d'informations sur les types de OAuth clients, consultez la section [Types de clients](https://www.rfc-editor.org/rfc/rfc6749#section-2.1) dans *le cadre d'autorisation OAuth 2.0*.

Pour autoriser ces demandes dans le SDK AWS CLI ou dans un AWS SDK, configurez l'environnement de votre application côté serveur avec des variables d'environnement ou une configuration client qui ajoute des informations d'identification IAM à votre demande. Pour plus d'informations, consultez la section [Accès à AWS l'aide de vos AWS informations d'identification](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys) dans le *Références générales AWS*. Vous pouvez également envoyer des demandes directement aux [points de terminaison de service](https://docs.aws.amazon.com/general/latest/gr/cognito_identity.html) pour l’API des groupes d’utilisateurs Amazon Cognito. Vous devez autoriser ou *signer* ces demandes avec des AWS informations d'identification que vous intégrez dans l'en-tête de votre demande. Pour plus d'informations, consultez la section [Signature des demandes AWS d'API](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html).

Si votre client d’application dispose d’un secret client, vous devez fournir à la fois vos informations d’identification IAM et, selon l’opération, le paramètre `SecretHash` ou la valeur `SECRET_HASH` dans `AuthParameters`. Pour de plus amples informations, veuillez consulter [Calcul des valeurs de hachage secret](signing-up-users-in-your-app.md#cognito-user-pools-computing-secret-hash).


| Opérations effectuées par des utilisateurs autorisés par IAM | 
| --- |
| [AdminAddUserToGroup](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminAddUserToGroup.html) | 
| [AdminConfirmSignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminConfirmSignUp.html) | 
| [AdminCreateUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminCreateUser.html) | 
| [AdminDeleteUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminDeleteUser.html) | 
| [AdminDeleteUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminDeleteUserAttributes.html) | 
| [AdminDisableProviderForUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminDisableProviderForUser.html) | 
| [AdminDisableUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminDisableUser.html) | 
| [AdminEnableUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminEnableUser.html) | 
| [AdminForgetDevice](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminForgetDevice.html) | 
| [AdminGetDevice](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminGetDevice.html) | 
| [AdminGetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminGetUser.html) | 
| [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html) | 
| [AdminLinkProviderForUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminLinkProviderForUser.html) | 
| [AdminListDevices](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminListDevices.html) | 
| [AdminListGroupsForUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminListGroupsForUser.html) | 
| [AdminListUserAuthEvents](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminListUserAuthEvents.html) | 
| [AdminRemoveUserFromGroup](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRemoveUserFromGroup.html) | 
| [AdminResetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminResetUserPassword.html) | 
| [AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html) | 
| [AdminSetUserMFAPreference](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserMFAPreference.html) | 
| [AdminSetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html) | 
| [AdminSetUserSettings](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserSettings.html) | 
| [AdminUpdateAuthEventFeedback](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateAuthEventFeedback.html) | 
| [AdminUpdateDeviceStatus](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateDeviceStatus.html) | 
| [AdminUpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html) | 
| [AdminUserGlobalSignOut](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUserGlobalSignOut.html) | 

### Opérations utilisateur non authentifiées
<a name="user-pool-apis-auth-unauth-unauth"></a>

Les opérations utilisateur non authentifiées permettent d’inscrire, de connecter les utilisateurs et de leur lancer le processus de réinitialisation de mot de passe. Les opérations d’API non authentifiées, c’est-à-dire *publiques*, s’avèrent utiles lorsque vous voulez permettre à quiconque sur Internet de s’inscrire et de se connecter à votre application.

Par exemple, pour enregistrer un utilisateur dans votre application, vous pouvez distribuer un client OAuth public qui ne fournit aucun accès privilégié aux secrets. Vous pouvez enregistrer cet utilisateur à l'aide de l'opération d'API non authentifiée. [SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html)

Pour envoyer ces demandes dans un client public que vous avez développé avec un AWS SDK, vous n'avez pas besoin de configurer d'informations d'identification. Vous pouvez également envoyer des demandes directement aux [points de terminaison de service](https://docs.aws.amazon.com/general/latest/gr/cognito_identity.html) pour l’API des groupes d’utilisateurs Amazon Cognito sans aucune autorisation supplémentaire.

Si votre client d’application dispose d’un secret client, selon l’opération, vous devez fournir le paramètre `SecretHash` ou la valeur `SECRET_HASH` dans `AuthParameters`. Pour de plus amples informations, veuillez consulter [Calcul des valeurs de hachage secret](signing-up-users-in-your-app.md#cognito-user-pools-computing-secret-hash).


| Opérations utilisateur non authentifiées | 
| --- |
| [SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html) | 
| [ConfirmSignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html) | 
| [ResendConfirmationCode](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ResendConfirmationCode.html) | 
| [ForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html) | 
| [ConfirmForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmForgotPassword.html) | 
| [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html) | 

### Opérations des utilisateurs autorisés par jeton
<a name="user-pool-apis-auth-unauth-token-auth"></a>

Les opérations utilisateur authentifiées par jeton permettent de déconnecter les utilisateurs et de gérer leurs informations d’identification. Elles permettent également de modifier et d’afficher les utilisateurs après qu’ils se soient connectés ou qu’ils aient entamé le processus de connexion. Les opérations d’API authentifiées par jeton s’avèrent utiles lorsque vous ne voulez pas distribuer de secrets dans votre application et que vous souhaitez autoriser les demandes avec les informations d’identification propres à vos utilisateurs. Si votre utilisateur a mené à bien le processus de connexion, vous devez autoriser sa demande d’API authentifiée par jeton avec un jeton d’accès. Si votre utilisateur se trouve au milieu d’un processus de connexion, vous devez autoriser sa demande d’API authentifiée par jeton avec le jeton de session qu’a renvoyé Amazon Cognito en réponse à la demande précédente.

Par exemple, dans un client public, vous pouvez souhaiter mettre à jour le profil d’un utilisateur de façon à limiter l’accès en écriture uniquement à son profil. Pour effectuer cette mise à jour, votre client peut inclure le jeton d'accès de l'utilisateur dans une demande d'[UpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserAttributes.html)API.

Pour envoyer ces demandes dans un client public que vous avez développé avec un AWS SDK, vous n'avez pas besoin de configurer d'informations d'identification. Incluez un paramètre `AccessToken` ou `Session` dans votre demande. Vous pouvez également envoyer des demandes directement aux [points de terminaison de service](https://docs.aws.amazon.com/general/latest/gr/cognito_identity.html) pour l’API des groupes d’utilisateurs Amazon Cognito. Pour autoriser une demande à destination d’un point de terminaison de service, incluez le jeton d’accès ou de session dans le corps POST de votre demande.

Pour signer une demande d’API pour une opération authentifiée par jeton, incluez le jeton d’accès en tant qu’en-tête `Authorization` dans votre demande, au format `Bearer <Base64-encoded access token>`.


| Opérations des utilisateurs autorisés par jeton | AccessToken | Session | 
| --- |--- |--- |
| [RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html) |  | ✓ | 
| [ChangePassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ChangePassword.html) | ✓ |  | 
| [GetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUser.html) | ✓ |  | 
| [StartWebAuthnRegistration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_StartWebAuthnRegistration.html) | ✓ |  | 
| [CompleteWebAuthnRegistration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CompleteWebAuthnRegistration.html) | ✓ |  | 
| [DeleteWebAuthnCredential](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteWebAuthnCredential.html) | ✓ |  | 
| [ListWebAuthnCredentials](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListWebAuthnCredentials.html) | ✓ |  | 
| [UpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserAttributes.html) | ✓ |  | 
| [DeleteUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteUserAttributes.html) | ✓ |  | 
| [DeleteUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteUser.html) | ✓ |  | 
| [ConfirmDevice](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmDevice.html) | ✓ |  | 
| [ForgetDevice](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgetDevice.html) | ✓ |  | 
| [GetDevice](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetDevice.html) | ✓ |  | 
| [ListDevices](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListDevices.html) | ✓ |  | 
| [UpdateDeviceStatus](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateDeviceStatus.html) | ✓ |  | 
| [GetUserAttributeVerificationCode](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUserAttributeVerificationCode.html) | ✓ |  | 
| [VerifyUserAttribute](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_VerifyUserAttribute.html) | ✓ |  | 
| [SetUserSettings](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetUserSettings.html) | ✓ |  | 
| [SetUserMFAPreference](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetUserMFAPreference.html) | ✓ |  | 
| [GlobalSignOut](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GlobalSignOut.html) | ✓ |  | 
| [UpdateAuthEventFeedback](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateAuthEventFeedback.html) |  | ✓ | 
| [AssociateSoftwareToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AssociateSoftwareToken.html) | ✓ | ✓ | 
| [VerifySoftwareToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_VerifySoftwareToken.html) | ✓ | ✓ | 
| [RevokeToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RevokeToken.html)¹ |  |  | 
| [GetTokensFromRefreshToken](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetTokensFromRefreshToken.html)¹ |  |  | 

¹ `RevokeToken` et `GetTokensFromRefreshToken` prenez les jetons d'actualisation comme paramètre d'autorisation. Le jeton d’actualisation sert de jeton d’autorisation et de ressource cible.