> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Auth0 のユーザー、アプリケーション、クライアントのメタデータについて説明します。メタデータを使用して、アイデンティティプロバイダーに由来しない情報を保存する方法を学びます。

# ユーザープロファイルにおけるメタデータの仕組みを理解する

Auth0 には、Auth0 ユーザープロファイルにメタデータを保存するための包括的な仕組みがあります。メタデータを使用すると、次のことができます。

* ユーザープロファイルにアプリケーション固有のデータを保存する。
* 特定の操作がユーザーに対して実行されたかどうかを記録する。
* 負荷の高い処理の結果をユーザープロファイルにキャッシュし、今後のログインで再利用できるようにする。
* <Tooltip tip="アイデンティティプロバイダー（IdP）: デジタルアイデンティティを保存および管理するサービス。" cta="用語集を表示" href="/docs/ja-jp/glossary?term=identity+provider">アイデンティティプロバイダー</Tooltip> に由来しない情報や、アイデンティティプロバイダーが提供する情報を上書きする情報を保存する。

メタデータは、ユーザーのログインフローの一部として変更できます。

接続の同期を設定すると、ユーザーのルート属性がアイデンティティプロバイダーによって更新されるのを、ユーザープロファイルの作成時のみに制限できます。その後、ルート属性は個別に、または一括インポートによって編集できます。詳しくは、[ユーザープロファイル更新のための Identity Provider 接続の設定](/docs/ja-jp/manage-users/user-accounts/user-profiles/configure-connection-sync-with-auth0) をご覧ください。

<div id="metadata-types">
  ## メタデータの種類
</div>

Auth0 では、特定の種類の情報を保存するために 3 種類のメタデータを使用します。

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

<div id="manage-metadata">
  ## メタデータを管理
</div>

ルール、Authentication API、<Tooltip tip="Management API: 顧客が管理タスクを実行できるようにする製品。" cta="用語集を表示" href="/docs/ja-jp/glossary?term=Management+API">Management API</Tooltip>、<Tooltip tip="Auth0 Dashboard: サービスを設定するための Auth0 の主要製品。" cta="用語集を表示" href="/docs/ja-jp/glossary?term=Auth0+Dashboard">Auth0 Dashboard</Tooltip>、および Lock ライブラリを使用して、メタデータを作成および更新できます。

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

<div id="use-actions">
  ### Actions を使用する
</div>

[Actions](/docs/ja-jp/customize/actions) は、Auth0 プラットフォーム内の特定のタイミングで実行される、セキュアでテナントごとに分離されたバージョン管理済みの Node.js 関数です。Actions を使うと、カスタムロジックで Auth0 の機能をカスタマイズおよび拡張できます。また、[ユーザープロファイルを拡張する](/docs/ja-jp/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger)こともできます。

