メインコンテンツへスキップ
Auth0 では、Auth0 のユーザープロファイルにメタデータを保存するための包括的な仕組みが提供されています。メタデータを使用すると、次のことができます。
  • ユーザープロファイルにアプリケーション固有のデータを保存する。
  • ユーザーに対して特定の操作が実行されたかどうかを記録する。
  • 負荷の高い処理の結果をユーザープロファイルにキャッシュし、今後のログインで再利用できるようにする。
  • に由来しない情報や、IDプロバイダーから提供される情報を上書きする情報を保存する。
メタデータは、ユーザーのログインフローの一部として変更できます。 接続の同期を設定すると、ユーザーのルート属性が IDプロバイダーによって更新されるのは、ユーザープロファイルの作成時のみになります。その後、ルート属性は個別に編集することも、一括インポートで編集することもできます。詳細については、ユーザープロファイル更新のための IDプロバイダー接続の構成を参照してください。

メタデータの種類

Auth0 では、特定の種類の情報を保存するために 3 種類のメタデータを使用します。
メタデータの種類フィールド名説明
ユーザー情報user_metadataユーザーの中核的な機能に影響しない、設定などのユーザー属性を保存します。このデータは、Management API を使用してフォームを作成した場合、ログイン済みのユーザーが編集できます。そのため、安全なデータ ストアとして使用するべきではありません
アクセス情報app_metadata権限、Auth0 のプラン、外部 ID など、ユーザーの機能へのアクセスに影響する可能性がある情報を保存します。このデータはユーザーが編集できません。また、このフィールドに保存できる内容には制限があります。
アプリケーション情報Client オブジェクトの client_metadata、Rules の context.clientMetadata、およびログイン後の Actions の event.client.metadataアプリケーション (OIDC OAuth2 の用語では client) に関する情報を保存します。たとえば、アプリケーションのホームページ URL などです (Auth0 がアプリケーション設定で設定しない任意の値) 。

メタデータの管理

Rules、Authentication API、、および Lock ライブラリを使用して、メタデータを作成および更新できます。 カスタム DB スクリプトおよびカスタムソーシャル接続の fetchUserProfile スクリプトでは、metadata オブジェクトを使用してメタデータを作成および更新できます。

Actions を使用する

Actions は、Auth0 プラットフォーム上の特定のタイミングで実行される、セキュアでテナント固有のバージョン管理された Node.js 関数です。Actions は、カスタムロジックで Auth0 の機能をカスタマイズおよび拡張するために使用されます。また、ユーザープロファイルを拡張するためにも使用できます。 たとえば、カスタムクレームを使用して user_metadata のプロパティを にコピーする post-login Action を作成できます。続いて、Authentication API の Get User Info エンドポイントから、ユーザーの user_metadata を取得できます。 詳しくは、post-login Action Trigger でユーザーメタデータを管理するを参照してください。

Management API を使用する

ユーザーは、適切なスコープを持つをリクエストし、次の Management API エンドポイントを使用して user_metadata の表示、作成、更新、または 設定の削除を行えます。
タスクエンドポイントスコープ
表示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 を呼び出すにはアクセストークンが必要です。詳しくは、Access Tokens for the Management API および Get Management API Tokens for SPAs を参照してください。

Dashboard を使用する

キーと値のペアで構成されるアプリケーションメタデータを設定するには、Auth0 Dashboard を使用します。詳細については、アプリケーションメタデータを設定する を参照してください。

Lock ライブラリを使用する

Lock ライブラリを使用すると、user_metadata. の定義、追加、読み取り、更新を行えます。user_metadata プロパティは、他のユーザープロファイルのプロパティと同じ方法で読み取ります。たとえば、次のコードスニペットは user_metadata.hobby に関連付けられた値を取得し、ページ上の要素に割り当てます。
// 認証時に取得したaccessTokenを使ってgetUserInfoを呼び出す
lock.getUserInfo(accessToken, function(error, profile) {
  if (!error) {
    document.getElementById('hobby').textContent = profile.user_metadata.hobby;
  }
});
additionalSignUpFields を使用すると、ユーザーのサインアップフォームにカスタムフィールドを追加できます。ユーザーがカスタムフィールドに値を入力すると、Auth0 はその値をそのユーザーの user_metadata に保存します。サインアップ時に user_metadata を追加する方法について詳しくは、Additional Signup Fields を参照してください。

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

カスタムデータベース接続 がある場合は、Authentication API の /dbconnections/signup エンドポイントを使用して、ユーザーの user_metadata を設定できます。カスタムサインアッププロセスでメタデータを扱う方法について詳しくは、Custom Signup を参照してください。 Authentication API の /dbconnections/signup エンドポイントを使用して user_metadata フィールドを設定する場合、使用できるのは最大 10 個の文字列フィールド、合計 500 文字までです。

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

Auth0 のメールをカスタマイズするために使用する情報は、メタデータに保存します。たとえば、ユーザーがフィールドの値を変更できるようにする場合は user_metadata.lang を使用し、その情報を使ってメールの言語をカスタマイズします。詳しくは、メールテンプレートをカスタマイズする を参照してください。 Lock で問題が発生している場合は、非推奨エラー を確認してください。Management API で問題が発生している場合は、API 呼び出しを確認する を確認してください。

参考情報