ユーザープロファイルでのメタデータの使い方
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 API、Auth0 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呼び出しをチェックする