user_id属性を自動的に生成します。
データベース接続では、ユーザー作成時にカスタムユーザーIDを設定できます。形式の標準化やシステム間の一貫性が必要な場合は、独自のユーザーIDを指定するとよいでしょう。たとえば、次のようなケースです。
- 別のIDプロバイダーからAuth0へ移行する際に既存のユーザーID構造を維持し、トークン、監査ログ、統合の一貫性を保つ。
- UUID v4や連番の整数によるユーザーIDなど、特定の形式を必要とするデータシステムや課金システムとの互換性を確保する。
- 社内データベースやCRMの主キーとユーザーIDを一致させ、データの結合やレポート作成を簡素化する。
- テナント名やアプリのメタデータなど、既知の属性から決定論的にユーザーIDを組み立てる。
user_idを設定するには、新しいユーザープロファイルの作成前に発生するpre-user-registrationトリガーに追加したアクション内でapi.user.setUserId()を呼び出します。
ユーザーIDの決定方法
ユーザープロファイル内のidentities配列には、ユーザーが認証に使用する各IDプロバイダーの情報を含むオブジェクトが格納されます。カスタムユーザーIDを設定すると、データベース接続に対応するidentities配列オブジェクトのuser_id属性が設定されます。
カスタムのidentitiesユーザーIDを設定する方法は、ユーザーの作成方法によって異なります。次の表は、利用可能な作成方法と、user_idが設定される優先順位をまとめたものです。
まとめると、
pre-user-registrationアクション内でapi.user.setUserId()により設定したユーザーIDは、カスタムユーザーIDを設定する他の方法よりも優先されます。ただし、一括インポートジョブではpre-user-registrationトリガーは発火しません。
また、Auth0はプロファイルのプライマリIDに基づいて、ユーザープロファイルのルートレベルのuser_idを設定します。プライマリIDとは、identities配列の最初のIDです。
ルートレベルのuser_idは、プライマリIDのユーザーIDの先頭に接続ストラテジーを付加した値です (たとえばauth0|your_custom_id) 。このルートレベルのuser_idは、たとえばsubクレームの値として使用されるため、ダウンストリームのシステムが接頭辞付きの値を想定しているか必ず確認してください。
pre-user-registration アクションでカスタムユーザーIDを設定する
pre-user-registration アクションでカスタムの user_id を設定するには、アクションを作成し、ユーザーIDを任意の値に設定するコードを記述したうえで、そのアクションを pre-user-registration トリガーに追加します。
アクションを作成する
Dashboard > Actions > Library に移動します。[Create Action] を選択し、ドロップダウンメニューから [Create Custom Action] を選択します。表示された [Create Action] ウィンドウで、次の項目を入力します。
- Name:「Set Custom User ID」など、アクションの名前を指定します。
- Trigger:[Pre User Registration] を選択します。
- Runtime:使用するNodeランタイムを選択します。
アクションのコードを記述する
アクションのコードエディターで、ユースケースに応じて
コードの記述とアクションのテストが完了したら、[導入] を選択します。
api.user.setUserId() を使ってユーザーIDを設定するアクションコードを記述します。カスタムユーザーIDは、次の要件を満たす必要があります。-
user_idは接続内で一意である必要があります。指定したuser_idのユーザーがすでに存在する場合、作成は失敗します。 -
user_idは、Management APIのユーザー作成エンドポイントのuser_idボディパラメーターと同じ検証を通過する必要があります。
fs (サインアップ失敗) を確認してください。例:UUID v4を生成する
例:UUID v4を生成する
Nodeに組み込まれている
crypto モジュールを使ってUUID v4を生成できます。Example: Generate a UUID v4
例:特定バージョンのUUIDを生成する
例:特定バージョンのUUIDを生成する
特定のUUIDバージョン (v1、v5、v7など) が必要な場合は、
uuid npmパッケージを依存関係として追加し、アクション内で使用します。Example: Generate a specific UUID version
例:サインアップデータからIDを組み立てる
例:サインアップデータからIDを組み立てる
app_metadata の値など、サインアップデータから決定的なユーザーIDを組み立てることもできます。Example: Compose an ID from sign-up data
アクションをトリガーに追加する
アクションを導入したら、Dashboard > Actions > Triggers > Pre User Registration に移動します。右側の [Add Action] セクションの [Custom] から、作成した新しいアクションを [Start] と [Complete] の間のフローにドラッグします。その後、[Apply] を選択します。
制限事項
-
パスワードレス接続では、
pre-user-registrationトリガーによるカスタムユーザーIDの設定はサポートされていません。 -
pre-user-registrationトリガーは、一括インポートジョブでは起動しません。 -
ソーシャル接続やエンタープライズ接続でログインするユーザーには、カスタムの
user_idを設定できません。これらのIDは外部のIDプロバイダーから提供されるためです。 -
既存ユーザーの
user_idは変更できません。