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.
Gérez les méthodes d'authentification dans AWS Kits SDK
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 plus d’informations, consultez Flux d’authentification. 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.
Rubriques
Choice-based authentication
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 InitiateAuthou AdminInitiateAuth, ou dans le ChallengeName paramètre de RespondToAuthChallengeou AdminRespondToAuthChallenge.
Important
Choice-based la connexion comporte deux conditions préalables. Le client de votre application doit activer le flux ALLOW_USER_AUTH d'authentification, et les méthodes sans mot de passe et clé d'accès (EMAIL_OTP,SMS_OTP,WEB_AUTHN) nécessitent un pool d'utilisateurs dans le plan de fonctionnalités Essentials ou Plus. Elles ne sont pas disponibles dans le niveau Lite. PASSWORD(y compris le SRP) est disponible sur tous les plans de fonctionnalités. Si aucune méthode basée sur le choix n'apparaît pour vos utilisateurs, confirmez à la fois le flux client-application et le plan de fonctionnalités avant de poursuivre le dépannage.
Pour passer en revue ces options dans leur contexte d'API, reportez-vous ChallengeName à RespondToAuthChallenge.
Choice-based la connexion lance 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.
-
Options de demande avec
AuthParametersouUSERNAMEuniquement. Amazon Cognito renvoie unSELECT_CHALLENGEdéfi. À partir de là, votre application peut inviter l'utilisateur à sélectionner un défi et à renvoyer cette réponse à votre groupe d'utilisateurs. -
Demandez un défi préféré avec
AuthParametersofPREFERRED_CHALLENGEet les paramètres de votre défi préféré, le cas échéant. Par exemple, si vous demandez unPREFERRED_CHALLENGEdePASSWORD_SRP, vous devez également inclureSRP_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 exemplePASSWORD_VERIFIERdans lePASSWORD_SRPflux ou CodeDeliveryDetailsdans les fluxEMAIL_OTPetSMS_OTP. Si le défi préféré n'est pas disponible, Amazon Cognito répond en fournissantSELECT_CHALLENGEune liste des défis disponibles. -
Connectez d'abord les utilisateurs, puis demandez leurs options d'authentification basées sur leurs choix. Une GetUserAuthFactorsdemande 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 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.
Client-based authentication
Client-based l'authentification prend en charge les flux d'authentification suivants. Déclarez ces options dans le AuthFlow paramètre de InitiateAuthou AdminInitiateAuth.
-
USER_PASSWORD_AUTHetADMIN_USER_PASSWORD_AUTHSign-in avec des mots de passe persistants
Ce flux d'authentification est équivalent à l'
PASSWORDauthentification basée sur les choix. -
USER_SRP_AUTHSign-in avec des mots de passe persistants et une charge utile sécurisée
Ce flux d'authentification est équivalent à l'
PASSWORD_SRPauthentification basée sur les choix. -
REFRESH_TOKEN_AUTHCe flux d'authentification n'est disponible que dans le cadre de l'authentification basée sur le client.
-
CUSTOM_AUTHAuthentification personnalisée
Ce flux d'authentification n'est disponible que dans le cadre de 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 exempleUSER_SRP_AUTH. Avec cette déclaration, la demande inclut également les paramètres permettant de commencer l'authentification, par exemple USERNAMESECRET_HASH, etSRP_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 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_AUTHALLOW_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.
Step-up authentification avec le flux USER_AUTH
Vous demandez une authentification renforcée dans le USER_AUTH flux existant avec les RespondToAuthChallengeopérations InitiateAuthet. Il n'y a aucune nouvelle opération d'API. Les opérations correspondantes côté serveur AdminInitiateAuthet AdminRespondToAuthChallenge, prennent en charge les mêmes paramètres et comportements d'augmentation, et AdminInitiateAuth peuvent également éventuellement utiliser un jeton d'accès. Ce flux fonctionne à la fois lorsqu'un utilisateur possède un jeton d'identification existant et lorsqu'il s'authentifie pour la première fois auprès d'un niveau cible. Pour plus d'informations sur le flux, consultezExemple de session d'authentification.
Pour plus d'informations sur les niveaux ACR et les valeurs AMR, consultez. Niveaux d'authentification avec les réclamations ACR et AMR
Note
Step-up l'authentification nécessite le plan de fonctionnalités Essentials ou Plus.
Vous transmettez les paramètres d'augmentation dans la AuthParameters carte de votre InitiateAuth (ouAdminInitiateAuth) demande : la nouvelle TARGET_ACR_VALUES etMAX_AGE, associée à l'existante USERNAMEACCESS_TOKEN, etPREFERRED_CHALLENGE. Pour la définition et les contraintes de chaque paramètre, consultez InitiateAuthet AdminInitiateAuthdans le manuel de référence de l'API des groupes d'utilisateurs Amazon Cognito.
Le tableau suivant décrit comment Amazon Cognito répond aux combinaisons de ces paramètres.
| Parameters | Comportement |
|---|---|
TARGET_ACR_VALUESetACCESS_TOKEN, avec MAX_AGE Satisfait |
Amazon Cognito fait passer l'utilisateur des facteurs actuels du jeton au niveau de priorité satisfaisant le plus élevé. |
TARGET_ACR_VALUESetACCESS_TOKEN, en l'MAX_AGEabsence de satisfaction |
Amazon Cognito authentifie l'utilisateur en partant de zéro pour atteindre le niveau cible. |
TARGET_ACR_VALUESsans ACCESS_TOKEN |
Amazon Cognito authentifie l'utilisateur en partant de zéro pour atteindre le niveau cible. |
| Aucun paramètre | Le USER_AUTH flux se comporte comme il le fait sans authentification renforcée. |
Tenez compte du comportement suivant lorsque vous concevez un flux d'authentification renforcé.
-
Step-up l'authentification, c'est tout ou rien. Si l'atteinte du niveau cible nécessite plusieurs défis, par exemple un mot de passe et un TOTP pour le niveau 4, et que l'utilisateur échoue à un défi, la tentative d'augmentation échoue complètement. Amazon Cognito n'émet pas de jetons intermédiaires.
-
Si le jeton présenté atteint ou dépasse déjà le niveau demandé, Amazon Cognito renvoie une erreur au lieu d'émettre un nouveau jeton. Cela empêche les applications d'utiliser l'authentification renforcée comme mécanisme d'actualisation des jetons.
-
L'utilisateur doit déjà disposer des facteurs nécessaires pour satisfaire un niveau demandé. Si aucun facteur n'est configuré pour atteindre le niveau cible demandé par l'utilisateur, Amazon Cognito renvoie un message d'erreur. Step-upl'authentification n'invite pas l'utilisateur à configurer de nouveaux facteurs.
-
Le MFA est un étage. Si les paramètres MFA de l'utilisateur ou du groupe d'utilisateurs nécessitent l'authentification MFA, la connexion initiale continue de s'appliquer et de lancer le défi MFA même si le niveau cible est inférieur et ne nécessiterait pas autrement l'authentification MFA. Le MFA demandé par la protection contre les menaces (fonctionnalités de sécurité avancées) est également appliqué lors de la connexion initiale, même lorsque le niveau ACR cible demandé ne nécessiterait pas autrement le MFA.
TARGET_ACR_VALUESImpossible de supprimer une invite MFA requise. La cible peut tout au plus influencer le facteur MFA activé demandé par Amazon Cognito. Si une demande d'extension cible un niveau inférieur, par exemple le niveau 1, pour un utilisateur qui doit utiliser l'authentification multifacteur, Amazon Cognito applique silencieusement la MFA requise. Cela permet à l'utilisateur de passer à la vitesse supérieure et ne renvoie pas d'erreur.
La demande d'authentification renforcée TARGET_ACR_VALUES nécessite le plan de fonctionnalités Essentials ou Plus. Pour plus d’informations, consultez Exigences relatives au plan de fonctionnalités.