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

# Auth0 ユーザープロファイル属性スキーマ

> バリデーション要件や検索、アップサートなどの機能でのサポート状況を含む、Auth0 ユーザープロファイル属性のリファレンスです。

Auth0 の正規化されたユーザープロファイルは、以下の属性で構成されています。各属性について、[検索](/docs/ja-jp/manage-users/user-search)、[更新](https://auth0.com/docs/api/management/guides/users/update-root-attributes-users)、[インポート](/docs/ja-jp/manage-users/user-migration/bulk-user-imports)、[アップサート](/docs/ja-jp/manage-users/user-migration/bulk-user-imports#request-bulk-import)、[エクスポート](/docs/ja-jp/manage-users/user-migration/bulk-user-exports)でサポートされているかどうかを示します。

<div id="user-profile-attributes">
  ## ユーザープロファイル属性
</div>

Auth0データベース接続では、ユーザープロファイルに保存する際、すべての文字が小文字に変換されます。Auth0 user storeを使用しない場合 (たとえば、インポートモードがオフのカスタムデータベース接続やその他の接続タイプ) には、メールアドレスは元のまま保持され、小文字に変換されません。

<ResponseField name="app_metadata" type="object" post={["search", "update", "import", "upsert", "export"]}>
  サポートプラン、セキュリティロール (Authorization Core feature setを使用していない場合) 、アクセス制御グループなど、ユーザーのアクセスに影響する情報を保存するカスタムフィールドです。詳細については、[メタデータの概要](/docs/ja-jp/manage-users/user-accounts/metadata)を参照してください。
</ResponseField>

<ResponseField name="blocked" type="boolean" post={["search", "update", "import", "export"]}>
  ユーザーがブロックされているかどうかを示します。インポートを使用すると、サブスクライバーはAuth0への移行時にユーザーのブロック状態を維持できます。
</ResponseField>

<ResponseField name="blocked_for" type="object[]" post={[]}>
  ブルートフォース攻撃の疑いでブロックされたIPアドレスです。
</ResponseField>

<ResponseField name="created_at" type="date time" post={["search", "export"]}>
  ユーザープロファイルが最初に作成された日時を示すタイムスタンプです。
</ResponseField>

<ResponseField name="email" type="string" post={["search", "update", "import", "export"]}>
  (一意) ユーザーのメールアドレスです。

  ローカル部の最大長は64文字です。メールアドレス全体 (ローカル部、`@`、ドメインを含む) は254文字を超えることはできません。この値は[JSONバリデーションスキーマ](https://json-schema.org/understanding-json-schema/reference/type#email-addresses)によって検証されます。
</ResponseField>

<ResponseField name="email_verified" type="boolean" post={["search", "update", "import", "upsert", "export"]}>
  ユーザーがメールアドレスを確認済みかどうかを示します。
</ResponseField>

<ResponseField name="family_name" type="string" post={["search", "update", "import", "upsert", "export"]}>
  ユーザーの姓です。

  長さは1～150文字で、任意のUTF-8文字を使用できます。
</ResponseField>

<ResponseField name="given_name" type="string" post={["search", "update", "import", "upsert", "export"]}>
  ユーザーの名です。

  長さは1～150文字で、任意のUTF-8文字を使用できます。
</ResponseField>

<ResponseField name="guardian_authenticators" type="object[]" post={[]}>
  SMSやリカバリーコードを含む、ユーザーが設定したGuardianのバックアップ認証方法に関する詳細情報です。
</ResponseField>

<ResponseField name="identities" type="object[]" post={["search", "export"]}>
  ユーザーが最初に認証を行ったアイデンティティプロバイダーから取得した情報が含まれます。ユーザーは[プロファイルを複数のアイデンティティプロバイダーにリンクする](/docs/ja-jp/manage-users/user-accounts/user-account-linking)こともできます。その場合、それらのアイデンティティもこの配列に表示されます。各アイデンティティプロバイダーオブジェクトの内容はプロバイダーによって異なりますが、通常は次の項目が含まれます。

  * `connection` (テキスト) ：ユーザーの認証に使用されたAuth0接続の名前。
  * `isSocial` (ブール値) ：接続がソーシャル接続かどうか。
  * `provider` (テキスト) ：Facebook、Google、SAML、または独自のプロバイダーなど、ユーザーを認証するエンティティの名前。
  * `user_id` (テキスト) ：この接続／プロバイダーにおけるユーザーの一意の識別子。
  * `profileData` (オブジェクト) ：接続に関連付けられたユーザー情報。プロファイルがリンクされている場合は、セカンダリアカウントに関連付けられたユーザー情報が格納されます。

  場合によっては、プロバイダーで使用するAPIアクセストークンも含まれます。
</ResponseField>

<ResponseField name="last_ip" type="string" post={["search", "export"]}>
  ユーザーが最後にログインした際のIPアドレスです。
</ResponseField>

<ResponseField name="last_login" type="date time" post={["search", "export"]}>
  ユーザーが最後にログインした日時を示すタイムスタンプです。ブロックされているユーザーがログインすると、ブロックされたセッションによって`last_login`が更新されます。[Rule](/docs/ja-jp/customize/rules)内で`user<`オブジェクトを使用してこのプロパティを参照する場合、その値はルールをトリガーしたログインに関連付けられます。これは、ルールがログイン後に実行されるためです。
</ResponseField>

<ResponseField name="last_password_reset" type="date time" post={["export"]}>
  ユーザーのパスワードが最後にリセットまたは変更された日時を示すタイムスタンプです。ユーザーの作成時点では、このフィールドは存在しません。このプロパティはデータベース接続でのみ使用できます。
</ResponseField>

<ResponseField name="logins_count" type="integer" post={["search", "export"]}>
  ユーザーのログイン回数。ユーザーがブロックされた状態でログインした場合、そのブロックされたセッションも `logins_count` にカウントされます。
</ResponseField>

<ResponseField name="multifactor" type="string[]" post={["export"]}>
  ユーザーが登録している多要素認証プロバイダーのリスト。
</ResponseField>

<ResponseField name="multifactor_last_modified" type="date time" post={["export"]}>
  ユーザーの多要素認証が最後に更新された日時。
</ResponseField>

<ResponseField name="name" type="string" post={["search", "update", "import", "upsert", "export"]}>
  ユーザーのフルネーム。

  長さは1～150文字で、任意のUTF-8文字を使用できます。
</ResponseField>

<ResponseField name="nickname" type="string" post={["search", "update", "import", "upsert", "export"]}>
  ユーザーのニックネーム。

  長さは1～350文字で、任意のUTF-8文字を使用できます。
</ResponseField>

<ResponseField name="phone_number" type="string" post={["search", "update", "export"]}>
  ユーザーの電話番号。SMS接続を使用するユーザーにのみ有効です。

  電話番号はE.164形式である必要があり、正規表現 `^\+[0-9]{1,15}$` によって検証されます。
</ResponseField>

<ResponseField name="phone_verified" type="boolean" post={["search", "update", "export"]}>
  ユーザーの電話番号が検証済みかどうかを示します。SMS接続を使用するユーザーにのみ有効です。
</ResponseField>

<ResponseField name="picture" type="string" post={["update", "import", "upsert", "export"]}>
  [ユーザーのプロフィール画像](/docs/ja-jp/manage-users/user-accounts/change-user-picture)を指すURL。
</ResponseField>

<ResponseField name="tenant" type="string" post={[]}>
  使用中のテナント名。
</ResponseField>

<ResponseField name="updated_at" type="date time" post={["search", "export"]}>
  ユーザーのプロファイルが最後に更新または変更された日時を示すタイムスタンプ。`last_login` の変更も更新と見なされるため、ほとんどの場合、`updated_at` は `last_login` と一致します。
</ResponseField>

<ResponseField name="user_id" type="string" post={["search", "import", "export"]}>
  (一意) ユーザーの識別子。インポートを使用すると、マッピングテーブルを使用せずに複数のシステム間でユーザーレコードを同期できます。
</ResponseField>

<ResponseField name="user_metadata" type="object" post={["search", "update", "import", "upsert", "export"]}>
  勤務先住所、自宅住所、ユーザー設定など、ユーザーがアクセスできる内容に影響しない情報を保存するカスタムフィールド。詳細については、[メタデータの概要](/docs/ja-jp/manage-users/user-accounts/metadata)を参照してください。
</ResponseField>

<ResponseField name="username" type="string" post={["search", "update", "import", "export"]}>
  (一意) ユーザーのユーザー名。

  ユーザー名のデフォルトの許容長は1～15文字で、最大128文字まで指定できます。ユーザー名フィールドでは、アクセント記号のない英数字 (自動的に小文字に変換されます) と、次の特殊文字を使用できます。

  * アットマーク、`@` (メールアドレスは使用できません)
  * バッククォート、<code>\`</code>
  * キャレット、`^`
  * ドル記号、`$`
  * 感嘆符、`!`
  * ハイフン、`-`
  * 番号記号、`#`
  * ピリオド、`.`
  * プラス記号、`+`
  * シングルクォート、`'`
  * チルダ、`~`
  * アンダースコア、`_`

  これ以外の文字や記号は使用できません。また、Auth0はカスタムデータベースの入力を検証またはサニタイズしません。
</ResponseField>

<div id="password-validation">
  ## パスワードのバリデーション
</div>

Auth0 では、パスワードに対して所定のバリデーションスキーマを受け付けます。

* `password`: 設定可能な最小パスワード長は 1 バイト、最大は 72 バイトです。パスワードでは、33～126 の範囲の ASCII 文字を使用できます。

* `password_hash` (text): ユーザーの接続に対するハッシュ化済みパスワードです。ユーザー作成時、[Auth0 は bcrypt を使用して](https://auth0.com/blog/hashing-in-action-understanding-bcrypt/)パスワードを保護します。互換性のあるハッシュ化済みパスワードをインポートすると、ユーザーは既存のパスワードを維持でき、よりスムーズな体験を提供できます。互換性のあるパスワードは、bcrypt `{"$2a$"}` または `{"$2b$"}` を使用してハッシュ化し、`saltRounds` を 10 にする必要があります。このフィールドを指定できるのはユーザーの初回インポート時のみで、後から更新することはできません。

* `custom_password_hash` (object): 別のアルゴリズムで作成された、ユーザーの接続に対するハッシュ化済みパスワードです。`password_hash` フィールドの代わりに使用します。一括インポート処理中は、ユーザーが最初にインポートされた `custom_password_hash` を使ってログインしていない場合に限り、`custom_password_hash` を更新できます。

<div id="user-profile-examples">
  ## ユーザープロファイルの例
</div>

<AccordionGroup>
  <Accordion title="Googleのユーザープロファイルの例">
    以下は、Google経由でログインしたユーザーのユーザープロファイルのサンプルです。

    ```json theme={null}
    {
      "email": "johnfoo@gmail.com",
      "email_verified": true,
      "family_name": "Foo",
      "gender": "male",
      "given_name": "John",
      "identities": [
        {
          "provider": "google-oauth2",
          "user_id": "103547991597142817347",
          "connection": "google-oauth2",
          "isSocial": true
        }
      ],
      "locale": "en",
      "name": "John Foo",
      "nickname": "FooJon",
      "picture": "https://lh4.googleusercontent.com/-OdsbOXom9qE/AAAAAAAAAAI/AAAAAAAAADU/_j8SzYTOJ4I/photo.jpg",
      "user_id": "google-oauth2|103547991597142817347"
    }
    ```
  </Accordion>

  <Accordion title="Microsoftアカウントのユーザープロファイルの例">
    以下は、Microsoftアカウントのプロファイルのサンプルです。

    ```json lines theme={null}
    {
      "email": "bobdoe@outlook.com",
      "email_verified": true,
      "emails": [
        "bobdoe@outlook.com",
        "bobdoe@outlook.com"
      ],
      "family_name": "Doe",
      "given_name": "Bob",
      "identities": [
        {
          "provider": "windowslive",
          "user_id": "4cf0a30169d55031",
          "connection": "windowslive",
          "isSocial": true
        }
      ],
      "locale": "en_US",
      "name": "Bob Doe",
      "nickname": "doebob@outlook.com",
      "picture": "https://secure.gravatar.com/avatar/c89b2bb92df91508e14172097a5e17da?s=480&r=pg&d=https%3A%2F%2Fssl.gstatic.com%2Fs2%2Fprofiles%2Fimages%2Fsilhouette80.png",
      "user_id": "windowslive|4cf0a30169d55031"
    }
    ```
  </Accordion>

  <Accordion title="Office 365のユーザープロファイルの例">
    以下は、Office 365 (Microsoft Azure Active Directory) のプロファイルのサンプルです。

    ```json theme={null}
    {
      "email": "jeff@foo.onmicrosoft.com",
      "family_name": "Jeff",
      "given_name": "Beth",
      "identities": [
        {
          "user_id": "10030000838D23AF@MicrosoftOnline.com",
          "provider": "office365",
          "connection": "foo-onmicrosoft",
          "isSocial": false
        }
      ],
      "name": "Jeff Beth",
      "nickname": "jeff@auth0.onmicrosoft.com",
      "picture": "https://secure.gravatar.com/avatar/a7f86ddd090d5a4cb833b97baab2aca1?s=480&r=pg&d=https%3A%2F%2Fssl.gstatic.com%2Fs2%2Fprofiles%2Fimages%2Fsilhouette80.png",
      "tenantid": "75696069-df44-4310-9bcf-08b45e3007c9",
      "upn": "jeff@foo.onmicrosoft.com",
      "user_id": "office365|10030000838D23AF@MicrosoftOnline.com"
    }
    ```
  </Accordion>

  <Accordion title="ADFSのユーザープロファイルの例">
    以下は、ADFS (Active Directoryフェデレーションサービス) のプロファイルのサンプルです。

    ```json theme={null}
    {
      "email": "john@fabrikam.com",
      "family_name": "Fabrikam",
      "email_verified": false,
      "given_name": "John",
      "identities": [
        {
          "user_id": "john@fabrikam.com",
          "provider": "adfs",
          "connection": "auth10.com",
          "isSocial": false
        }
      ],
      "issuer": "https://adfs.fabrikam.com",
      "name": "John Fabrikam",
      "nickname": "john",
      "picture": "https://secure.gravatar.com/avatar/5426f6b9d63ad92d60e6fe9fdf83aa21?s=480&r=pg&d=https%3A%2F%2Fssl.gstatic.com%2Fs2%2Fprofiles%2Fimages%2Fsilhouette80.png",
      "user_id": "adfs|john@fabrikam.com"
    }
    ```
  </Accordion>
</AccordionGroup>
