Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

認可クッキー

最終更新 Markdown で表示Agent セットアップ

Cloudflare Access でサイトを保護すると、Cloudflare はそのサイト宛てのすべての HTTP リクエストを確認し、有効な CF_Authorization クッキーがあることを確かめます。リクエストにクッキーが含まれない場合、Access はそのリクエストをブロックします。

Access の JWT

CF_Authorization クッキーには、JSON Web Token (JWT) としてユーザーの身元が含まれます。Cloudflare は、Cloudflare Access と設定済みアイデンティティプロバイダーの OAUTH または SAML 連携を通じて、これらのトークンを安全に作成します。

Access は、ドメインに応じて 2 種類の CF_Authorization トークンを生成します。

  • グローバルセッショントークン: ユーザーが Access にログインしたときに生成されます。このトークンは チームドメイン(例: https://<your-team-name>.cloudflareaccess.com)のクッキーとして保存され、アプリケーションごとにログインし直す必要がなくなります。
  • アプリケーショントークン: ユーザーが到達するアプリケーションごとに生成されます。このトークンは保護対象ドメイン(例: https://jira.site.com)のクッキーとして保存され、オリジンで リクエストを検証 するときに使えます。

マルチドメインアプリケーション

Cloudflare Access では、1 つの セルフホストアプリケーション で複数ドメインを保護・管理できます。1 つのドメインで認証に成功したあと、同じ Access アプリケーション内の別ドメインへ移動すると、Access は自動で CF_Authorization クッキーを発行します。マルチドメインアプリケーションでは、ユーザーは 1 回認証すれば十分です。

Access は、初回認証時の一連のリダイレクトで、すべてのドメインに事前にクッキーを設定できます。これにより、シングルページアプリケーション(SPA)は、ユーザーが各サブドメインを訪れる前に、他のサブドメインからデータを取得できます。ワイルドカードのサブドメイン(例: *.example.com)には事前クッキーを渡せません。Access がリダイレクト先の具体的なサブドメインを特定できないためです。ワイルドカードのパスはサポートされます。

この動作は Eager redirect cookie 設定で制御します。

Access のクッキー

次の Access クッキーは、Access の動作に不可欠です。必須と記したクッキーはオプトアウトできません。これらのクッキーはトラッキングや分析には使いません。

CF_Authorization(チームドメイン)

詳細 有効期限 HttpOnly SameSite 必須?
ユーザーの身元を含み、Access がシングルサインオン(SSO)を行うための JSON Web Token (JWT)cloudflareaccess.comチームドメイン に設定されます
表示設定されている場合は、グローバルセッション期間 に従います。

設定されていない場合は、アプリケーションセッション期間 に従います。

どちらも設定されていない場合は、24 時間です。
はい None 必須

CF_Authorization(Access アプリケーションドメイン)

詳細 有効期限 HttpOnly SameSite 必須?
ユーザーが認証済みで、オリジンへのアクセスが許可されていることを Access が確認するための JSON Web Token (JWT)。Access で保護されたドメインに設定されます
表示設定されている場合は、ポリシーセッション期間 に従います。

設定されていない場合は、アプリケーションセッション期間 に従います。

どちらも設定されていない場合は、24 時間です。
管理者が選択(デフォルト: None) 管理者が選択(デフォルト: None) 必須

CF_Binding

詳細 有効期限 HttpOnly SameSite 必須?
Binding cookie を参照してください
表示設定されている場合は、ポリシーセッション期間 に従います。

設定されていない場合は、アプリケーションセッション期間 に従います。

どちらも設定されていない場合は、24 時間です。
はい None 任意

CF_Session

詳細 有効期限 HttpOnly SameSite 必須?
cloudflareaccess.comチームドメイン で使う CSRF トークン 4 時間 はい None 必須

CF_AppSession

詳細 有効期限 HttpOnly SameSite 必須?
Access 配下の各アプリケーションにスコープされた、アプリケーションドメインごとの CSRF トークン 24 時間 はい None 必須

CF_Device

詳細 有効期限 HttpOnly SameSite 必須?
cloudflareaccess.comチームドメイン に設定されるクッキー。ワンタイム PIN多要素認証 のフローの悪用を防ぎます 30 日 はい Strict 必須

クッキー設定

Cloudflare Access は、認証済みユーザー向けに Access が生成するブラウザークッキーへ追加できる、任意のセキュリティ設定を提供します。

これらの設定を有効にする手順は次のとおりです。

  1. Cloudflare ダッシュボード で、Zero Trust > Access controls > Applications を開きます。
  2. 設定するアプリケーションを探し、Configure を選択します。
  3. Advanced settings を選択し、Cookie settings までスクロールします。
  4. 目的のクッキー設定を構成します。
  5. Save を選択します。

SameSite 属性

SameSite 属性セレクターは、クッキーの定義サイトとブラウザーでリクエストされているサイトが一致する場合にだけクッキーを送るよう制限します。クロスサイトリクエストフォージェリ(CSRF) への対策になります。

選択肢は次のとおりです。

  • None - クロスオリジンリクエストを含め、すべてのコンテキストでクッキーを送信します。
  • Lax - トップレベルのナビゲーションではクッキーの送信を許可し、サードパーティサイトが開始した GET リクエストでも送信します。
  • Strict - ファーストパーティのコンテキストでのみクッキーを送信し、サードパーティサイトが開始したリクエストでは送信しません。

詳細は Mozilla のドキュメント を参照してください。

SameSite を使わない場合

特定のアプリケーションの認可クッキーに依存する追加サイトやアプリケーションがある場合は、SameSite 制限を有効にしないでください。

HttpOnly

HttpOnly フラグは、クライアントサイドスクリプトからのクッキーアクセスを防ぎ、クロスサイトスクリプティング(XSS)攻撃の可能性を下げるクッキー属性です。このフラグはデフォルトで有効です。

HttpOnly を使わない場合

次の場合は HttpOnly を有効にしないでください。

  • SSH や RDP など、ブラウザー以外のツール向けに Access アプリケーションを使っている場合。
  • Access が生成したユーザーのクッキーへアクセスする必要があるソフトウェアがある場合。

Binding cookie(CF_Binding)は、ユーザーの認証成功時に発行される任意のクッキーです。ユーザーのブラウザーが送信し、特定アプリケーションの CF_Authorization クッキーに紐づきます。このクッキーは Cloudflare のネットワークで取り除かれ、オリジンサーバーへは転送されません。

CF_Authorization クッキーは、対応する Binding cookie なしでは使えません。盗まれた CF_Authorization クッキーの再利用を防ぎます。有効な CF_Authorization クッキーがあっても、想定される Binding cookie がないリクエストは、Cloudflare のネットワークで拒否されます。

次の場合は Binding Cookie を有効にしないでください。

  • SSH や RDP など、ブラウザー以外のツール向けに Access アプリケーションを使っている場合。
  • アプリケーションドメインで 互換性のない Cloudflare プロダクトZarazGoogle tag gateway など)を有効にしている場合。これらのプロダクトと Binding Cookie を同時に有効にすると、認証のリダイレクトループ(ERR_TOO_MANY_REDIRECTS)が起きることがあります。
  • アプリケーションで Authenticate with Cloudflare One Client をオンにしている場合。

Cookie Path 属性は、アプリケーションのパス URL を CF_Authorization クッキーに追加します。有効にすると、example.com/path1 にログインしたユーザーは、example.com/path2 にアクセスするために再認証が必要です。無効の場合、CF_Authorization クッキーはドメインとサブドメインにのみスコープされます。

Eager redirect cookie 設定をオンにすると、マルチドメインアプリケーション内のすべての具体的なドメインに、事前に CF_Authorization クッキーを設定します。ユーザーの初回認証後、Access はブラウザーを各ドメイン経由でリダイレクトします。新しいアプリケーションでは、この設定はデフォルトでオンです。

ブラウザーでサードパーティクッキーを許可する

一部のブラウザーは、プライベートブラウジングモードですべてのサードパーティクッキー(CF_Authorization クッキーを含む)をデフォルトでブロックします。プライベートウィンドウで XHR リクエストを動かすには、アプリケーションと チームドメイン を、ブラウザーのトラッキング防止から除外する必要があります。

Access アプリケーションでサードパーティクッキーを有効にする手順は次のとおりです。

Chrome

  1. Settings > Privacy and security > Cookies and other site data を開きます。
  2. Sites that can always use cookies の下に、次の URL を追加します。
    • Access アプリケーションのホスト名(例: https://jira.site.com
    • https://<your-team-name>.cloudflareaccess.com

Safari

  1. Safari > Settings > Privacy を開きます。
  2. Block all cookies の選択を解除します。

Firefox

  1. Settings > Privacy & Security を開きます。
  2. Cookies and Site Data までスクロールします。
  3. Manage Exceptions を選択します。
  4. Access アプリケーションの URL(例: https://jira.site.com)を入力し、Allow を選択します。
  5. https://<your-team-name>.cloudflareaccess.com を入力し、Allow を選択します。
  6. Save Changes を選択します。

Brave

  1. brave://settings/cookies を開きます。
  2. Sites that can always use cookies の下に、次の URL を追加します。
    • Access アプリケーションのホスト名(例: https://jira.site.com
    • https://<your-team-name>.cloudflareaccess.com

役に立ちましたか?