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

> B2C IAM 実装におけるユーザーログアウト設計の考慮事項。

# ログアウト (B2C)

[ログアウト](/docs/ja-jp/authenticate/login/logout) とは、認証済みセッションが不要になった時点でそれを終了し、不正な第三者にセッションを「乗っ取られる」可能性を最小限に抑えることです。通常は、ユーザーに提供するユーザーインターフェースにログアウトのオプションを設けることで実現します。ユーザーがログインすると、複数種類のセッションが作成されることがあります (たとえば、ローカルアプリケーションのセッション、Auth0 セッション、サードパーティの <Tooltip tip="Identity Provider (IdP): デジタル ID を保存・管理するサービス。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Identity+Provider">Identity Provider</Tooltip> セッションなど) 。そのため、ユーザーが **ログアウト** オプションをクリックした際に、どのセッションを終了する必要があるかを判断しなければなりません。

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

  ログアウト時の動作では、どのセッションが終了されるのかをユーザーが明確に理解できるようにし、できればその後にログアウト完了を視覚的に確認できる表示を行うようにしてください。
</Info>

ログアウト動作を設定する際には、次の点を考慮する必要があります。

* ユーザーがログアウトを開始したとき、どのセッションを終了すべきですか？
* 終了したセッションの確認として、どのような情報をユーザーに提供すべきですか？
* ログアウト完了後、ユーザーをどこにリダイレクトすべきですか？
* ユーザーがログアウト処理を実行しなかった場合、セッションをどのくらい維持したいですか？

ユーザーがログインするたびに作成されるセッションの種類はさまざまであるため、ログアウトにもいくつかの種類があります。ローカルアプリケーションのログアウトでは、そのアプリケーションとのセッションが終了します。一方、Auth0 のログアウトでは [Auth0 セッションが終了します](/docs/ja-jp/authenticate/login/logout/log-users-out-of-auth0)。独自の IDP を使用している組織がある場合は、[Federated Logout](/docs/ja-jp/get-started/architecture-scenarios/business-to-consumer/logout#federated-logout) 戦略を検討し、それに応じて実装するとよいでしょう。グローバルログアウト、つまり [Single Logout](/docs/ja-jp/authenticate/login/logout/log-users-out-of-applications) (SLO) では、Auth0 セッションを終了するとともに、Auth0 セッションに依存するアプリケーションにもログアウト要求または通知を送信します。

必要なログアウトの種類や、ユーザーにどのような視覚的確認を提供すべきかは、アプリケーションが提供する機能や、[Single Sign-on (SSO)](/docs/ja-jp/authenticate/single-sign-on) のような機能の利用状況によって決まります。どのオプションを選ぶ場合でも、実装するログアウト処理では、どのセッションが終了されるのか、そしてログアウト処理がいつ完了したのかを、ユーザーに明確に示す必要があります。

<Warning>
  あるアプリケーションのログアウト機能によって、他のアプリケーションでも使われている Auth0 SSO セッションが終了されると、未確定のトランザクションがある場合にユーザーが作業内容を失うおそれがあります。作業内容の損失を最小限に抑えるため、このような状況に対処するために必要な機能を必ず追加してください。
</Warning>

<div id="where-to-send-users-after-logout">
  ## ログアウト後のユーザーの遷移先
</div>

ユーザーがログアウトすると、指定した場所にリダイレクトされます。この場所は**ログアウト後のリダイレクトURL**として指定し、<Tooltip tip="Auth0 Dashboard: サービスを設定するための Auth0 の主要製品。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Auth0+Dashboard">Auth0 Dashboard</Tooltip> で[パラメーターとして設定](/docs/ja-jp/authenticate/login/logout/redirect-users-after-logout)できます。

ログアウト後のリダイレクト先として使用する URL は、オープンリダイレクトの脆弱性を軽減するため、[Dashboard で許可リストに登録](/docs/ja-jp/authenticate/login/logout#redirect-users-after-logout)しておく必要があります。許可リストへの登録は、テナントレベルまたはアプリケーションレベルで行えます。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  ユーザーがログアウトした後にアプリケーションへリダイレクトされ、さらにそのアプリケーションが、ユーザーの有効なセッションが残っている Identity Provider にリダイレクトする場合、ユーザーはアプリケーションに自動的にログインされます。そのため、ユーザーにはログアウト処理が正しく機能しなかったように見えることがあります。
</Callout>

<div id="automatic-termination-of-sessions">
  ## セッションの自動終了
</div>

すべてのユーザーが手動でログアウトするとは限らないため、Auth0 ではセッションが長時間継続しすぎるのを防ぐために、**セッションタイムアウト** も提供しています。この設定は、[Auth0 Dashboard で利用でき、設定も可能です](/docs/ja-jp/get-started/tenant-settings#login-session-management)。

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

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

[B2C IAMプロジェクト計画ガイド](https://assets.ctfassets.net/cdy7uua7fh8z/3er1aEQ7Ul0q3c9leJWczR/b1f18b4c16abb7e78b01e4eb2b52bb8e/B2C_Project_Planning.pdf)
