Skip to main content
セッションの有効期間の制限は、システムがログインセッションをどれくらい保持するかを決定します。Auth0 では、セッションの有効期間について次の 2 つの設定を構成できます。
  • Idle Session Lifetime: ユーザーの とやり取りしない場合に、セッションが期限切れになるまでの期間です。セルフサービスプランでは 3 日、エンタープライズプランでは 100 日を超えると、システムの制限が優先されます。
  • Maximum Session Lifetime: ユーザーのアクティビティに関係なく、再度ログインが必要になるまでの期間です。セルフサービスプランでは 30 日、エンタープライズプランでは 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 の一覧に含まれている必要があります。
  • これにより、そのテナント全体の Auth0 セッション、つまり client_id で指定したアプリケーションだけでなく、定義済みのすべてのアプリケーションのセッションが終了します。client_id を渡すのは、/logout エンドポイントに、ログアウト URL の許可リストをどこで参照すべきかを示すためです。
ユーザーがログアウトした後、Auth0 はこの一覧に定義されている URL にのみリダイレクトします。 ログアウト後にユーザーをアプリケーションへリダイレクトし、そのアプリケーションが、まだそのユーザーの認証済みセッションを保持している にリダイレクトする場合、ユーザーは気付かないうちに再びアプリケーションにログインされ、ログアウトが機能しなかったように見えることがあります。このような場合は、アプリケーション内にログアウト専用のランディングページを用意し、正常にログアウトできたことをユーザーに伝えることをお勧めします。また、必要に応じて、ID プロバイダーにはまだログインしたままの可能性があることを知らせることもできます。 ユーザーが Auth0 セッションの更新を伴う操作を何も行っていない場合は、セッションを明示的に継続するかどうかをユーザーに選ばせるよう案内することをお勧めします。このアプローチの目的は、ユーザーがその場を離れた場合にはセッションを非アクティブにできるようにしつつ、引き続き利用中であればサイレントなトークン更新を実行する手段を提供し、認証情報の再入力を求められることなくセッションを継続できるようにすることです。
  • 非アクティブタイマー: Auth0 セッションの最大アイドル有効期間に合わせて、React SDK ラッパーにローリングタイマーを追加します。トークンがアプリケーションに返されるたびに、タイマーをリセットします。
  • タイムアウトモーダル: 有効期限の 60 秒前になったら、ユーザーにログアウトするかセッションを継続するかを確認するタイムアウトモーダルを表示します。
    • セッションを継続する: ユーザーがセッションの継続を選択した場合は、getTokenSilently() メソッドを使用して、現在操作中のページからリダイレクトすることなく新しいトークンを要求します。
    • ログアウトする: ユーザーがログアウトを選択した場合は、Auth0 セッションも確実に終了するように logout() メソッドを呼び出す必要があります。
    • アイドルタイムアウト: アイドルタイムアウトに達しても、直ちに何らかの操作を行う必要はありません。ユーザーが別のタブではまだアクティブである可能性を考慮し、ログアウトさせる動作にすべきではありません
    • その他の方法としては、モーダルにログインボタンを追加する、window.onfocus イベントを使用して getTokenSilently() をトリガーする、またはユーザーをランディングページにリダイレクトすることが挙げられます。

詳しくはこちら