Skip to content

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

Cloudflare Access

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

Cloudflare Access でゲートウェイを保護します。ユーザーはリクエストを送る前に、ID プロバイダーで認証します。AI Gateway を Access の背後に置くと、AI トラフィックを ID に基づいて制御できます。ゲートウェイに到達できるユーザーを決め、各リクエストを検証済みユーザーに紐づけ、ユーザー単位で利用を管理できます。独自の認証層を作ったり、クライアントアプリからユーザー ID を渡したりする必要はありません。

AI Gateway を Access の背後に置くには、先にゲートウェイへ カスタムドメインを設定 し、アカウントで Cloudflare Access を有効にしておきます。

仕組み

カスタムドメインへのリクエストに有効な Cloudflare Access JWT が含まれると、AI Gateway はその Access JWT をリクエストの認証情報として受け付けます。そのリクエストでは、クライアントは AI Gateway トークンを送る必要はありません。

AI Gateway は、検証済みの Access ユーザー ID をリクエストメタデータに cf.user_id として追加します。この値は Access JWT の sub クレームであり、ユーザーのメールアドレスではありません。認証済みユーザーでログ、分析、利用額をフィルタできます。

AI Gateway は、上流プロバイダーへリクエストを転送する前に、Access JWT や AI Gateway の認可ヘッダーなど、Cloudflare 専用の認証情報を取り除きます。

カスタムドメインを Access で保護すると、そのドメインへのリクエストはすべて Access ポリシーを通過する必要があります。有効な Access トークンがなく、AI Gateway トークンだけを含むリクエストは、ゲートウェイに届く前に Access でブロックされます。既存の連携は Access 経由で認証するよう更新するか、ゲートウェイトークンのトラフィックは Access で保護されていないデフォルトの gateway.ai.cloudflare.com エンドポイントへ送り続けます。

ゲートウェイで Access を設定する

  1. 保護するゲートウェイに カスタムドメインを設定 します。
  2. Cloudflare ダッシュボードAI > AI Gateway を開きます。
  3. カスタムドメインを設定したゲートウェイを選びます。
  4. Access タブを開き、ゲートウェイで Cloudflare Access を設定します。
  5. ゲートウェイを呼び出せるユーザーを定義する Access ポリシーを追加します。

Access タブから設定すると、Access アプリケーションが自動で構成されます。コーディングエージェントやブラウザー以外のクライアントは、Access トークンを bearer トークンとして送って認証できます。

設定後、ユーザーは Access で認証してからカスタムドメインへリクエストできます。有効な Access ユーザー subject を持つリクエストには、AI Gateway メタデータに cf.user_id が含まれます。

リクエストを送る

ユーザーが Access で認証したあと、パスにアカウント ID やゲートウェイ ID を含めず、カスタムドメインへリクエストを送ります。

curl -X POST "https://ai.example.com/openai/v1/chat/completions" \
  --header "Content-Type: application/json" \
  --data '{
    "model": "gpt-4.1-mini",
    "messages": [
      {
        "role": "user",
        "content": "What is Cloudflare?"
      }
    ]
  }'

ブラウザー以外のクライアントからカスタムドメインを呼ぶ場合は、Cloudflare Access が対応するヘッダーまたは Cookie 形式で Access トークンを含めます。たとえば、cloudflared access curl はコマンドラインリクエスト向けに Access トークンを送れます。

コーディングエージェントについては、Coding agents のエージェント別セットアップを参照してください。例: Claude CodeOpenAI Codex

制限

  • cf.user_id は、空でないユーザー subject を持つ有効な Access JWT を AI Gateway が受け取った場合にだけ追加されます。
  • サービストークンのリクエストには cf.user_id は含まれません。個別の Access ユーザーを表さないためです。
  • cf. で始まるメタデータキーは指定できません。これらのキーは予約済みで、保存されません。

役に立ちましたか?