Skip to main content
既定では、新しいユーザーを作成すると、Auth0はそのユーザーの一意な識別子として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 トリガーに追加します。
1

アクションを作成する

Dashboard > Actions > Library に移動します。[Create Action] を選択し、ドロップダウンメニューから [Create Custom Action] を選択します。表示された [Create Action] ウィンドウで、次の項目を入力します。
  • Name:「Set Custom User ID」など、アクションの名前を指定します。
  • Trigger:[Pre User Registration] を選択します。
  • Runtime:使用するNodeランタイムを選択します。
その後 [Create] を選択すると、新しいアクションのコードエディターが開きます。
2

アクションのコードを記述する

アクションのコードエディターで、ユースケースに応じて api.user.setUserId() を使ってユーザーIDを設定するアクションコードを記述します。カスタムユーザーIDは、次の要件を満たす必要があります。ユーザーIDの問題でユーザー作成が失敗した場合は、テナントログでログタイプ fs (サインアップ失敗) を確認してください。
Nodeに組み込まれている crypto モジュールを使ってUUID v4を生成できます。
Example: Generate a UUID v4
特定のUUIDバージョン (v1、v5、v7など) が必要な場合は、uuid npmパッケージを依存関係として追加し、アクション内で使用します。
Example: Generate a specific UUID version
app_metadata の値など、サインアップデータから決定的なユーザーIDを組み立てることもできます。
Example: Compose an ID from sign-up data
コードの記述とアクションのテストが完了したら、[導入] を選択します。
3

アクションをトリガーに追加する

アクションを導入したら、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は変更できません。