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

# メタデータの制限とベストプラクティス

> メタデータのフィールド名の要件、サポートされているデータ型、その他の関連する制限とベストプラクティスについて説明します。

<h2 id="limits">
  制限事項
</h2>

<h3 id="metadata-field-limits">
  メタデータフィールドの制限
</h3>

* メタデータフィールドでサポートされるのは、[JSON 互換のデータ型](https://datatracker.ietf.org/doc/html/rfc7159) (文字列、数値、配列、オブジェクトなど) のみです。

* フィールド名に `.` (ドット) や `$` (ドル記号) を含めることはできません。

  <Columns cols={2}>
    ```json Disallowed theme={null}
    {
      "preference.color": "pink"
    }
    ```

    ```json Allowed theme={null}
    {
        "preference": { 
            "color": "pink" 
        }
    }
    ```
  </Columns>

* `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`

* Auth0 Authentication API の[Signup エンドポイント](https://auth0.com/docs/api/authentication?javascript#signup)を使用して `user_metadata` フィールドを設定する場合、各値が 500 文字以下の文字列フィールドを最大 10 個まで含めることができます。カスタムのサインアッププロセスでメタデータを扱う例については、[Custom Signup](/docs/ja-jp/libraries/custom-signup)を参照してください。

<h3 id="user-profile-size-limits">
  ユーザープロファイルのサイズ制限
</h3>

* Auth0 ユーザープロファイルのサイズ上限は 10 KB です。現在は、このサイズ上限を超えるプロファイルへの書き込みも成功しますが、今後失敗する可能性があります。テナントログではサイズ超過のプロファイルにフラグが付けられるため、エラーを回避するためにユーザープロファイルをサイズ上限内に収めることを強くお勧めします。

* サイズ制限導入前から存在するサイズ超過のユーザープロファイルについては、Management API の List または Search Users エンドポイントを使用してインデックス化、クエリ、および返却できるユーザーデータに、ユーザーごとに 1 MB の上限があります。大きなユーザープロファイルのすべてのユーザー属性を取得するには、[ID またはメールでユーザーを取得](/docs/ja-jp/manage-users/user-search/get-users-by-id-or-email)します。

<h2 id="best-practices">
  ベストプラクティス
</h2>

<h3 id="sensitive-information">
  機密情報
</h3>

Auth0 のメタデータは安全なデータストアではないため、高リスクのシークレットや、社会保障番号やクレジットカード番号のような個人を特定できる情報 (PII) などの機密情報の保存には使用しないでください。Auth0 のお客様には、メタデータに保存するデータを十分に評価し、アイデンティティおよびアクセス管理の目的に必要なものだけを保存することを強く推奨します。

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

フィールド名は固定にするべきです。動的なフィールド名はインデックス効率を下げ、検索クエリの性能低下を招きます。スキーマは固定されているほうが、検索や操作、扱いがしやすくなります。

<Columns cols={2}>
  ```json 避けるべき例 theme={null}
  {
      "participants": [
          "Alice": {
              "role": "sender"
           },
          "Bob": {
              "role": "receiver"
          }
      ]
  }
  ```

  ```json 推奨される例 theme={null}
  {
      "participants": [
          {
              "name": "Alice",
              "role": "sender"
          },
          {
              "name" : "Bob",
              "role": "receiver"
          }
      ]
  }
  ```
</Columns>

<h3 id="name-collision">
  名前の競合
</h3>

`app_metadata` フィールドとルートプロファイルフィールドに同じ名前を使用しないでください。`app_metadata` フィールドは、ルールと Actions の両方でルートプロファイルにマージされるため、ルートプロファイルフィールドを上書きしてしまう可能性があります。

たとえば、ユーザーのルートプロファイルに `groups` フィールド (<Tooltip tip="Security Assertion Markup Language (SAML): パスワードなしで 2 つの当事者が認証情報を交換できるようにする標準化されたプロトコル。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=SAML">SAML</Tooltip> <Tooltip tip="Identity Provider (IdP): デジタルアイデンティティを保存および管理するサービス。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=identity+provider">アイデンティティプロバイダー</Tooltip> から返されるもの) があり、`app_metadata` 内にも `groups` フィールドがある場合、プロファイルは次のようになります。

```json 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/customize/rules/user-object-in-rules) の `groups` フィールドを参照すると、`["internal-group-1", "internal-group-2"]` が返されます。

<h3 id="consistent-data-types">
  データ型の統一
</h3>

データ型はユーザー間で統一してください。たとえば、あるユーザーでは値を文字列として保存し (`user.user_metadata.age = "23"`)、別のユーザーでは数値として保存している場合 (`user.user_metadata.age = 23`)、データの取得時に問題が発生する可能性があります。

<h3 id="data-storage">
  データの保存
</h3>

メタデータには、ユーザー認証に関するデータのみを保存するようにしてください。Auth0 の保存機能と検索機能は、大量の検索や頻繁な更新を必要としないユースケース向けに設計されています。

ユーザーに関する詳細なプロファイルデータを保持する必要がある場合は、外部システムで管理してください。そのシステム上のユーザー識別子を、Auth0 のメタデータフィールドとして保存できます。
