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

# Business-to-Consumer プロファイル管理

> B2C IAM 実装におけるユーザープロファイル管理の計画時に考慮すべき事項。

状況によっては、ユーザーのプロファイルに保存されている情報を変更する必要が生じます。ユーザーのプロファイル (ユーザーアカウントとも呼ばれます) は Auth0 に保存されており、そこに含まれる情報の変更が必要になる理由はいくつかあります。

* ユーザー自身による情報更新
* 組織の利用規約に関する必須の更新
* 規制遵守に伴う変更

<Warning>
  複数の Auth0 テナントをまたいでユーザープロファイルに直接アクセスすることはできません。複数の Auth0 テナントを本番環境にデプロイしている場合は、この点を理解しておく必要があります。
</Warning>

[Identity Provider](/docs/ja-jp/authenticate/identity-providers) は、ログイン時に提供されたデータを使用してユーザーのプロファイルを作成します。これは [Normalized User Profile](/docs/ja-jp/manage-users/user-accounts/user-profiles/normalized-user-profiles) と呼ばれます。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Normalized User Profile はログイン時に IDプロバイダーから更新され、その中に含まれる限られた情報は Auth0 Management API を通じて変更できます。また、[Actions](/docs/ja-jp/customize/actions) などの Auth0 の拡張機能を使って、Normalized User Profile の情報を上書きすることもできます。詳しくは [User Profile Data Modification](https://auth0.com/docs/manage-users/user-accounts/user-profiles#change-user-profile-data) を参照してください。
</Callout>

デフォルトでは、各ユーザー ID に対して 1 つのユーザープロファイルが作成されます。ここでは、いくつか考慮すべき点があります。

* ユーザー体験を個別最適化するための情報を保存する必要がある場合、どうすべきでしょうか。
* <Tooltip tip="Identity Provider (IdP): Service that stores and manages digital identities." cta="View Glossary" href="/docs/ja-jp/glossary?term=identity+provider">IDプロバイダー</Tooltip> 由来ではないユーザー情報を保存する必要がある場合はどうでしょうか。
* ユーザーが変更できないユーザー関連情報を保存する必要があるのはなぜでしょうか。
* ユーザーが変更できないユーザー関連情報を保存する必要がある場合は、どうすべきでしょうか。
* ユーザーがパスワードを忘れた場合はどうなりますか。
* ユーザーがパスワードを変更したい場合、どうすべきでしょうか。

Auth0 では、ユーザーのプロファイルにメタデータを保存できます。これにより、ユーザー体験を向上させるために、言語設定やアクセシビリティ設定などの追加情報を保持できます。Metadata は、ユーザーが変更できる情報と変更できない情報の両方を保存するために使用できます。後者を使えば、たとえば既存の実装を変更することなく、ユーザープロファイルを既存システム内のレコードに関連付けることが可能です。

パスワードを忘れたユーザーや、既存のセルフサービスの仕組み (または計画中のセルフサービスの仕組み) を通じてパスワード変更を許可されているユーザーに対しては、Auth0 が提供する [Password Reset](#password-reset) 機能を活用できます。これは既存の実装に統合でき、[Universal Login](/docs/ja-jp/authenticate/login/auth0-universal-login) を含む Auth0 の標準 UI ウィジェットにもあらかじめ組み込まれています。

また、常に [検証済みのユーザーアカウント](#account-verification) を扱うようにする必要もあります。Auth0 にはそのための標準機能も用意されています。さらに、[GDPR](https://eugdpr.org/) などの [規制遵守](/docs/ja-jp/secure/data-privacy-and-compliance) についても考慮する必要があります。GDPR には、EU 市民をプライバシー侵害やデータ侵害から保護するうえで、非常に具体的な要件があります。

現時点で Auth0 は、集中管理型のプロファイル管理ポータルを標準では提供していませんが、セルフサービスによるプロファイル管理のために、Auth0 の <Tooltip tip="Management API: A product to allow customers to perform administrative tasks." cta="View Glossary" href="/docs/ja-jp/glossary?term=Management+API">Management API</Tooltip> を使用して独自に構築することも、すでに構築済みの UI を利用することもできます。Management API のエンドポイントについて説明している Auth0 の [community guidance](https://community.auth0.com/t/how-to-allow-the-end-user-to-update-their-own-profile-information/6228) を参照してください。Management API へのすべての呼び出しには、[アクセストークン](/docs/ja-jp/secure/tokens/access-tokens) の使用が必要です。

<Warning>
  セルフサービスのプロファイル管理では、セキュリティだけでなくデータプライバシーに関する懸念も生じる可能性があります。たとえば、ユーザーにメールアドレスの変更を許可したい場合でも、ベストプラクティスに沿ったセキュリティ対策を取らずに実施すると、ユーザーが自分のアカウントにアクセスできなくなったり、個人を特定できる情報 (PII) が漏えいしたり、さらに悪い場合にはセキュリティ侵害の原因になったりするおそれがあります。
</Warning>

または、<Tooltip tip="Auth0 Dashboard: サービスを構成するための Auth0 の主要製品です。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Auth0+Dashboard">Auth0 Dashboard</Tooltip> を使用して、[ユーザーのプロフィールの管理](/docs/ja-jp/manage-users/user-accounts/manage-users-using-the-dashboard)を行うこともできます。Auth0 Dashboard を介したユーザーのプロフィール管理は、どちらかといえば管理者向けの機能であり、本番環境でセルフサービスのプロフィール管理に**使用すべきではありません**。ただし、Dashboard が提供するインターフェースは、ユーザーのプロフィール情報をすばやく簡単に操作できるため、開発中には非常に便利です。

<h2 id="metadata">
  メタデータ
</h2>

Auth0 のユーザープロファイルには、Normalized User Profile の情報に加えてメタデータを保存できます。メタデータを使うと、IDプロバイダーに由来しない情報を保存したり、IDプロバイダーから提供される情報を上書きする値を保持したりできます。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  メタデータを使用する際は、Auth0 の[ユーザーデータ保存のベストプラクティス](/docs/ja-jp/secure/security-guidance/data-security/user-data-storage#metadata)に従ってください。メタデータストレージは汎用的なデータストアとして設計されていないため、可能な場合は独自の外部ストレージを引き続き使用してください。また、メタデータのサイズと複雑さは最小限に抑える必要があります。さらに、Auth0 Management API には、ユーザーに関連付けられたメタデータの更新や削除に関する厳格なガイドラインがあります。
</Callout>

メタデータは、Auth0 Management API と Auth0 Authentication API の両方から操作できます。Normalized User Profile を管理する場合と同様に、メタデータを操作するために Management API を呼び出すには、[アクセストークン](https://auth0.com/docs/api/management/v2/tokens)が必要です。

<Warning>
  Management API の呼び出しには、[Auth0 のレート制限ポリシー](/docs/ja-jp/troubleshoot/customer-support/operational-policies/rate-limit-policy)が適用されます。この点を考慮してください。また、通常 Auth0 では、API を直接呼び出すのではなく、開発環境に適した [Auth0 SDK](/docs/ja-jp/libraries) を使用することを推奨しています。
</Warning>

<h3 id="user-metadata">
  ユーザーメタデータ
</h3>

ユーザーメタデータ (`user_metadata` とも呼ばれます) は、ユーザープロファイルに保存できる情報で、ユーザーはセルフサービスのプロファイル管理の一環として、その内容の確認や更新を行えます。この種のメタデータには、ユーザーの敬称や、Auth0 から送信される[メールをカスタマイズ](/docs/ja-jp/customize/email/email-templates)する際に使用できる優先言語などが含まれます。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Auth0 のメールのカスタマイズに使用したい情報はメタデータに保存してください。ユーザーによる変更を許可する情報 (たとえば、メールの言語を判定するための情報) は、可能であれば `user_metadata` に保存してください。
</Callout>

<h3 id="app-metadata">
  アプリのメタデータ
</h3>

一方、アプリのメタデータ (`app_metadata`とも呼ばれます) は、ユーザープロフィールに紐づけて保存できる情報ですが、**適切な認可がある場合にのみ読み取りや更新が可能**で、ユーザーが `app_metadata` に直接アクセスすることはできません。この種のメタデータの例としては、ユーザーが最新の有効な利用規約に同意したことを示すフラグや、その同意日時を示す日付などがあります。

<h2 id="password-reset">
  Password Reset
</h2>

Auth0 では、パスワードを忘れたユーザーや、既存のセルフサービスの仕組みを通じてパスワードを変更できるユーザー向けに、[Password Reset](/docs/ja-jp/authenticate/database-connections/password-change) 機能を提供しています。これは既存の実装に統合できるほか、[Universal Login](/docs/ja-jp/authenticate/login/auth0-universal-login) の一部として含まれる、すぐに使える Auth0 の UI ウィジェットにもあらかじめ組み込まれています。

<Warning>
  パスワードの変更と Password Reset は、Auth0 の [Database Connection](/docs/ja-jp/authenticate/database-connections/password-change) タイプでのみサポートされています。
</Warning>

Auth0 <Tooltip tip="Universal Login: アプリケーションは、ユーザーの本人確認のために、Auth0 の Authorization Server でホストされている Universal Login にリダイレクトされます。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Universal+Login">Universal Login</Tooltip> には、Auth0 Authentication API の機能を使用した Password Reset 向けの UX サポートが標準で備わっています。あるいは、開発環境に適した Auth0 SDK のいずれかを介して、[Auth0 Authentication API](/docs/ja-jp/authenticate/database-connections/password-change#authentication-api) を使用することもできます。Password Reset のワークフローで使用するメールテンプレートも、Auth0 の標準 UI ウィジェットを使用する場合でも、カスタマイズした Universal Login を使用する場合でも、完全にカスタマイズできます。

一方、Auth0 Management API を使用すると、Database Connection タイプで定義されたユーザー ID の [パスワードを直接変更](/docs/ja-jp/authenticate/database-connections/password-change#directly-set-the-new-password) できます。Auth0 Management API は、セルフサービスのプロファイル管理機能の実装の一部として使用できるほか、[Change Password ページのカスタマイズ](/docs/ja-jp/get-started/architecture-scenarios/business-to-consumer/branding) の一部として使用することもできます。

<h2 id="account-verification">
  アカウントの検証
</h2>

また、常に検証済みのユーザーアカウントを扱い、Auth0 が提供する仕組みを活用する必要があります。さらに、[GDPR](https://eugdpr.org/) のような規制遵守についても考慮する必要があります。GDPR には、EU 市民をプライバシー侵害やデータ漏えいから保護するための非常に具体的な要件が定められています。

Auth0 には、ユーザーのメールアドレスに [確認メール](/docs/ja-jp/customize/email/manage-email-flow) を送信してアカウントを検証するための、すぐに使える機能が用意されています。デフォルトでは、Auth0 は [self sign-up](/docs/ja-jp/get-started/architecture-scenarios/business-to-consumer/provisioning#self-sign-up) の一環として作成された [Database Connection](/docs/ja-jp/authenticate/database-connections/password-change) の ID に対して、自動的に確認メールを送信します。また Auth0 では、ユーザー登録時に Social Provider によるメールアドレスの検証が行われない場合に確認メールを送信できる [Management API endpoint](https://auth0.com/docs/api/v2#!/Tickets/post_email_verification) も提供しています。

<h2 id="blocking-users">
  ユーザーのブロック
</h2>

Auth0 の[ユーザーアクセスのブロック](/docs/ja-jp/manage-users/user-accounts/block-and-unblock-users)では、特定の条件下でユーザーがアプリケーションにログインできないようにできます。デフォルトでは、Auth0 Dashboard に、管理者がすべてのアプリケーションに対するユーザーアクセスをブロックおよびブロック解除できる標準の仕組みが用意されており、この機能は [Auth0 Management API](https://auth0.com/docs/api/management/v2#!/Users/patch_users_by_id) を使用して実装することもできます。また、Auth0 の拡張機能を利用して、[特定のアプリケーションへのユーザーアクセスを無効化](/docs/ja-jp/manage-users/user-accounts/manage-user-access-to-applications)したり、よりきめ細かな[アクセス制御](/docs/ja-jp/get-started/architecture-scenarios/business-to-consumer/authorization)を実現したりすることもできます。

さらに、Auth0 Management API では、誤った認証情報の入力が多すぎたために無効化されたユーザーの[ブロックを解除](https://auth0.com/docs/api/management/v2#!/User_Blocks/delete_user_blocks_by_id)することもできます。

<h2 id="linking-user-accounts">
  ユーザーアカウントのリンク
</h2>

既定では、各ユーザーIDに対して 1 つのユーザープロファイル (ユーザーアカウント) が存在します。Facebook や Google による[ソーシャル認証](/docs/ja-jp/get-started/architecture-scenarios/business-to-consumer/authentication#social-authentication)と、Auth0 による[ユーザー名とパスワードによる認証](/docs/ja-jp/get-started/architecture-scenarios/business-to-consumer/authentication#username-and-password-authentication)など、複数のIDプロバイダーからのログインを有効にすると、それぞれに個別のユーザープロファイルが作成されます。Auth0 の[ユーザーアカウントのリンク](/docs/ja-jp/manage-users/user-accounts/user-account-linking)機能を使用すると、関連付けられたすべてのIDをまとめて、1 人のユーザーに対して 1 つのプロファイルを作成できます。

アカウントのリンク処理では、ユーザープロファイルを 2 つずつ統合します。このとき、リンク処理ではプライマリアカウントとセカンダリアカウントを指定する必要があります。ただし、リンクできるアカウント数は 1 組に限られません。たとえば、すでに複数のアカウントが統合されているアカウントをプライマリアカウントとして使用し、さらに別のセカンダリアカウントをリンクできます。つまり、1 つのユーザーアカウントに複数のIDを関連付けることができ、これには次のような利点があります。

* ユーザーは、IDごとに別々のプロファイルを作成しなくても、複数のIDでログインできます。
* 登録済みユーザーは、新しいログインIDを使っても、既存のプロファイルを引き続き利用できます。
* ユーザーは、ログインに使用するIDに関係なく、自分のプロファイルを維持できます。
* ユーザーは、より多くのID情報を持つアカウントにリンクすることで、より完全なプロファイルを作成できます。
* アプリケーションでは、接続ごとのユーザープロファイルデータを取得できます。

<h2 id="de-provisioning">
  アカウントの削除
</h2>

アプリケーションでは、ユーザーからアカウント削除の依頼を受けた際に対応できるようにする必要がある場合があります (たとえば、[GDPR](https://eugdpr.org/)の要件を満たす必要がある場合などです) 。こうした機能は、プロフィール関連のさまざまな機能とあわせて、[Management API](https://auth0.com/docs/api/management/v2#!/Users)を使って実装できます。Management APIを使用すると、ユーザーに関して保存されている情報を取得し、必要に応じて更新できます。

Auth0は、登録時に同意通知へのリンクを表示することや、ユーザーが自分について収集されたデータを閲覧・訂正する権利を保護するためのデータ保護など、プライバシーに関するさまざまな要件に対応できます。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  [GDPR](https://eugdpr.org/)やその他のプライバシー関連の指令では、ユーザーが自分に関して保持されているデータを閲覧し、訂正する権利を持つことが求められています。また、「忘れられる権利」も認められています。これらの要件に対応し、法的義務を果たすために、Management APIを利用できます。
</Callout>

<h2 id="project-planning-guide">
  プロジェクト計画ガイド
</h2>

推奨する戦略の詳細をご確認いただけるよう、ダウンロードして参照できるPDF形式の計画ガイドを提供しています。

[B2C IAM Project Planning Guide](https://assets.ctfassets.net/cdy7uua7fh8z/3er1aEQ7Ul0q3c9leJWczR/b1f18b4c16abb7e78b01e4eb2b52bb8e/B2C_Project_Planning.pdf)
