メインコンテンツへスキップ
ログアウト は、不要になった認証済みセッションを終了し、不正な第三者によるセッションの「乗っ取り」を防ぐための操作です。通常は、ユーザーに提供するユーザーインターフェースにログアウトオプションを設けることで実現します。ユーザーがログインすると、複数種類のセッション (例: ローカルアプリケーションセッション、Auth0 セッション、サードパーティの セッション) が作成されることがあります。ユーザーが ログアウト オプションをクリックしたときに、それらのうちどのセッションを終了する必要があるかを判断しなければなりません。

ベストプラクティス

ログアウト時の動作では、どのセッションが終了されるのかをユーザーに明確に示し、できればその後にログアウト完了を視覚的に確認できるようにしてください。
ログアウト動作を設定する際は、次の点を考慮する必要があります。
  • ユーザーがログアウトを開始したときに、どのセッションを終了するべきか
  • 終了したセッションの確認として、どのような情報をユーザーに提供するべきか
  • ログアウト完了後、ユーザーをどこにリダイレクトするべきか
  • ユーザーがログアウト処理を実行しなかった場合、セッションをどれくらい維持したいか
ユーザーがログインするたびに作成されるセッションの種類はさまざまであるため、ログアウトにもいくつかの種類があります。ローカルアプリケーションのログアウトは、そのアプリケーションとのセッションを終了します。一方、Auth0 のログアウトは Auth0 セッションを終了します。独自の IDプロバイダー (IdP) を使用している組織がある場合は、フェデレーテッドログアウト 戦略を検討し、それに応じて実装するとよいでしょう。グローバルログアウト、または シングルログアウト  (SLO) は、Auth0 セッションを終了し、さらに Auth0 セッションに依存しているアプリケーションにもログアウト要求または通知を送信します。 アプリケーションが提供する機能と、シングルサインオン (SSO) などの機能の利用状況に応じて、必要なログアウトの種類や、ユーザーに提供すべき視覚的な確認内容が決まります。どのオプションを選ぶ場合でも、実装するログアウト処理では、どのセッションが終了されるのか、またログアウト処理がいつ完了したのかをユーザーに明確に示す必要があります。
あるアプリケーションのログアウト機能によって、他のアプリケーションでも使用されている Auth0 の SSO セッションが終了されると、未確定のトランザクションがある場合にユーザーが作業内容を失う可能性があります。作業内容の消失を最小限に抑えるため、このような状況に対処するために必要な機能を必ず追加してください。

ログアウト後のユーザーのリダイレクト先

ユーザーがログアウトすると、指定した場所にリダイレクトされます。この場所は ログアウトリダイレクト URL として指定し、パラメーターとして定義できます。 ログアウト後にユーザーのリダイレクト先として使用する URL は、オープンリダイレクトのセキュリティ脆弱性を軽減するため、Dashboard で許可リストに追加しておく必要があります。許可リストへの追加は、テナントレベルまたはアプリケーションレベルで行えます。
ユーザーがログアウトした後にアプリケーションへリダイレクトされ、そのアプリケーションが、引き続きそのユーザーの有効なセッションを保持している IDプロバイダー にリダイレクトすると、ユーザーはアプリケーションにサイレントログインされます。そのため、ユーザーにはログアウト処理が正しく機能しなかったように見える場合があります。

セッションの自動終了

すべてのユーザーが手動でログアウトするとは限らないため、Auth0 では、セッションが長時間継続しすぎるのを防ぐために、セッションタイムアウト も提供しています。この設定は、Auth0 Dashboard で利用でき、設定も可能です

プロジェクト計画ガイド

推奨戦略の詳細を確認できるよう、ダウンロードして参照できる PDF 形式の計画ガイドを用意しています。 B2C IAM プロジェクト計画ガイド