たとえば、カスタムクレームを使って `user_metadata` のプロパティを <Tooltip tip="ID Token: リソースへのアクセス用ではなく、クライアント自体を対象としたクレデンシャル。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=ID+tokens">ID トークン</Tooltip> にコピーする `post-login` Action を作成できます。これにより、Authentication API の [Get User Info](https://auth0.com/docs/api/authentication#get-user-info) エンドポイントを通じて、ユーザーの `user_metadata` を取得できるようになります。

詳しくは、[post-login Action トリガーでユーザーメタデータを管理する](/docs/ja-jp/manage-users/user-accounts/metadata/manage-user-metadata)をご覧ください。

<div id="use-the-management-api">
  ### Management API を使用する
</div>

ユーザーは、適切なスコープを持つ<Tooltip tip="アクセストークン: API にアクセスするために使用される認可資格情報で、不透明文字列または JWT の形式を取ります。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=access+token">アクセストークン</Tooltip>を取得し、次の [Management API](https://auth0.com/docs/api/management/v2) エンドポイントを使用して、`user_metadata` の表示、作成、更新や、<Tooltip tip="Multi-factor authentication (MFA): SMS によるコードなど、ユーザー名とパスワードに加えて認証要素を使用するユーザー認証プロセス。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=MFA">MFA</Tooltip> 設定の削除を行えます。

| タスク | エンドポイント                                                                                                                               | スコープ                           |
| --- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| 表示  | [`GET /api/v2/users/{id}`](https://auth0.com/docs/api/management/v2#!/Users/get_users_by_id)                                          | `read:current_user`            |
| 作成  | [`PATCH /api/v2/users/{id}`](https://auth0.com/docs/api/management/v2#!/Users/post_users)                                             | `create:current_user_metadata` |
| 更新  | [`PATCH /api/v2/users/{id}`](https://auth0.com/docs/api/management/v2#!/Users/patch_users_by_id)                                      | `update:current_user_metadata` |
| 削除  | [`DELETE /api/v2/users/{id}/multifactor/{provider}`](https://auth0.com/docs/api/management/v2#!/Users/delete_multifactor_by_provider) | `update:users`                 |

Auth0 Management API を呼び出すにはアクセストークンが必要です。詳しくは、[Access Tokens for the Management API](https://auth0.com/docs/api/management/v2/tokens) および [Get Management API Tokens for SPAs](https://auth0.com/docs/api/management/v2/get-access-tokens-for-spas) をご覧ください。

<div id="use-the-dashboard">
  ### Auth0 Dashboardを使用する
</div>

キーと値のペアを含むアプリケーション メタデータを設定するには、Auth0 Dashboardを使用します。詳しくは、[アプリケーション メタデータを設定する](/docs/ja-jp/get-started/applications/configure-application-metadata)をご覧ください。

<div id="use-the-lock-library">
  ### Lock ライブラリを使用する
</div>

[Lock](/docs/ja-jp/libraries/lock) ライブラリを使用して、`user_metadata` を定義、追加、読み取り、更新できます。`user_metadata` のプロパティは、他のユーザープロファイルのプロパティと同じ方法で読み取ります。たとえば、次のコードスニペットは `user_metadata.hobby` に関連付けられた値を取得し、その値をページ上の要素に割り当てます。

```javascript lines theme={null}
// 認証時に取得した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](/docs/ja-jp/libraries/lock/lock-configuration#additionalsignupfields) を参照してください。

<div id="custom-database-connections-and-metadata">
  ## カスタムデータベース接続とメタデータ
</div>

[カスタムデータベース接続](/docs/ja-jp/authenticate/database-connections#using-your-own-user-store)を使用している場合は、Authentication API の [`/dbconnections/signup`](https://auth0.com/docs/api/authentication?shell#signup) エンドポイントを使用して、ユーザーの `user_metadata` を設定できます。カスタムのサインアップ処理でメタデータを扱う方法について詳しくは、[Custom Signup](/docs/ja-jp/libraries/custom-signup)をご覧ください。

Authentication API の `/dbconnections/signup` エンドポイントで `user_metadata` フィールドを設定する場合、設定できるのは最大 10 個の文字列フィールド、合計 500 文字までです。

<div id="custom-emails-and-metadata">
  ## カスタムメールとメタデータ
</div>

Auth0 のメールをカスタマイズするために使用する情報は、メタデータに保存できます。たとえば、ユーザー自身がフィールドの値を変更できるようにしたい場合は `user_metadata.lang` を使用し、その情報を基にメールの言語をカスタマイズします。詳しくは、[メールテンプレートをカスタマイズ](/docs/ja-jp/customize/email/email-templates)をご覧ください。

<div id="learn-more">
  ## 詳細情報
</div>

* [メタデータのフィールド名とデータ型](/docs/ja-jp/manage-users/user-accounts/metadata/metadata-fields-data)
* [ルールでメタデータを管理する](/docs/ja-jp/manage-users/user-accounts/metadata/manage-metadata-rules)
* [Management APIでメタデータを管理する](/docs/ja-jp/manage-users/user-accounts/metadata/manage-metadata-api)
* [Lockでメタデータを管理する](/docs/ja-jp/manage-users/user-accounts/metadata/manage-metadata-lock)
* [アプリケーションメタデータを設定する](/docs/ja-jp/get-started/applications/configure-application-metadata)
* [post-login Action トリガーでユーザーメタデータを管理する](/docs/ja-jp/manage-users/user-accounts/metadata/manage-user-metadata)
