> ## 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.

# プロファイル管理（B2B）

> B2B IAM実装のユーザープロファイル管理計画で考慮すべき事項。

いずれかの時点で、ユーザーのプロファイルに保存されている情報を変更する必要が生じることがあります。ユーザーのプロファイル（ユーザーアカウントとも呼ばれる）はAuth0に保存されており、さまざまな理由でその情報に変更を加えることが必要になる場合があります。

* セルフサービスでの情報の更新
* 組織の利用規約に関する必須の更新
* 規制順守に伴う更新

<Warning>
  複数のAuth0テナントにまたがるユーザープロファイルには、直接アクセスすることはできません。運用環境に複数のAuth0テナントをデプロイする場合は、注意が必要です。
</Warning>

[IDプロバイダー](/docs/ja-JP/ja-jp/connections)は、ログインプロセス中に提供されたデータを使用してユーザープロファイルに情報を自動入力します。これを[正規化ユーザープロファイル](/docs/ja-JP/ja-jp/manage-users/user-accounts/user-profiles/normalized-user-profiles)と呼びます。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  正規化ユーザープロファイルは、ログイン時にIDプロバイダーによって更新されるため、Auth0 Management APIを使って変更できるプロファイル情報は限られます。正規化ユーザープロファイルの情報をオーバライドする別の方法として、[Rules](https://auth0.com/docs/rules)など、Auth0の拡張機能を利用することもできます。詳細については、「[ユーザプロファイルのデータを編集する](https://auth0.com/docs/users/concepts/overview-user-profile#user-profile-data-modification)」を参照してください。
</Callout>

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

* ユーザーエクスペリエンスをカスタマイズするために情報を保存する必要がある場合、何をすべきか？
* IDプロバイダー由来ではないユーザー情報を保存する必要がある場合、どうすればいいか？
* ユーザーが変更できないユーザー関連情報を保存する必要があるのはなぜか？
* ユーザーが変更できないユーザー関連情報を保存する必要がある場合、どうすればいいか？
* ユーザーがパスワードを忘れた場合、どうなるのか？
* ユーザーは、パスワードを変更したい場合に何をすべきか？
* サードパーティー組織の管理者にユーザーを管理する機能を提供するにはどうすればいいか？

Auth0には、ユーザープロファイルに対するメタデータのストレージがあるため、これによって言語やアクセシビリティの好みなどの追加情報を取得し、ユーザーエクスペリエンスを向上させることができます。メタデータは、ユーザーが変更できる情報と、変更できない情報の両方を保存するために使用できます。後者の情報を使うと、既存の実装を変更することなく、ユーザープロファイルを既存のシステム内のレコードに関連付けることができます。

パスワードを忘れたユーザーや、既存のセルフサービスのメカニズム（または計画したセルフサービスのメカニズム）を使ってパスワードを変更することが許可されているユーザーに対しては、Auth0が提供する[パスワードリセット](#password-reset)機能を活用することができます。これは既存の実装と統合することができ、[ユニバーサルログイン](/docs/ja-JP/ja-jp/authenticate/login/auth0-universal-login)を含む既成のAuth0 UIウィジェットにもすでに組み込まれています。

また、常に[検証済みのユーザーアカウント](#account-verification)で作業していることを確認する必要があります。Auth0では、そのための既成のメカニズムも用意されています。また、EU市民のプライバシーを守り、データ侵害から市民を保護するために非常に具体的な要件を設けている、[GDPR](https://eugdpr.org/)などの[規制順守](/docs/ja-JP/ja-jp/secure/data-privacy-and-compliance)も考慮すべきです。

Auth0では現在、一元化された既成のプロファイル管理ポータルを提供していませんが、セルフサービスによるプロファイル管理を目的として、Auth0 <Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-JP/ja-jp/glossary?term=management-api" tip="Management API: 顧客が管理タスクを実行できるようにするための製品。" cta="用語集の表示">Management API</Tooltip>を使用する独自のUIを構築したり、すでに構築済みのUIを利用したりすることができます。Management APIエンドポイントについて解説しているAuth0の[コミュニティガイダンス](https://community.auth0.com/t/how-to-allow-the-end-user-to-update-their-own-profile-information/6228)を参照してください。Management APIへのすべての呼び出しには、[アクセストークン](/docs/ja-JP/ja-jp/secure/tokens/access-tokens)を使用する必要があります。

<Warning>
  セルフサービスのプロファイル管理では、セキュリティ・データプライバシー上の懸念が生じる可能性があります。たとえば、ユーザーに対してメールアドレスの変更を許可したい場合に、セキュリティガイダンスに従わずにそれを行うと、ユーザーがアカウントからロックアウトされたり、個人を特定できる情報（PII）が漏洩したり、最悪の場合にはセキュリティ侵害が生じたりします。
</Warning>

あるいは、<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-JP/ja-jp/glossary?term=auth0-dashboard" tip="Auth0 Dashboard: サービスを構成するためのAuth0の主製品。" cta="用語集の表示">Auth0 Dashboard</Tooltip>を使用して、[ユーザーのプロファイル要素を管理する](/docs/ja-JP/ja-jp/manage-users/user-accounts/manage-users-using-the-dashboard)こともできます。Auth0 Dashboardを通じたユーザープロファイルの管理は、主に管理目的のプロビジョニングであり、運用環境におけるセルフサービス型のプロファイル管理に**使用すべきではありません** 。ただし、Dashboardで提供されるインターフェイスを使うと、ユーザーのプロファイル情報を迅速かつ簡単に操作できるため、開発時に非常に便利です。

お客様の資格情報をこちらのシステムに保管しているときに、管理者が自分のユーザーを管理できる方法をお客様に提供する必要がある場合は、自分で作成するか、Auth0拡張機能を利用することができます。詳しくは、「[管理者ポータル](#admin-portal)」を参照してください。

<div id="metadata">
  ## Metadata（メタデータ）
</div>

正規化ユーザープロファイル情報に加えて、[メタデータ](/docs/ja-JP/ja-jp/manage-users/user-accounts/metadata)もAuth0のユーザープロファイルに保存することができます。」メタデータは、IDプロバイダー由来ではない情報を保管する方法、またはIDプロバイダーから提供された情報を上書きする情報を保管する方法を提供します。

<Info>
  ### ベストプラクティス

  メタデータを使用するには、Auth0[「ユーザーデータ保存のベストプラクティス」](/docs/ja-JP/ja-jp/best-practices/user-data-storage-best-practices#metadata)に従ってください。メタデータの保存は汎用のデータストアとして設計されておらず、可能な限り独自の外部ストレージ施設を使用するべきです。メタデータのサイズと複雑さは最小に保たれるべきで、Auth0 Management APIにはユーザーに関連するメタデータの更新および/または削除についての厳格な一連のガイダンスがあります。
</Info>

メタデータは、Auth0 Management APIとAuth0 Authentication APIの両方を通じて操作できます。正規化ユーザープロファイルを管理する場合と同様に、メタデータを操作するためにManagement APIを呼び出す際には、[アクセストークン](/docs/ja-JP/ja-jp/api/management/v2/tokens)の使用が必要になります。

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

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

ユーザーメタデータ（`user_metadata`とも呼ばれる）は、ユーザープロファイルに対して保存できる情報で、ユーザーはセルフサービス型のプロファイル管理の一環として、読み取りおよび更新することができます。ユーザーメタデータには、ユーザーの敬称、使用する言語などが含まれており、Auth0から送信する[メールのカスタマイズ](/docs/ja-JP/ja-jp/customize/email/email-templates)に使用されます。

<Info>
  ### ベストプラクティス

  Auth0のメールをカスタマイズするために使用する情報は、メタデータに保存し、ユーザーが変更できる場合（メールの言語を決定するために使用される情報など）は可能な限り`user_metadata`に保存しましょう。
</Info>

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

一方、アプリメタデータ（`app_metadata`とも呼ばれる）は、ユーザープロファイルと一緒に保存することができる情報ですが、**適切な認可がなければ読み込んだり更新したりすることができません** 。`app_metadata`はユーザーが直接アクセスできるものではありません。アプリメタデータには、ユーザーが最後に承認した有効な利用規約のセットを示すフラグや、ユーザーがこれをいつ承認したかを示す日時などが含まれます。

<div id="password-reset">
  ## パスワードリセット
</div>

パスワードを忘れたユーザーや、既存のセルフサービスのメカニズムを使ってパスワードを変更することが許可されているユーザーに対して、Auth0は[パスワードリセット](/docs/ja-JP/ja-jp/connections/database/password-change)機能を提供しています。これは既存の実装と統合することができ、[ユニバーサルログイン](/docs/ja-JP/ja-jp/authenticate/login/auth0-universal-login)の一部として既成のAuth0 UIウィジェットにもすでに組み込まれています。

<Warning>
  パスワード変更とパスワードリセットは、Auth0[データベース接続](/docs/ja-JP/ja-jp/connections/database)タイプでのみサポートされています。
</Warning>

Auth0ユニバーサルログインには、Auth0 Authentication API機能を使用したパスワードリセットのUXサポートが組み込まれています。別の方法として、お使いの開発環境に適したAuth0 SDKのいずれかを通じて、[Auth0 Authentication API](/docs/ja-JP/ja-jp/connections/database/password-change#use-the-authentication-api)を使用することもできます。パスワードリセットのワークフローで使用されるメールテンプレートは、Auth0の既成のUIウィジェットを使用する場合でも、カスタマイズされたユニバーサルログインを使用する場合でも、完全にカスタマイズが可能です。

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

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

常に検証済みのユーザーアカウントを使用し、Auth0が提供するメカニズムを利用する必要があります。また、EU市民のプライバシーを守り、データ侵害から市民を保護するために非常に具体的な要件を設けている、[GDPR](https://eugdpr.org/)などの規制順守も考慮すべきです。

Auth0には、アカウントを検証するためにユーザーのメールアドレスに[検証メール](/docs/ja-JP/ja-jp/customize/email/manage-email-flow)を送信する既成の機能があります。デフォルトでは、Auth0は[セルフサインアップ](/docs/ja-JP/ja-jp/architecture-scenarios/b2b/provisioning#self-sign-up)の一環として作成された[データベース接続](/docs/ja-JP/ja-jp/connections/database)のIDに対して、自動的に検証メールを送信します。ただし、Auth0は、ユーザー登録時にソーシャルプロバイダーによるメールアドレスの検証が行われない場合に、検証メールの送信に使用できる[Management APIエンドポイント](/docs/ja-JP/ja-jp/api/v2#!/Tickets/post_email_verification)も提供しています。

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

Auth0で[ユーザーアクセスをブロックする](/docs/ja-JP/ja-jp/manage-users/user-accounts/block-and-unblock-users)ことで、特定の条件下でのユーザーのアプリケーションへのログインを防ぐことができます。デフォルトでは、Auth0 Dashboardには、すべてのアプリケーションへのユーザーアクセスをブロックおよびブロック解除できる機能を管理者に提供する既成のメカニズムがあります。この機能は、[Auth0 Management API](/docs/ja-JP/ja-jp/api/management/v2#!/Users/patch_users_by_id)を使用して実装することもできます。また、Auth0の拡張性を利用して、[特定のアプリケーションへのユーザーアクセスを無効にしたり](/docs/ja-JP/ja-jp/manage-users/user-accounts/manage-user-access-to-applications)、よりきめ細かい[アクセス制御](/docs/ja-JP/ja-jp/get-started/architecture-scenarios/business-to-business/authorization)を行ったりすることもできます。

さらに、Auth0 Management APIには、正しくない資格情報の使いすぎによって無効にされたユーザーの[ブロックを解除](/docs/ja-JP/ja-jp/api/management/v2#!/User_Blocks/delete_user_blocks_by_id)する機能もあります。

<div id="admin-portal">
  ## 管理者ポータル
</div>

管理者ポータルは、新しいユーザーを作成したり、ユーザープロファイルを編集したり、ユーザーに関するアクティビティを確認したりできるアプリケーションです。このアプリケーションは、管理者のみがアクセスできるようにする必要があります。Auth0は管理ダッシュボードを提供していますが、管理ダッシュボードへのアクセスを多くの人に許可することは推奨されません。誰かが意図せずにAuth0テナントを壊してしまう方法が数多くあるからです。Auth0では、代わりに他のオプションを2つ提供しています。

* [**Auth0 Management API** ](/docs/ja-JP/ja-jp/api/management/v2)：Management APIを使うと、管理者にユーザーを管理する機能を提供するアプリケーションを簡単に構築することができます。これを管理者向けにすでに存在する既存のアプリケーションに組み込むか、または現在のアプリケーションと一致するUIを持つ新しいアプリケーションを作成することができます。
* [**Auth0委任管理拡張機能** ](/docs/ja-JP/ja-jp/customize/extensions/delegated-administration-extension)：この強力で柔軟な拡張機能を使うことにより、ユーザー管理エクスペリエンスをカスタマイズすることができます。この拡張機能をカスタマイズすることで、お客様の管理者がログインし、自分たちの組織内のユーザーだけを表示および管理できるようにすることができます。

<Info>
  ### ベストプラクティス

  管理者がユーザーを管理するための独自の方法を提供する場合、管理者に直接パスワードを設定させるのではなく、管理者がユーザーにメールでパスワード変更リンクを送れるようにするべきです。この推奨に反して管理者がパスワードを設定できるようにする場合は、次回のログイン時にユーザーにパスワードの変更を強制して、パスワードを知っているのはユーザーだけにしましょう（管理者も知っているということがないようにします）。
</Info>

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

当社では、PDF形式の計画ガイダンスを提供しています。ダウンロードして、推奨される戦略の詳細を参照してください。

[B2B IAM Project Planning Guide](http:///assets.ctfassets.net/cdy7uua7fh8z/63F0WOPJdVzsPMxV1Xvp8x/7a329487c5e890d8e820f6a48983b46a/B2B_Project_Planning.pdf)

<div id="multiple-organization-architecture-multitenancy">
  ## 複数Organizationアーキテクチャ（マルチテナント機能）
</div>

B2Bプラットフォームの多くが顧客のOrganizationを何らかの形で分離・ブランディングし、これがIDおよびアクセス管理（IAM）システムをさらに複雑にしています。この問題でお困りであれば、当社がそのような環境に合ったガイダンスとベストプラクティスをご紹介していますので、時間を割いてお読みになることをお勧めします。

[複数Organizationアーキテクチャ](/docs/ja-JP/ja-jp/get-started/architecture-scenarios/multiple-organization-architecture)
