Sensibilité à la casse du groupe d'utilisateurs - Amazon Cognito

Sensibilité à la casse du groupe d'utilisateurs

Les groupes d'utilisateurs Amazon Cognito que vous créez dans le AWS Management Console ne sont pas sensibles à la casse par défaut. Lorsqu'un groupe d'utilisateurs n'est pas sensible à la casse,utilisateur@exemple.com et User@example.com reportez-vous au même utilisateur. Lorsque les noms d'utilisateur d'un groupe d'utilisateurs ne sont pas sensibles à la casse, les attributs preferred_username et email ne sont pas aussi sensibles à la casse.

Pour prendre en compte les paramètres de sensibilité à la casse du groupe d'utilisateurs, identifiez les utilisateurs dans le code de votre application en fonction d'un autre attribut d’utilisateur. Comme la casse d'un nom d'utilisateur, d'un nom d'utilisateur préféré ou d'un attribut d'adresse e-mail peut varier dans différents profils d'utilisateur, reportez-vous à la place à l'attribut sub. Vous pouvez également créer un attribut personnalisé inaltérable dans votre groupe d'utilisateurs et attribuer votre propre valeur d'identificateur unique à l'attribut de chaque nouveau profil d’utilisateur. Quand vous créez un utilisateur pour la première fois, vous pouvez écrire une valeur dans l'attribut personnalisé inaltérable que vous avez créé.

Note

Quels que soient les paramètres de sensibilité à la casse de votre groupe d'utilisateurs, Amazon Cognito exige qu'un utilisateur fédéré d'un fournisseur d'identité (IdP) SAML ou OIDC transmette une revendication NameId ou sub unique et sensible à la casse. Pour plus d'informations sur la sensibilité à la casse de l'identifiant unique et sur les fournisseurs d'identité SAML, consultez Flux d'authentification SAML de fournisseur d'identité de groupe d'utilisateur.

Création d'un groupe d'utilisateurs sensible à la casse

Si vous créez des ressources avec l'interface AWS Command Line Interface (AWS CLI) et des opérations d'API telles que CreateUserPool, vous devez définir le paramètre booléen CaseSensitive sur false. Ce paramètre crée un groupe d'utilisateurs insensible à la casse. Si vous ne spécifiez aucune valeur, le CaseSensitive utilise la valeur true par défaut. Ce comportement par défaut est à l'opposé du comportement par défaut des groupes d'utilisateurs que vous créez dans AWS Management Console. Avant le 12 février 2020, les groupes d'utilisateurs étaient sensibles à la casse, quelle que soit la plate-forme.

Vous pouvez utiliser l'onglet Sign-in experience (Expérience de connexion) de AWS Management Console ou l'opération d'API DescribeUserPool pour vérifier les paramètres de sensibilité à la casse pour chaque groupe d'utilisateurs de votre compte.

Migration vers un nouveau groupe d'utilisateurs

En raison des conflits potentiels entre les profils utilisateur, vous ne pouvez pas rendre insensible à la casse un groupe d'utilisateurs Amazon Cognito sensible à la casse. Au lieu de cela, migrez vos utilisateurs vers un nouveau groupe d'utilisateurs. Vous devez créer un code de migration pour résoudre les conflits liés à la casse. Ce code doit renvoyer un nouvel utilisateur unique ou rejeter la tentative de connexion s'il détecte un conflit. Dans un nouveau groupe d'utilisateurs insensible à la casse, attribuez un Déclencheur Lambda de migration d'utilisateur. La AWS Lambda fonction peut créer des utilisateurs dans le nouveau groupe d'utilisateurs insensible à la casse. Quand l'utilisateur ne parvient pas à se connecter avec le groupe d'utilisateurs insensible à la casse, la fonction Lambda détecte et duplique l'utilisateur à partir du groupe d'utilisateurs sensible à la casse. Vous pouvez également activer un déclencheur Lambda de migration d'utilisateur sur les évènements ForgotPassword. Amazon Cognito transmet les informations utilisateur et les métadonnées d'événements de l'action de connexion ou de récupération de mot de passe à votre fonction Lambda. Vous pouvez utiliser les données d'événement pour gérer les conflits entre les noms d'utilisateur et les adresses e-mail lorsque votre fonction crée le nouvel utilisateur dans votre groupe d'utilisateurs insensible à la casse. Ces conflits interviennent entre des noms d'utilisateur et des adresses e-mail qui seraient uniques dans un groupe d'utilisateurs insensible à la casse, mais identiques dans un groupe d'utilisateurs sensible à la casse.

Pour plus d'informations sur la façon d'utiliser un déclencheur Lambda de migration d'utilisateur entre les groupes d'utilisateurs Amazon Cognito, consultez Migrating Users to Amazon Cognito user pools dans le blog AWS.