Skip to main content
セッション有効期間の制限では、システムがログインセッションをどのくらい保持するかを決定します。Auth0 では、セッション有効期間について次の 2 つの設定を構成できます。
  • Idle Session Lifetime: ユーザーの とやり取りしない状態が続いた場合に、セッションの有効期限が切れるまでの期間です。セルフサービスプランで 3 日、Enterprise plan で 100 日を超える場合は、システムの上限が適用されます。
  • Maximum Session Lifetime: ユーザーのアクティビティに関係なく、再度ログインが必要になるまでの期間です。セルフサービスプランで 30 日、Enterprise plan で 365 日を超える場合は、システムの上限が適用されます。
これらの設定はテナント単位で構成され、Auth0 Dashboard または を使用して設定できます。 ユーザーが新たに通常のログインを行うと、ログインセッションはリセットされます。例を示します。
  1. Idle Session Lifetime の上限を 3 日、Require log in after の上限を 30 日に設定します。
  2. ユーザーがログインすると、入力した値がそのユーザーのセッションに設定されます。
    1. ユーザーが 3 日間の Idle Session Lifetime 内にアクティブであれば、セッションの有効期間はさらに 3 日延長されます。以後も 3 日ごとにユーザーがアクティブである限り、Maximum Session Lifetime の上限に達するまで、セッションの有効期間はさらに 3 日ずつ延長されます。この時点で、ユーザーは再度ログインする必要があります。
    2. ユーザーが 3 日間アクティビティのない状態だと、自動的にログアウトされます。
  3. ユーザーのログイン中に既存のセッション有効期間の上限を延長した場合、新しい設定は既存のセッションが終了し、ユーザーが再度ログインするまで反映されません。
  4. ユーザーのログイン中に既存の有効期間の上限を短縮した場合、新しい設定はユーザーの次回のアクティビティ時にただちに反映されます。これにより、セキュリティ上の目的でセッション有効期間を短縮できます。

アプリケーション固有のログアウト URL

アプリケーション固有のログアウト URL を使用する際は、重要な注意点が 2 つあります。
  • /oidc/logout エンドポイントを呼び出すときは、必ず client_id をクエリパラメータとして送信する必要があります。また、id_token_hint URL は、そのアプリケーションで許可されているログアウト URL の一覧に含まれている必要があります。
  • これにより、client_id に対応するアプリケーションだけでなく、定義されているすべてのアプリケーションについて、テナント全体の Auth0 セッションが終了します。client_id を渡すのは、/logout エンドポイントに対して、ログアウト URL のホワイトリストをどこで参照するかを示すためです。
ユーザーのログアウト後、Auth0 がリダイレクトするのは、この一覧に定義されている URL のみです。 ログアウト後にユーザーをアプリケーションへリダイレクトし、そのアプリケーションが、そのユーザーの認証済みセッションがまだ残っているにリダイレクトする場合、ユーザーは自動的に再度アプリケーションへログインされ、ログアウトが機能しなかったように見えることがあります。このような場合は、アプリケーションに専用のログアウト後ランディングページを用意し、正常にログアウトしたことをユーザーに伝えることをお勧めします。必要に応じて、アイデンティティプロバイダーにはまだログインしたままの可能性があることも案内できます。 ユーザーが Auth0 セッションを更新するような操作を何も行っていない場合は、セッションを明示的に継続するかどうかをユーザーが選べるようにしておくことをお勧めします。この方法の目的は、ユーザーがその場にいなくなった場合はセッションを非アクティブにできるようにしつつ、そうでない場合はサイレントトークン更新をトリガーする手段を提供し、資格情報の入力を再度求められることなくセッションを継続できるようにすることです。
  • 非アクティブタイマー: Auth0 セッションの最大アイドル時間に合わせて、React SDK ラッパーにローリングタイマーを追加します。トークンがアプリケーションに返されるたびに、タイマーをリセットします。
  • タイムアウトモーダル: タイマーが有効期限の 60 秒前になったら、ユーザーにログアウトするかセッションを継続するかの選択を求めるタイムアウトモーダルをレンダリングする必要があります。
    • セッションを継続する: ユーザーがセッションの継続を選択した場合は、getTokenSilently() メソッドを使用して、現在操作しているページからリダイレクトすることなく新しいトークンを要求します。
    • ログアウトする: ユーザーがログアウトを選択した場合は、Auth0 セッションも確実に終了するよう、logout() メソッドを呼び出す必要があります。
    • アイドルタイムアウト: アイドルタイムアウトに達した場合でも、直ちに何らかのアクションを行う必要はありません。ユーザーが別のタブではまだアクティブである可能性があるため、この場合の動作はユーザーをログアウトさせることではありません
    • その他の方法としては、モーダルにログインボタンを追加する、window.onfocus イベントを使って getTokenSilently() をトリガーする、またはユーザーをランディングページにリダイレクトすることなどがあります。

詳細はこちら