ユーザープールの大文字と小文字の区別 - Amazon Cognito

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ユーザープールの大文字と小文字の区別

で作成した Amazon Cognito ユーザープール AWS Management Console は、デフォルトでは大文字と小文字が区別されません。ユーザープールが大文字と小文字を区別しない場合、user@example.comUser@example.com は同じユーザーを参照します。ユーザープール内のユーザー名が大文字と小文字が区別しない場合、preferred_usernameemail 属性でも大文字と小文字が区別されません。

ユーザープールの大文字と小文字の区別の設定を考慮するには、代替のユーザー属性に基づいてアプリコードでユーザーを識別します。ユーザー名、優先ユーザー名、または E メールアドレス属性の大文字と小文字はユーザープロファイルによって異なる場合があるため、代わりに sub 属性を参照してください。また、ユーザープールにイミュータブルカスタム属性を作成し、各新規ユーザープロファイルの属性に独自の一意の識別子値を割り当てることもできます。最初にユーザーを作成するときに、作成したイミュータブルカスタム属性に値を書き込むことができます。

注記

ユーザープールの大文字と小文字を区別する設定に関係なく、Amazon Cognito では、 SAMLまたは OIDC ID プロバイダー (IdP) のフェデレーティッドユーザーが、大文字と小文字を区別する一意の NameId または subクレームを渡す必要があります。一意の識別子の大文字と小文字の機密性と の詳細についてはSAML IdPs、「」を参照してくださいSP 開始SAMLサインインの使用

大文字と小文字を区別するユーザープールの作成

AWS Command Line Interface (AWS CLI) と などのAPIオペレーションを使用してリソースを作成する場合はCreateUserPool、ブールCaseSensitiveパラメータを に設定する必要がありますfalse。この設定では、大文字と小文字を区別しないユーザープールが作成されます。値を指定しないと、CaseSensitive はデフォルトで true に従います。このデフォルトは、 AWS Management Consoleで作成するユーザープールのデフォルト動作とは反対です。2020 年 2 月 12 日以前のユーザープールでは、プラットフォームに関係なく、大文字と小文字が区別されていました。

AWS Management Console または DescribeUserPoolAPIオペレーションのサインインエクスペリエンスタブを使用して、アカウント内の各ユーザープールの大文字と小文字の区別設定を確認できます。

新しいユーザープールに移行する

ユーザープロファイル間で競合が発生する可能性があるため、Amazon Cognito ユーザープールで大文字と小文字を区別するから大文字と小文字を区別しないに変更することはできません。代わりに、ユーザーを新しいユーザープールに移行します。ケース関連の競合を解決するには、移行コードをビルドする必要があります。このコードは、競合を検出したときに一意の新しいユーザーを返すか、サインイン試行を拒否する必要があります。大文字と小文字を区別しない新しいユーザープールで、ユーザー移行の Lambda トリガー を割り当てます。 AWS Lambda 関数は、新しい大文字と小文字を区別しないユーザープールにユーザーを作成できます。ユーザーが大文字小文字を区別しないユーザープールでサインインに失敗した場合、Lambda 関数は大文字小文字を区別するユーザープールからユーザーを見つけて、複製します。ForgotPassword イベントで移行ユーザー Lambda トリガーをアクティブ化することもできます。Amazon Cognito は、サインインやパスワード回復アクションからユーザー情報とイベントメタデータを Lambda 関数に渡します。関数が大文字と小文字を区別しないユーザープールに新しいユーザーを作成する際、イベントデータを使用してユーザー名とメールアドレス間で発生する競合を管理することができます。これらの競合は、大文字小文字を区別しないユーザープールでは一意ですが、大文字小文字を区別するユーザープールでは同一のユーザー名と E メールアドレスの間で発生する競合です。

Amazon Cognito ユーザープール間でユーザーの Lambda トリガーを移行する方法については、 AWS ブログの「ユーザーの Amazon Cognito ユーザープールへの移行」を参照してください。