> ## 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 固有の仕組みです。各 <Tooltip tip="IDプロバイダー (IdP): デジタルアイデンティティを保存・管理するサービス。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Identity+Provider">IDプロバイダー</Tooltip> (IdP) はユーザーについて異なる情報を提供するため、Auth0 はユーザー関連のクレームを保存する際に、共通するプロファイルのプロパティを、プロトコルに依存しないユーザー表現へと正規化します。たとえば、正規化されたユーザープロファイル内の `family_name` には、IdP から `surname` や `last_name` として返される情報が含まれます。

そのため、正規化されたユーザープロファイルに含まれる Auth0 のクレームは、[Authentication API の `oauth/token` エンドポイント](https://auth0.com/docs/api/authentication#get-token) から返される <Tooltip tip="ID トークン: リソースへのアクセスではなく、クライアント自体を対象とした認証情報です。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=ID+Tokens">ID Token</Tooltip> や、[`/userinfo`](https://auth0.com/docs/api/authentication#user-profile) エンドポイントのレスポンスで返される標準のクレームセットとは異なります (これらはいずれも OIDC 仕様 に記載された要件に従っています) 。

正規化されたユーザープロファイルに含まれる属性と、その扱い方については、[User Profile Structure](/docs/ja-jp/manage-users/user-accounts/user-profiles/user-profile-structure) を参照してください。

<div id="normalized-user-profile-schema">
  ## 正規化されたユーザープロファイルスキーマ
</div>

Auth0 が共通スキーマにマッピングする属性を以下に示します。

常に生成されるフィールド:

* `name`: ユーザーのフルネーム。
* `nickname`: デフォルトでは、ユーザーのメールアドレスのローカル部。
* `picture`: [ユーザーのプロフィール画像](/docs/ja-jp/manage-users/user-accounts/change-user-picture)の URL。利用できない場合、Auth0 はユーザーのメールアドレスに関連付けられた Gravatar 画像を使用します。
* `user_id`: ユーザーの一意の識別子。接続ごとに一意ですが、その接続を介して認証するすべてのアプリで同じ値になります。

デフォルトでは、Auth0 以外の <Tooltip tip="アイデンティティプロバイダー（IdP）: デジタルアイデンティティを保存および管理するサービス。" cta="用語集を表示" href="/docs/ja-jp/glossary?term=identity+providers">アイデンティティプロバイダー</Tooltip> (Google、Facebook、X など) から提供されるユーザーの `name`、`nickname`、`picture` 属性は、ユーザーがログインするたびにアイデンティティプロバイダーから更新されるため、直接編集することはできません。これらの属性を編集可能にするには、ユーザープロファイルの作成時にのみアイデンティティプロバイダーからユーザー属性が更新されるよう、[Auth0 との接続同期を設定](/docs/ja-jp/manage-users/user-accounts/user-profiles/configure-connection-sync-with-auth0)する必要があります。その後、ルート属性は <Tooltip tip="Management API: 顧客が管理タスクを実行できるようにする製品。" cta="用語集を表示" href="/docs/ja-jp/glossary?term=Management+API">Management API</Tooltip> を使用して、[個別に編集](https://auth0.com/docs/api/management/guides/users/update-root-attributes-users)したり、[一括インポートで編集](https://auth0.com/docs/api/management/guides/users/update-root-attributes-users)したりできるようになります。

詳細情報が利用可能な場合に生成されるフィールド:

* `email`: ユーザーのメールアドレス。
* `email_verified`: ユーザーのメールアドレスが検証済みかどうかを示すブール値。
* `given_name`: ユーザーの名。
* `family_name`: ユーザーの姓。

[ユーザーの作成 Management API エンドポイント](https://auth0.com/docs/api/management/v2#!/Users/post_users)を使用してユーザーを作成する際は、`given_name` と `family_name` を送信できます。デフォルトでは、Auth0 以外のアイデンティティプロバイダー (Google、Facebook、X など) から提供されるユーザーの `given_name` と `family_name` 属性は、ユーザーがログインするたびにアイデンティティプロバイダーから更新されるため、直接編集することはできません。これらの属性を編集可能にするには、ユーザープロファイルの作成時にのみアイデンティティプロバイダーからユーザー属性が更新されるよう、[Auth0 との接続同期を設定](/docs/ja-jp/manage-users/user-accounts/user-profiles/configure-connection-sync-with-auth0)する必要があります。その後、ルート属性は Management API を使用して、[個別に編集](https://auth0.com/docs/api/management/guides/users/update-root-attributes-users)したり、[一括インポートで編集](https://auth0.com/docs/api/management/guides/users/update-root-attributes-users)したりできるようになります。

[カスタムデータベース](/docs/ja-jp/authenticate/database-connections/custom-db)用のログインスクリプトを作成する場合は、ユーザープロファイルの情報を返す必要があります。ユーザーを正しく識別するには、一意かつ不変の `user_id` プロパティが必須です ([ユーザーを一意に識別する](/docs/ja-jp/manage-users/user-accounts/identify-users)を参照) 。

<div id="additional-attributes">
  ## 追加属性
</div>

ユーザープロファイルには、アイデンティティの配列が含まれます。最も一般的なケース (単一のプロバイダーでログインする場合) では、配列には要素が 1 つだけ含まれます。ユーザーにリンクされた複数のアカウントがある場合、配列には関連付けられたアカウントごとに要素が含まれます。詳細については、[ユーザーアカウントのリンク](/docs/ja-jp/manage-users/user-accounts/user-account-linking)を参照してください。

`identities` 配列には、次の属性が含まれます。

* `connection`: 接続の名前。
* `isSocial`: プロバイダーが Social プロバイダーかどうかを示します。
* `provider`: 接続のプロバイダー。
* `user_id`: この接続におけるユーザーの一意の識別子。

Auth0 は、上記の標準属性にマッピングされていない場合でも、アイデンティティプロバイダーから提供されたその他すべてのプロパティをアプリに渡します。
