- アプリケーション特定のデータをユーザープロファイルに保管する
- ユーザーに対して特定の操作が発生したかを記録する
- ユーザープロファイルに関する負荷の大きい処理の結果をキャッシュして、将来のログインで再利用する
- 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、、、ロックライブラリーを使うことができます。 カスタムソーシャル接続のカスタムDBスクリプトとfetchUserProfile
スクリプトでは、メタデータの作成と更新にmetadata
オブジェクトを使うことができます。
アクションを使用する
アクションは安全でテナント固有のバージョン管理された関数で、Node.jsで記述され、Auth0プラットフォームにある特定の拠点で実行されます。アクションは、カスタムロジックでAuth0の機能をカスタマイズおよび拡張するために使用されます。ユーザープロファイルを強化するために使うこともできます。 たとえば、カスタムクレームを使用するpost-login
アクションを作成して、user_metadata
プロパティーをIDトークンにコピーするのに使うことができます。その際に、ユーザーのuser_metadata
はAuthentication APIのユーザー情報取得エンドポイントを介して取得されます。
詳細については、「ログイン後のアクショントリガーでユーザーメタデータを管理する」をお読みください。
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 |
Dashboardを使用する
Auth0 Dashboardを使用すると、キーと値のペアを含むアプリケーションメタデータを構成することができます。詳細については、「アプリケーションメタデータを構成する」をお読みください。ロックライブラリーを使用する
ロックライブラリーは、user_metadata
の定義、追加、読み取り、更新に使うことができます。user_metadata
プロパティは、他のユーザープロファイルのプロパティと同じ方法で読み取ります。たとえば、以下のコードのスニペットでは、user_metadata.hobby
に関連付けられた値が取得され、ページにある要素に割り当てられます。
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呼び出しをチェックする」を参照してください。