ユーザープロファイルでのメタデータの使い方

Auth0は包括的システムを提供して、Auth0ユーザープロファイルにメタデータを保管できるようにしています。メタデータは以下に使用できます。

  • アプリケーション特定のデータをユーザープロファイルに保管する

  • ユーザーに対して特定の操作が発生したかを記録する

  • ユーザープロファイルに関する負荷の大きい処理の結果をキャッシュして、将来のログインで再利用する

  • IDプロバイダー以外から提供された情報を保管する、または、IDプロバイダーから提供された情報を上書きする情報を保管する

メタデータは、ユーザーのログインフローの一部として変更されても構いません。

接続の同期を構成して、ユーザープロファイルの作成時にのみユーザーのルート属性がIDプロバイダーによって更新されるようにします。ルート属性は、個別または一括インポートで編集できます。詳細については、「ユーザープロファイルの更新に向けてIDプロバイダー接続を構成する」をお読みください。

メタデータの種類

Auth0は3種類のメタデータを使って、特定の情報を保管します。

メタデータタイプ フィールド名 説明
User Information(ユーザー情報) user_metadata ユーザーの主要な機能性に影響しない設定などのユーザー属性を保管します。このデータは、Management APIを使ってフォームを作成すると、ログイン済みのユーザーが編集できるため、安全なデータ保管場所としては使用できません
Access Information(アクセス情報) app_metadata 権限、Auth0プラン、外部IDなど、ユーザーの機能へのアクセスに影響する情報を保管します。このデータはユーザーが編集できないため、このフィールドに保管できる情報には制約があります。
Application Information(アプリケーション情報) Clientオブジェクトのclient_metadata、ルールのcontext.clientMetadata、ログイン後アクションのevent.client.metadata アプリケーション(OIDC OAuth2の用語ではクライアント)に関する情報を保管します。たとえば、アプリケーションのホームページのURL(Auth0がアプリケーション設定で指定しない任意の値)です。

メタデータを管理する

メタデータの作成や更新には、ルール、Authentication API、Management APIAuth0 Dashboard、ロックライブラリーを使うことができます。

カスタムソーシャル接続のカスタムDBスクリプトとfetchUserProfileスクリプトでは、メタデータの作成と更新にmetadataオブジェクトを使うことができます。

アクションを使用する

アクションは安全でテナント固有のバージョン管理された関数で、Node.jsで記述され、Auth0プラットフォームにある特定の拠点で実行されます。アクションは、カスタムロジックでAuth0の機能をカスタマイズおよび拡張するために使用されます。ユーザープロファイルを強化するために使うこともできます。

たとえば、カスタムクレームを使用するpost-loginアクションを作成して、user_metadataプロパティーをIDトークンにコピーするのに使うことができます。その際に、ユーザーのuser_metadataはAuthentication APIのユーザー情報取得エンドポイントを介して取得されます。

詳細については、「ログイン後のアクショントリガーでユーザーメタデータを管理する」をお読みください。

Management APIを使用する

ユーザーは、適切なスコープを指定してアクセストークンを要求し、以下のManagement APIエンドポイントを使ってuser_metadataの表示や作成、更新を行ったり、MFAの構成を削除したりできます。

タスク エンドポイント スコープ
表示 GET /api/v2/users/{id} read:current_user
作成 PATCH /api/v2/users/{id} create:current_user_metadata
更新 PATCH /api/v2/users/{id} update:current_user_metadata
削除 DELETE /api/v2/users/{id}/multifactor/{provider} update:users

Auth0 Management APIを呼び出すのに、アクセストークンは必須です。詳細については、「Management APIのアクセストークン」と「SPAにManagement APIのトークンを取得する」をお読みください。

Dashboardを使用する

Auth0 Dashboardを使用すると、キーと値のペアを含むアプリケーションメタデータを構成することができます。詳細については、「アプリケーションメタデータを構成する」をお読みください。

ロックライブラリーを使用する

ロックライブラリーは、user_metadataの定義、追加、読み取り、更新に使うことができます。user_metadataプロパティは、他のユーザープロファイルのプロパティと同じ方法で読み取ります。たとえば、以下のコードのスニペットでは、user_metadata.hobbyに関連付けられた値が取得され、ページにある要素に割り当てられます。

// Use the accessToken acquired upon authentication to call getUserInfo
lock.getUserInfo(accessToken, function(error, profile) {
  if (!error) {
    document.getElementById('hobby').textContent = profile.user_metadata.hobby;
  }
});

Was this helpful?

/

ユーザーのサインアップフォームにカスタムフィールドを追加するには、additionalSignUpFieldsを使用します。ユーザーがカスタムフィールドにデータを追加すると、Auth0は入力された値をユーザーのuser_metadataに保管します。サインアップ時のuser_metadataの追加については、「追加のサインアップフィールド」を参照してください。

カスタムデータベース接続とメタデータ

カスタムデータベース接続がある場合には、Authentication APIの/dbconnections/signupエンドポイントを使って、ユーザーにuser_metadataを設定することができます。カスタムサインアッププロセスでのメタデータの扱いについては、「カスタムサインアップ」をお読みください。

user_metadataフィールドをAuthentication APIの/dbconnections/signupエンドポイントを使って設定する際には、最大10の文字列フィールド、最大500文字までに制限されます。

カスタムメールとメタデータ

メタデータを使用して、Auth0メールのカスタマイズに使いたい情報を保管します。たとえば、ユーザーがフィールドの値を変更できるようにするには、user_metadata.langを使って、メールの言語をカスタマイズする情報を使用します。詳細については、「メールテンプレートをカスタマイズする」をお読みください。

ロックで問題が発生した場合には、「非推奨エラー」を確認してください。Management APIで問題が発生した場合には、「API呼び出しをチェックする

もっと詳しく