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

# メタデータのフィールド名とデータ型

> ユーザーメタデータ、アプリメタデータ、およびアプリケーション（クライアント）メタデータのフィールド名、データ型、ならびに制限と制約について説明します。

Auth0は、特定の種類の情報を保管するために使用されるメタデータを3種類に区別しています。

<Warning>
  Auth0のメタデータはセキュリティ保護されたデータストアではないため、機密情報の保管に使用されるべきではありません。これには社会保障番号やクレジットカード番号など、高リスクの個人情報が含まれます。Auth0の顧客はメタデータに保管されているデータを評価して、IDとアクセスの管理に必要なものだけを保管することを強くお勧めします。
</Warning>

<table class="table">
  <thead>
    <tr>
      <th><strong>メタデータタイプ</strong></th>
      <th><strong>フィールド名</strong></th>
      <th><strong>説明</strong></th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td><strong>User Information（ユーザー情報）</strong></td>
      <td>`user_metadata`</td>
      <td>ユーザーの主要な機能性に影響しない設定などのユーザー属性を保管します。このデータは、Management APIを使ってフォームを作成すると、ログイン済みのユーザーが編集<strong>できる</strong>ため、安全なデータ保管場所としては使用<strong>できません</strong>。</td>
    </tr>

    <tr>
      <td><strong>Access Information（アクセス情報）</strong></td>
      <td>`app_metadata`</td>
      <td>権限、Auth0プラン、外部IDなど、ユーザーの機能へのアクセスに影響する情報を保管します。このデータはユーザーが編集<strong>できない</strong>ため、このフィールドに保管できる情報には制約があります。</td>
    </tr>

    <tr>
      <td><strong>Application Information（アプリケーション情報）</strong></td>
      <td>`Client`オブジェクトの`client_metadata`、ルールの`context.clientMetadata`、ログイン後アクションの`event.client.metadata`。</td>
      <td>アプリケーション（OIDC OAuth2の用語では<em>クライアント</em>）に関する情報を保管します。たとえば、アプリケーションのホームページのURL（Auth0がアプリケーション設定で指定しない任意の値）です。</td>
    </tr>
  </tbody>
</table>

<div id="metadata-field-names">
  ## メタデータフィールド名
</div>

<div id="accepted-characters">
  ### 使用できる文字
</div>

フィールド名に`.`（ドット）または`$`（ドル記号）の文字を含めてはいけません。

たとえば、以下は許可されません。

```json lines theme={null}
{
  "preference.color": "pink"
}
```

しかし、以下のように拡張することはできます。

```json lines theme={null}
{
    "preference": { 
        "color": "pink" 
    }
}
```

<div id="dynamic-field-names">
  ### 動的フィールド名
</div>

フィールド名は静的である必要があります。動的フィールド名は、インデックス作成の効率を低下させ、検索クエリのパフォーマンスを劣化させます。静的スキーマは、検索、操作、作業が容易です。

以下のようにするのではなく、

```json lines theme={null}
{
    "participants": [
        "Alice": {
            "role": "sender"
         },
        "Bob": {
            "role": "receiver"
        }
    ]
}
```

このようにします。

```json lines theme={null}
{
    "participants": [
        {
            "name": "Alice",
            "role": "sender"
        },
        {
            "name" : "Bob",
            "role": "receiver"
        }
    ]
}
```

<div id="name-collision">
  ### 名前の衝突
</div>

`app_metadata`フィールドとルートプロファイルフィールドに同一の名前を使用することは避けてください。`app_metadata`フィールドは、ルールとアクションの両方でルートプロファイルにマージされるため、ルートプロファイルフィールドが上書きされる可能性があります。

たとえば、ユーザーのルートプロファイルに（<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-1" href="/docs/ja-JP/ja-jp/glossary?term=security-assertion-markup-language" tip="Security Assertion Markup Language（SAML）: パスワードなしに二者間で認証情報を交換できる標準化プロトコル。" cta="用語集の表示">SAML</Tooltip> IDプロバイダーから返される）`groups`フィールドがあり、`app_metadata`内にも`groups`フィールドがある場合、ユーザーのプロファイルは次のようになる可能性があります。

```json lines theme={null}
{
    "user_id": "samlp|example-samlp-connection|username@domain.com",
    "groups": [
        "external-group-1",
        "external-group-2"
    ],
    "app_metadata": {
        "groups": [
            "internal-group-1",
            "internal-group-2"
        ]
    }
}
```

