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éé.
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
surfalse
. Ce paramètre crée un groupe d'utilisateurs insensible à la casse. Si vous ne spécifiez aucune valeur, leCaseSensitive
utilise la valeurtrue
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.