コンテンツにスキップ

セッション管理

ユーザーセッションは、ユーザーが再認証せずにAccessアプリケーションにアクセスできる期間を決定します。

セッションの期間

ユーザーがAccessによって保護されたアプリケーションにログインすると、AccessはそのユーザーのアイデンティティをあなたのAccessポリシーに対して検証し、2つの署名されたJSON Webトークン(JWT)を生成します。

トークン説明有効期限ストレージ
グローバルセッショントークンIdPからユーザーのアイデンティティを保存し、すべてのAccessアプリケーションに対してシングルサインオン(SSO)機能を提供します。グローバルセッションの期間あなたのCloudflare チームドメイン
アプリケーショントークンユーザーが特定のAccessアプリケーションにアクセスできるようにします。ポリシーセッションの期間(設定されている場合)、そうでなければアプリケーションセッションの期間Accessアプリケーションによって保護されたホスト名

ユーザーはアプリケーショントークンのライフサイクル全体にわたってアプリケーションにアクセスできます。アプリケーショントークンが期限切れになると、グローバルトークンがまだ有効であり(かつユーザーのアイデンティティがあなたのAccessポリシーを通過する場合)、Cloudflareは自動的に新しいアプリケーショントークンを発行します。グローバルトークンも期限切れの場合、ユーザーはIdPで再認証を求められます。

グローバルトークンの有効期限は通常、アプリケーショントークンの有効期限と同じかそれ以上に設定されます。より長いグローバルトークンを設定することで、ユーザーセッションを長く保つより安全な方法が提供されます。なぜなら、グローバルトークンはアプリケーションに直接アクセスするために使用できないからです。

グローバルセッションの期間を設定する

15分から1ヶ月の間でグローバルセッションの期間を設定できます。

  1. Zero Trustに移動し、設定 > 認証に進みます。
  2. グローバルセッションのタイムアウトの下で、編集を選択します。
  3. ドロップダウンメニューから希望のタイムアウト期間を選択します。

この期間が経過した後、ユーザーはIdPで再認証を求められます。

アプリケーションセッションの期間を設定する

自己ホスト型およびプライベートAccessアプリケーションのためにアプリケーションセッションの期間を設定できます。利用可能なセッション期間は、即時タイムアウトから1ヶ月までです。デフォルトは24時間です。

  1. Zero Trustに移動し、Access > アプリケーションに進みます。
  2. 設定したいアプリケーションを見つけて編集を選択します。
  3. 概要タブで、ドロップダウンメニューからセッションの期間を選択します。

この期間が経過するとアプリケーショントークンは期限切れになります(ポリシーセッションの期間を設定していない限り)。

SaaSアプリケーションセッション

Accessのセッション期間はSaaSアプリの入り口を制御するだけであり、AccessはユーザーがSaaSアプリ自体にどれだけ長く留まるかを制御しません。たとえば、ユーザーがSaaSアプリからログアウトし、その後再度アクセスした場合、有効なAccessアプリケーショントークンがあれば、再度ログインすることなく再認証が可能です。SaaSアプリは、アプリ内でのユーザーセッションを管理する独自の認証クッキーを発行します。

ポリシーセッションの期間を設定する

即時タイムアウトから1ヶ月までの範囲でポリシーセッションの期間を設定できます。ポリシーセッションの期間はアプリケーションセッションの期間よりも優先されます。

  1. Zero Trustに移動し、Access > アプリケーションに進みます。
  2. 設定したいアプリケーションを見つけて編集を選択します。
  3. ポリシータブに移動し、任意のポリシーの設定を選択します。
  4. ドロップダウンメニューからセッションの期間を選択します。

このポリシーに一致するユーザーには、この有効期限を持つアプリケーショントークンが発行されます。

ユーザーセッションの取り消し

Accessは、ユーザーセッションを取り消すための2つのオプションを提供します:アプリケーションごととユーザーごとです。

アプリケーションごと

特定のアプリケーションのすべてのアクティブセッションを即座に終了するには:

  1. Zero Trustに移動し、Access > アプリケーションに進みます。

  2. アクティブセッションを取り消したいアプリケーションを見つけて編集を選択します。

  3. 概要タブで、既存のトークンを取り消すを選択します。

ポリシーのルールに変更がない限り、ユーザーはアイデンティティプロバイダーでのプロフィールがまだアクティブであれば、新しいセッションを開始できます。

ユーザーごと

Accessは、アカウント内のすべてのアプリケーションで単一のユーザーセッションを即座に取り消すことができます。ただし、ユーザーのアイデンティティプロフィールがまだアクティブであれば、新しいセッションを生成できます。

ユーザーのアクセスを永久に取り消したい場合:

  1. アイデンティティプロバイダーでそのアカウントを無効にして、認証できないようにします。

  2. Zero Trustに移動し、My Team > Usersに進みます。

  3. 取り消したいユーザーの横にあるチェックボックスを選択します。

  4. アクション > アクセスを取り消すを選択します。

ユーザーはもはやAccessによって保護されたアプリケーションにログインできなくなります。ユーザーは、アカウントからユーザーを削除するまで、あなたのシートサブスクリプションにカウントされ続けます。

次回のログイン

管理者がユーザーのCloudflare Accessトークンを取り消すと、そのユーザーは最大1分間再度ログインできなくなります。再度ログインしようとすると、Cloudflare Accessはエラーを表示します。

ユーザーとしてログアウトする

Accessからログアウトするには、エンドユーザーは次のいずれかのURLにアクセスできます:

  • <your-application-domain>/cdn-cgi/access/logout
  • <your-team-name>.cloudflareaccess.com/cdn-cgi/access/logout

このアクションは、すべてのアプリケーションでユーザーのセッションを取り消します。Accessは即座にユーザーのブラウザから認証クッキーをクリアし、以前に発行されたすべてのトークンは20〜30秒で受け入れられなくなります。これら2つのURLの唯一の違いは、認証クッキーが削除されるドメインです。たとえば、<your-application-domain>/cdn-cgi/access/logoutにアクセスすると、アプリケーションクッキーが削除され、ログアウトアクションがより瞬時に感じられます。

これらのURLを使用して、アプリケーション内にカスタムログアウトボタンやリンクを作成できます。

AJAX

AJAXやシングルページアプリケーションに大きく依存するページは、期限切れのAccessトークンによりサブリクエストをブロックすることができ、ユーザーに再認証を促すことはありません。

Accessを構成して、期限切れのセッショントークンに対してサブリクエストで401レスポンスを提供することができます。このレスポンスコードを使用して、ページのリフレッシュを強制するか、ユーザーにセッションが期限切れであることを表示するメッセージを表示することをお勧めします。

期限切れのセッションに対して401を受け取るには、すべてのAJAXリクエストに次のヘッダーを追加します:

X-Requested-With: XMLHttpRequest