- アプリケーション特定のデータをユーザープロファイルに保管する
- ユーザーに対して特定の操作が発生したかを記録する
- ユーザープロファイルに関する負荷の大きい処理の結果をキャッシュして、将来のログインで再利用する
- 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呼び出しをチェックする」を参照してください。