ユーザー名ポリシー
Logto では、常にユーザー名に対して基本的なルールセットを強制します:ユーザー名は英字、数字、アンダースコア(_)のみを含み、数字で始まらず、128 文字以内です。この基本ルールに加えて、ユーザー名ポリシーを設定することで、エンドユーザーが選択できるユーザー名をさらに制限できます。たとえば、ユーザー名を大文字小文字を区別しないようにしたり、長さの範囲を狭めたり、許可される文字種を制限したりできます。
Logto は、ユーザー名が作成または更新される方法によって、ユーザー名ポリシーを異なる方法で適用します:
- 標準のサインイン体験、Account API、Account Center などのエンドユーザーフローでは、常に現在のユーザー名ポリシーが適用されます。ユーザーはユーザー名入力ページでポリシー要件を確認でき、要件に違反した場合はインラインエラーが表示されます。
- 管理者が Management API を通じて実行する操作(例:
POST /api/users)はポリシーの適用対象外で、基本ルールのみが適用されます。これにより、必要に応じてポリシーチェックなしでユーザーのプロビジョニングや移行が可能です。
ポリシーを更新しても既存のユーザー名が変更されたり無効になったりすることはありません。既存のユーザーは、たとえ新規登録では許可されなくなったユーザー名であっても、引き続き現在のユーザー名でサインインできます。
ユーザー名ポリシーの設定
ユーザー名ポリシーを設定するには、以下の手順に従ってください:
-
コンソール > サインイン & アカウント > サインアップとサインイン
ページに移動します。 - 詳細オプション セクションの ユーザー名ポリシー 項目で 管理 をクリックします。
利用可能な設定は次のとおりです:
- 大文字小文字を区別する:文字の大文字小文字のみが異なるユーザー名(例:
Aliceとalice)を別のユーザー名として扱うかどうか。デフォルトで有効です。無効にすると、ユーザーはどの大文字小文字の組み合わせでもサインインでき、既存のユーザー名と大文字小文字を無視して重複する新しいユーザー名は拒否されます。 - 長さ:ユーザー名に許可される最小および最大文字数を、1 から 128 の基本範囲内で設定します。
- 許可される文字:ユーザーが含めることができる文字種を選択します:大文字(
A-Z)、小文字(a-z)、数字(0-9)、アンダースコア(_)。基本ルールによりユーザー名は数字で始めることができないため、大文字、小文字、またはアンダースコアのいずれかは必ず有効にしておく必要があります。
大文字小文字を区別しないユーザー名への切り替え
既存のテナントを大文字小文字を区別するユーザー名から区別しないユーザー名に切り替えるには、大文字小文字を無視して比較した際に重複するユーザー名(例:Alice と alice が異なるユーザーに属している)が存在しない必要があります。こうした競合が存在する場合、ポリシーの保存は 409 エラーで拒否されます。
コンソールで 大文字小文字を区別する をオフに切り替えると、Logto は競合を事前にチェックし、重複するユーザー名を一覧表示します。これにより、保存前に(アカウントの名前変更や削除などで)解決できます。また、 GET /api/sign-in-exp/username-policy/case-sensitivity-conflicts を使って直接競合を照会することも可能です。
関連リソース
ユーザーデータ:ユーザー名メール / 電話 / ユーザー名によるサインアップ
パスワードポリシー