[ルール](/docs/ja-JP/ja-jp/manage-users/user-accounts/metadata/manage-metadata-rules)から[ユーザーオブジェクト](/docs/ja-JP/ja-jp/customize/rules/user-object-in-rules)上で`groups`フィールドを読み込む際、以下を返します：`["internal-group-1", "internal-group-2"]`

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

メタデータフィールドはすべての[JSON互換データ型](https://datatracker.ietf.org/doc/html/rfc7159)をサポートします。

* 文字列
* 数値
* 配列
* オブジェクト

ユーザー間でデータ型を一貫して維持するようにしてください。たとえば、あるユーザー値を文字列として保管する（`user.user_metadata.age = "23"`）すると同時に、別のユーザー値を数値として保存する（`user.user_metadata.age = 23`）と、データを取得する際に問題が発生する可能性があります。

<div id="limitations-and-restrictions">
  ## 制限と制約
</div>

<div id="rate-limits">
  ### レート制限
</div>

ログイン時に[ルール](/docs/ja-JP/ja-jp/manage-users/user-accounts/metadata/manage-metadata-rules)または[アクション](/docs/ja-JP/ja-jp/manage-users/user-accounts/metadata/manage-user-metadata)を使用してメタデータを更新すると、テナントのレート制限が適用されます。詳細については、「[Management APIエンドポイントレート制限](/docs/ja-JP/ja-jp/troubleshoot/customer-support/operational-policies/rate-limit-policy/management-api-endpoint-rate-limits)」をお読みください。

<Warning>
  メタデータにはユーザー認証に関連するデータだけを保管します。Auth0のストレージ・検索機能は、検索・更新の頻度があまり高くないユースケースを想定して設計されています。

  ユーザーのプロファイル関連の詳細なデータを維持したい場合は、外部システムで行ってください。そのシステムで生成されるユーザーの識別子を、Auth0にメタデータフィールドとして保存できます。
</Warning>

<div id="size-limits-and-storage">
  ### サイズ制限とストレージ
</div>

* [ユーザー検索エンドポイント](https://auth0.com/docs/api/management/v2/users/get-users)でインデックス作成、クエリ、返却できるユーザーデータには1ユーザーあたり1MBの制限があります。ユーザープロファイルが1MBより大きい場合、`app_metadata`および`user_metadata`内で256文字より多いすべての属性値は、検索できず、検索結果に返されません。ユーザープロファイルがこれらの大きな値を省いてもなお1MBを超える場合、そのユーザーの`app_metadata`および`user_metadata`属性は検索不可または返却不可となります。Auth0は、ユーザープロファイルが省略後もなお1MBを超える場合を`wum`[イベントコード](/docs/ja-JP/ja-jp/deploy-monitor/logs/log-event-type-codes)の下でキャプチャし、ログに記録します。オーバーサイズのユーザープロファイルについては、すべてのメタデータ属性を取得するために、[ユーザー取得エンドポイント](https://auth0.com/docs/api/management/v2/users/get-users-by-id)を使用する必要があります。
* `user_metadata`フィールドをAuthentication APIの[サインアップエンドポイント](/docs/ja-JP/ja-jp/api/authentication?javascript#signup)を使って設定する際には、それぞれの値が500文字を超えない文字列フィールドを最大10個含めることができます。カスタムサインアッププロセスでのメタデータの扱いの例については、「[カスタムサインアップ](/docs/ja-JP/ja-jp/libraries/custom-signup)」をお読みください。
* `client_metadata`フィールドには最大10個のキーを含めることができます。そのキーと値のそれぞれの最大長は255文字で、UTF-8の特殊文字を含むことはできません。

<div id="restrictions">
  ### 制限
</div>

`app_metadata`フィールドには、以下のいずれのプロパティも含めてはいけません。

* `__tenant`
* `_id`
* `blocked`
* `clientID`
* `created_at`
* `email_verified`
* `email`
* `globalClientID`
* `global_client_id`
* `identities`
* `lastIP`
* `lastLogin`
* `loginsCount`
* `metadata`
* `multifactor_last_modified`
* `multifactor`
* `updated_at`
* `user_id`

<div id="learn-more">
  ## もっと詳しく
</div>

* [ルールを使用してメタデータを管理](/docs/ja-JP/ja-jp/manage-users/user-accounts/metadata/manage-metadata-rules)
* [Management APIを使ってメタデータを管理する](/docs/ja-JP/ja-jp/manage-users/user-accounts/metadata/manage-metadata-api)
* [アプリケーションメタデータを構成する](/docs/ja-JP/ja-jp/get-started/applications/configure-application-metadata)
* [ユーザーデータの保存](/docs/ja-JP/ja-jp/secure/security-guidance/data-security/user-data-storage)
