Claude 應用程式閘道是一個自託管服務,位於開發人員的 Claude Code 用戶端和模型提供商之間。開發人員使用您的企業身份提供商 (IdP) 登入,而不是持有 API 金鑰或雲端認證。閘道持有上游認證,按 IdP 群組強制執行模型存取和受管設定,並將使用情況遙測轉發到您自己的可觀測性堆疊。
它包含在
claude 二進位檔中,因此在筆記型電腦上執行 Claude Code 的相同可執行檔可以使用 claude gateway --config gateway.yaml 執行閘道伺服器。
本頁涵蓋:
- 為什麼使用 Claude 應用程式閘道、它相比自行執行增加了什麼,以及何時其他解決方案更合適
- 一個快速入門,包含先決條件,可將閘道從零開始設定為已登入的開發人員
- 連接開發人員,包括透過受管設定設定閘道 URL
- 可用性和限制,涵蓋哪些 Claude Code 功能可透過閘道運作,以及伺服器支援什麼
為什麼使用 Claude 應用程式閘道
閘道概述涵蓋閘道的功能以及為什麼要執行一個。Claude 應用程式閘道是 Anthropic 自己的閘道,內建於claude 二進位檔中,並與每個 Claude Code 版本一起測試,因此它轉發 Claude Code 發送的標頭和請求欄位,無需操作員維護單獨的允許清單。部署後,它為您提供:
- 認證:上游 API 金鑰或雲端認證僅存在於您的基礎設施中。開發人員使用公司 SSO 進行身份驗證並接收短期的持有人令牌,因此離職發生在您的 IdP 中。取消佈建使用者,其閘道存取在會話生命週期內過期,預設為一小時。
- 存取控制:您的 IdP 群組對應到模型允許清單和受管設定原則。閘道在伺服器端強制執行模型存取,拒絕非授予模型的請求,並選擇每個群組的受管設定原則,CLI 在受管設定層級應用該原則。不同的團隊獲得不同的模型、工具和權限,開發人員無法覆蓋其原則鎖定的內容。
- 設定傳遞:閘道本身將受管設定傳遞給已登入的用戶端,取代來自 claude.ai 管理員主控台的伺服器管理設定。
- 遙測:每個配置的目的地接收OpenTelemetry Protocol (OTLP) 指標,預設包含令牌計數、模型、使用者身份和延遲,日誌和追蹤作為按目的地的選擇加入。
- 上游路由:用戶端向閘道說 Anthropic Messages API,閘道為每個上游進行轉換,無論是 Amazon Bedrock、AWS 上的 Claude Platform、Google Cloud 的 Agent Platform、Microsoft Foundry 或 Anthropic API,並在它們之間進行故障轉移。您可以更改區域、提供商或故障轉移順序,而開發人員無需注意或重新配置。
閘道自己的資料平面不會向 Anthropic 基礎設施發送任何內容,除非 Anthropic API 是配置的上游。您控制遙測、稽核日誌、受管設定和開發人員的 IdP 身份去向,閘道不會將它們中的任何一個發送給 Anthropic。對於其餘流量,CLI 程序可以發送什麼以及如何關閉它,請參閱合規性態勢。
其他閘道實現
如果您已經執行滿足您需求的 LLM 閘道或 API 閘道,請繼續使用它;其他 LLM 閘道涵蓋針對它配置 Claude Code。 閘道相容性指南記錄了 Claude Code 期望從任何閘道的內容:它呼叫的端點、要轉發的標頭和正文欄位,以及當它們被剝離時停止運作的內容。執行中的 Claude 應用程式閘道也在GET /protocol 提供其自己的協議參考,其中描述了它向 Claude Code 用戶端公開的端點:SSO 登入、推理、受管設定傳遞、模型探索和遙測。使用 curl https://claude-gateway.internal.example.com/protocol 從任何部署的閘道(例如下面快速入門產生的閘道)獲取它。協議的重大變更會提前宣佈,但不保證無限期的向後相容性。
快速入門
此快速入門走最小路徑:在您的 IdP 中註冊 OAuth 用戶端,寫入gateway.yaml,使用 Docker Compose 與 Postgres 一起執行閘道,並驗證端到端登入。它使用 Amazon Bedrock 上游;Claude Platform on AWS、Google Cloud 的 Agent Platform、Microsoft Foundry 和 Anthropic API 同樣受支援,只需如配置參考所示交換 upstreams 區塊。最後,您有一個開發人員可以 /login 的閘道。
在您的私有網路上部署。 Claude Code 只連接到地址為私有的閘道。這是一個安全防護,因為受信任的閘道可以推送在開發人員機器上執行命令的設定。將閘道放在內部負載平衡器或 VPN 後面,並給它一個只解析為私有 IP 的主機名。如果您的內部網路是從您的組織擁有的公開 IPv4 空間編號的,請參閱允許閘道在您擁有的公開地址空間上。
先決條件
在開始之前,請準備好以下內容:步驟
1
在您的 IdP 中註冊 OAuth 用戶端
首先決定閘道的主機名,因為重定向 URI 必須與其匹配。建立新的 OIDC Web 應用程式,並將重定向 URI 設定為
https://claude-gateway.<your-domain>/oauth/callback,其中主機是您在步驟 3 中設定為 listen.public_url 的相同值。記下 client_id 和 client_secret。每個 IdP 的說明在身份提供商設定中。2
佈建 PostgreSQL 資料庫
任何 Postgres 14 或更新版本都可以,包括最小受管層級。閘道在啟動時執行自己的架構遷移,因此資料庫角色需要建立和更改表的權限;請參閱
store。3
寫入 gateway.yaml
機密透過 此配置足以使用預設 Amazon Bedrock 模型目錄進行有效的登入迴圈。執行後,透過
${ENV_VAR} 擴展讀取,因此檔案本身可以存在於版本控制中。使用在您的網路上解析為私有 IP 的 public_url 主機名,因為 /login 拒絕公開地址。最小配置有五個部分,其他每個欄位都有預設值:gateway.yaml
managed.policies 新增按群組 RBAC 和受管設定、透過 telemetry 的遙測扇出,以及多上游故障轉移、佈建輸送量 ARN 或非美國區域,透過 models。Amazon Bedrock 上游需要一個 AWS 主體,具有
bedrock:InvokeModel 和 bedrock:InvokeModelWithResponseStream 在 inference-profile/us.anthropic.* ARN 和基礎 foundation-model/anthropic.* ARN 上。它也需要 Anthropic 的一次性使用案例表單從 Bedrock 主控台的模型目錄提交給帳戶。透過 EKS 上的 IRSA、ECS 任務角色或 EC2 執行個體設定檔提供認證,而不是靜態金鑰。upstreams 參考具有完整的 IAM 詳細資訊、跨雲認證矩陣和其他提供商的 auth 區塊。4
執行它
圍繞滿足映像要求的 閘道是一個單一 Linux 二進位檔,讀取配置,連接到 Postgres 並應用其架構遷移,針對您的 IdP 執行 OIDC 發現,建立上游用戶端,並開始監聽。啟動對配置、Postgres 連接、OIDC 發現和上游用戶端構造是失敗關閉的。如果其中任何一個無法到達或配置錯誤,閘道會以錯誤退出,而不是以降級狀態提供流量。成功啟動不驗證推理路徑,因為 Amazon Bedrock 和 Google Cloud 的 Agent Platform 執行個體認證在第一個請求時解析,而不是在啟動時。監視 stderr 以了解啟動序列。日誌行使用格式 閘道也會記錄一個警告,
claude 二進位檔建立容器映像,然後與 Postgres 一起執行它。Compose 檔案將映像參考為 registry.example.com/claude-gateway:2.1.198;替換您自己的登錄和映像標籤:docker-compose.yaml
[gateway] <timestamp> <level> <message>,稽核事件是帶有 evt 欄位的單行 JSON,啟動橫幅(下面省略)在遷移和監聽行之間列印。新資料庫為每個架構遷移列印一個 migration N applied 行;已遷移的資料庫不列印任何行。您應該按順序看到:access_control.allow_cidrs 為空。這在這裡是預期的,因為在您設定允許清單之前,沒有任何東西限制閘道提供的用戶端地址。access_control 參考具有建議的範圍。如果啟動在 claude gateway listening on 行之前退出,stderr 的最後一行命名問題:- 無法到達的 Postgres
- 沒有 DDL 權限的 Postgres 角色
- 無法到達或無效的 OIDC 發現文件
- 配置架構違規,帶有違規欄位路徑
claude gateway --config gateway.yaml 執行二進位檔。將 public_url 設定為入口來源,並將 listen 綁定到環回或叢集內部地址。5
驗證身份驗證表面
三個檢查確認閘道可以在將其交給開發人員之前驗證真實使用者。示例使用閘道的公開 URL;對於沒有入口的本地 Compose 設定,在前兩個檢查中替換 回應包括其他欄位,例如 第三,透過在瀏覽器中開啟
http://localhost:8080。第三個檢查開啟 verification_uri_complete,它從 public_url 建立,因此對於本地 Compose,在 gateway.yaml 中設定 public_url: http://localhost:8080,並在步驟 1 的 OAuth 用戶端上新增 http://localhost:8080/oauth/callback 作為第二個重定向 URI,因為閘道從 public_url 建立 IdP redirect_uri。驗證連結然後在您的本地瀏覽器中開啟。在 Windows PowerShell 中,執行 curl.exe;裸 curl 是 Invoke-WebRequest 的別名,拒絕這些標誌。首先,獲取發現文件,確認閘道已啟動、配置有效且所有啟動檢查已通過:response_types_supported 和 scopes_supported。其次,請求裝置授權,確認裝置登入流程有效且 Postgres 可到達且可寫:verification_uri_complete 並確認代碼來測試瀏覽器部分。您應該被重定向到您的 IdP 的登入頁面,登入後,返回閘道並顯示已登入確認。使用第一個失敗的檢查來定位問題:- 第一個檢查失敗:啟動未完成;檢查 stderr
- 第二個檢查失敗:Postgres 無法從閘道到達或角色無法寫入;檢查連接字串和授予
- 第三個檢查無法到達 IdP:檢查 IdP 的重定向 URI 是否完全符合
https://<gateway>/oauth/callback - 第三個檢查到達 IdP 但以錯誤反彈:讀取閘道的稽核日誌,它記錄每個身份驗證拒絕及其原因,例如
email domain not allowed
連接開發人員
開發人員從自己的筆記型電腦使用一次瀏覽器登入進行連接,使用他們的公司工作帳戶。他們不需要 claude.ai 帳戶、API 金鑰或訂閱,因為對模型的請求透過使用組織上游認證的閘道進行。連接由您透過 MDM 推送的用戶端側受管設定驅動,因此開發人員端沒有手動設定;本節涵蓋管理員配置的內容。 CLI 在首次連接時對閘道的 TLS 葉憑證進行指紋識別,並按主機名固定它。它在登入期間、無聲會話重新整理期間和受管設定擷取期間再次檢查該固定,而推論請求使用標準 TLS 驗證而不使用固定。透過 HTTPS Proxy 路由的請求會跳過固定檢查,因此將閘道主機新增至NO_PROXY 以保持它們直接。
發佈預期的 SHA-256 指紋以及閘道 URL,以便開發人員有可比較的內容。/login 提示顯示指紋的前 16 個字元作為小寫十六進位,無冒號。若要從憑證檔案以該形式列印完整指紋,請執行:
email 欄位,以命名登入使用的帳戶。當它這樣做時,開發人員在 Claude Code 儲存認證之前確認帳戶。確認登入後,/status 顯示帳戶。
確認需要開發人員機器上的 Claude Code v2.1.275 或更新版本;低於該版本的用戶端會忽略該欄位。claude 二進位檔中的閘道伺服器不返回該欄位,因此其登入完成時沒有確認。
開發人員登入後,模型選擇器顯示其 availableModels 允許清單中的模型。受管設定在啟動時應用並每小時重新整理一次,遙測路由到您的收集器。
會話在 ttl_hours 過期前無聲重新整理。當 IdP 取消佈建後重新整理失敗時,Claude Code 會提示開發人員再次登入。
設定閘道 URL
三個金鑰進入您透過 MDM 或直接在磁碟上部署的每個 OS 受管設定檔。forceLoginMethod 和 forceLoginGatewayUrl 在雲端閘道螢幕上直接開啟 /login,URL 已填入,而 parentSettingsBehavior: "merge" 讓 Claude Desktop 將閘道的出口允許清單傳遞給它啟動的 Claude Code 會話,詳見將原則傳遞給 Claude Desktop 會話:
CLAUDE_CODE_USE_BEDROCK)選擇雲端提供商的開發人員不需要閘道登入。
開發人員無法手動設定此項。登入選擇器中沒有閘道選項,forceLoginGatewayUrl 在開發人員自己的設定檔中被忽略。forceLoginMethod 單獨,沒有 URL,將開發人員留在「聯絡您的 IT 管理員」訊息處。登入金鑰應該在您推送到機器的檔案中,而不是在閘道的 managed.policies[].cli 區塊中,該區塊僅到達已連接的用戶端。
允許公開位址空間上的閘道
某些組織從他們擁有的公開 IPv4 區塊(例如電信業者自己的位址空間或舊版/8)對其內部網路進行編號,因此他們的閘道無法擁有私人位址。在 gatewayInternalNetworks 受管設定中列出這些區塊。/login 然後在開發人員的機器從同一區塊內的位址連接到它時,接受位於列出區塊內的閘道。這需要開發人員機器上的 Claude Code v2.1.268 或更新版本;較早的版本忽略該金鑰並應用私人位址規則。
將金鑰新增至與登入金鑰相同的受管設定來源:受管設定檔、MDM 設定檔或登錄原則。Claude Code 在使用者、專案和伺服器受管設定中忽略它。
此範例宣告一個區塊。將 203.0.113.0/24 替換為您自己的區塊。它是文件範圍,Claude Code 拒絕這些。
/login 驗證清單,然後才聯絡任何閘道:
- 每個項目是一個 IPv4 區塊,寫成其第一個位址和
/8到/32的前綴。 - 清單最多包含四個區塊,沒有兩個重疊。
- 沒有區塊與私人位址空間重疊:
10.0.0.0/8、172.16.0.0/12、192.168.0.0/16、127.0.0.0/8、169.254.0.0/16和100.64.0.0/10。/login已經在沒有此金鑰的情況下接受那裡的閘道。 - 沒有區塊與永遠不是組織網路的空間重疊:
198.18.0.0/15和192.0.0.0/24,VPN 和 NAT64 用戶端將其作為本地位址;文件範圍192.0.2.0/24、198.51.100.0/24和203.0.113.0/24;以及保留範圍0.0.0.0/8、192.88.99.0/24和多播224.0.0.0/4。您可以在240.0.0.0/4內宣告區塊,某些大型網路將其用作內部單播空間。
managed-settings.json 及其 managed-settings.d/ 插入檔案的區塊合併為一個清單,這些限制適用於合併清單。若要縮小區塊,請替換其項目而不是在插入中新增第二個重疊的;/login 拒絕重疊。
如果項目違反規則,或值不是字串清單,Claude Code 在該機器上拒絕每個新的閘道登入並在訊息中命名問題。登入到私人位址上的閘道也會失敗,現有登入保持有效。在部署前在一台機器上嘗試該值。Claude Code 也在它報告的無效受管設定中列出錯誤類型的值。
使用有效清單,/login 對位址位於列出區塊內的閘道應用三個檢查:
- 閘道主機名解析到的每個位址都位於該一個區塊內。Claude Code 拒絕也在其外有記錄的名稱,包括私人和 IPv6 位址。
- 開發人員的機器從同一區塊內連接。Claude Code 拒絕 NAT 後面、容器或 WSL2 內或其位址池位於區塊外的 VPN 上的機器,並命名機器連接的位址。
- 連接是直接的。如果
HTTPS_PROXY適用於閘道主機,/login拒絕並命名要新增的NO_PROXY項目。
將原則傳遞給 Claude Desktop 會話
Claude Desktop 在嵌入式 Claude Code 會話上執行其 Cowork 和 Code 標籤,以及當您啟用它時的 Chat 標籤,並透過閘道傳送其模型請求。它將原則傳遞給每個會話,從閘道在/user/bootstrap 提供的配置建立:模型允許清單、禁用的工具,以及從匹配原則的 cli 區塊衍生的出口允許清單,加上desktop 覆蓋。
其他 cli 金鑰,例如 hooks、env 和範圍權限規則(如 Bash(npm *)),僅到達透過 /login 登入的用戶端。Claude Desktop 從其自己的受管配置讀取閘道 URL,並使用其自己的流程登入,與設定閘道 URL 中的 forceLoginMethod 和 forceLoginGatewayUrl 金鑰分開。
由啟動程序傳遞的設定是父設定。Claude Code 在任何具有管理員部署的受管來源的機器上忽略父設定,除非傳遞原則的來源設定 parentSettingsBehavior: "merge"。
哪些機器需要選擇加入
僅執行 Claude Desktop 的機器需要它。Claude Desktop 將模型清單和禁用工具清單應用於嵌入式會話本身,但出口允許清單僅作為父設定到達它們,形式為WebFetch 網域規則和沙箱網路規則。沒有選擇加入,這些會話執行時沒有出口限制,沒有任何警告。閘道仍然拒絕原則不授予的模型的推論請求。
開發人員透過 /login 登入的機器不需要它;每個 Claude Code 會話從閘道擷取其原則。
其policyHelper提供受管設定的機隊無法使用它:Claude Code 在這些機隊上永遠不會合併父設定,因為它僅從助手的輸出讀取受管設定。
設定選擇加入
從設定閘道 URL 部署受管設定片段,將其鏡像到任何優先於檔案的用戶端側來源,然後驗證。1
在受管設定檔中部署選擇加入
上面的片段已經包含
parentSettingsBehavior: "merge",因此您推送到機器的檔案攜帶它。2
將片段鏡像到任何優先於檔案的來源
3
檢查選定的來源
在僅執行 Claude Desktop 的機器上,呼叫 Agent SDK 的
resolveSettings() 並在其 sources 清單中的 managed 項目上讀取 policyOrigin。該值命名選定的用戶端側來源,plist、hklm 或 file,這是必須攜帶片段的來源。Claude Desktop 的嵌入式會話不擷取閘道原則,因此閘道的 cli 區塊永遠不會計為它們的選定來源。限制父設定
一旦您部署parentSettingsBehavior: "merge",任何啟動 Claude Code 的主機程序都可以提供父設定,不僅是 Claude Desktop,還有 Agent SDK 應用程式或 IDE 擴充功能。
Claude Code 根據限制性金鑰的允許清單篩選父設定,但某些允許的金鑰可以授予存取權而不是限制它。除非您設定 allowManaged*Only 鎖定,主機提供的權限允許規則和沙箱允許清單仍然適用。您的原則的拒絕和詢問規則無論如何都保持有效;它們在任何允許規則之前進行評估。
Claude Code 以剝離形式轉發父提供的 sandbox.credentials 項目:
deny項目:僅使用其path或name和模式轉發。- 具有
mode: mask的檔案項目:轉發為僅限哨兵,作為整個檔案遮罩,其injectHosts是空清單,因此代理在任何平台上永遠不會用真實值替換父提供的項目。所有結構化遮罩欄位也被刪除,因此父提供的擷取模式無法取代另一個來源為相同路徑設定的更嚴格遮罩。 - 具有
mode: mask的envVars項目:不轉發。deny是父通道可以透過envVars項目表達的唯一限制。 awsPairs和sigv4:轉發限制專用。從sigv4,僅保留deny值,定義sigv4區塊的父會將所有三種請求形式streaming、presigned和sigv4a固定為deny。awsPairs對永遠不會以可重新簽署的形式轉發;命名其中一個常規 AWS 變數的對被替換為保持AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY和AWS_SESSION_TOKEN自動配對被抑制的惰性項目。
部署鎖定
為了保持父設定盡可能接近限制專用,如篩選器支援的那樣,將所有五個allowManaged*Only 鎖定和它們管理的允許清單新增至與合併選擇加入相同的來源:
cli 區塊中,並保持此檔案部署,因為永遠不連接的機器(包括僅執行 Claude Desktop 的機器)僅從檔案獲取其原則。
跨來源的鎖定行為
設定一個鎖定不會限制其他鎖定;每個金鑰都記錄在設定參考中。 從低於獲勝者的管理員來源,兩個沙箱鎖定仍然適用,allowManagedPermissionRulesOnly 仍然阻止父提供的允許規則和 additionalDirectories。在 Claude Code v2.1.273 或更新版本上,MCP 伺服器鎖定也從低於獲勝者的來源應用,當它開啟時,受管 allowedMcpServers 清單來自設定一個的最高優先級管理員來源。
hooks 鎖定和 allowManagedPermissionRulesOnly 對開發人員自己規則的影響預設需要獲勝的來源;在Claude Code 如何合併受管來源中的 managedSourcesBehavior 合併選擇加入下,Claude Code 應用任何來源為每個鎖定設定的最嚴格值。在 policyHelper 機隊上,鎖定僅從助手的輸出讀取。
每個鎖定使 Claude Code 忽略開發人員自己的該設定項目,因此在鎖定旁邊包含您組織的允許清單:
- 網路網域:使用空受管網域清單鎖定會阻止所有沙箱出站流量。
- MCP 伺服器:使用沒有任何管理員來源或父提供的設定中的
allowedMcpServers的鎖定會載入deniedMcpServers不阻止的每個伺服器。 - 讀取路徑:
allowRead項目僅重新允許denyRead區域內的路徑,因此將它們與受管denyRead配對。
鎖定不涵蓋的設定
六個父提供的設定即使設定了所有五個鎖定也會通過篩選器。在預設首次獲勝設定下,阻止父項的管理員值是最高優先級管理員來源中的值,除了allowedMcpServers 當MCP 伺服器鎖定開啟時。在 managedSourcesBehavior 合併選擇加入下,Claude Code 如何合併受管來源說明哪個來源的值改為適用。
forceLoginOrgUUID:當最高優先級管理員來源未設定組織 UUID 時,Claude Code 會接受父提供的值。閘道登入不檢查此金鑰。最高優先級管理員來源中的組織 UUID 會阻止父項的值,是 Claude Code 強制執行的值。allowedMcpServers:當沒有管理員清單生效時,Claude Code 會接受父提供的允許清單。allowManagedMcpServersOnly不會阻止它,因為鎖定強制執行無論哪個清單獲勝作為受管值,包括當沒有管理員來源提供清單時的父提供清單。最高優先級管理員來源中的清單會阻止父項的並是 Claude Code 強制執行的清單,因此在那裡設定allowedMcpServers,在鎖定旁邊。在 v2.1.223 之前,任何管理員來源中任一金鑰的值都會阻止父項的。availableModels:當獲勝的受管來源未設定模型清單時,Claude Code 會接受父提供的模型清單。如果您的機隊限制模型,在獲勝的來源中設定availableModels。strictKnownMarketplaces:當獲勝的受管來源未設定外掛程式市集允許清單時,Claude Code 會接受父提供的外掛程式市集允許清單。如果您的機隊限制市集,在獲勝的來源中設定strictKnownMarketplaces。需要 Claude Code v2.1.282 或更新版本。blockedMarketplaces:父提供的市集封鎖清單通過並新增至任何受管來源設定的封鎖清單,因為封鎖清單只能進一步限制。需要 Claude Code v2.1.282 或更新版本。strictPluginOnlyCustomization:此金鑰無論任何鎖定都通過篩選器,它使 Claude Code 忽略開發人員自己的自訂,包括保護性 hooks。沒有鎖定阻止它。
連接 Claude Desktop
Claude Desktop透過不同的 MDM 金鑰連接到相同的閘道:在 Claude Desktop 的受管配置中將bootstrapUrl 設定為 <listen.public_url>/user/bootstrap,並使用 desktop 金鑰選擇加入使用者的原則。Claude Desktop 覆蓋涵蓋兩個部分。需要閘道伺服器上的 Claude Code v2.1.203 或更新版本。
Claude Desktop 透過閘道的身份提供者使用相同的瀏覽器 SSO 步驟簽署開發人員,然後從閘道而不是從 Anthropic 擷取其配置。模型存取和原則遵循與 CLI 相同的每個群組規則。同時使用 CLI 和 Claude Desktop 的開發人員分別登入每個;閘道會話不在它們之間共享。
連接後,Claude Desktop 從每個啟用的標籤透過閘道傳送模型請求。它預設顯示 Cowork 和 Code 標籤。若要同時啟用 Chat 標籤,在 Claude Desktop 的受管配置中將 chatTabEnabled 設定為 true,或在執行 Claude Code v2.1.227 或更新版本的閘道上的原則的 desktop 區塊中。
CI 管道和遠端機器
沒有無人值守管道的服務令牌流程。閘道登入始終執行瀏覽器裝置流程,因此沒有開發人員批准登入的 CI 作業無法進行身份驗證;針對您的提供商直接配置這些。 開發人員登入後,該機器上的每個 Claude Code 會話都使用閘道會話,包括非互動式claude -p 執行和由 Agent SDK 啟動的會話。Claude Code 將閘道原則應用於每個會話。
裝置流程將輪詢 CLI 與批准瀏覽器分開,因此沒有顯示的遠端開發框仍然有效:開發人員透過 SSH 在遠端機器上執行 /login,並在其筆記型電腦上的瀏覽器中開啟驗證連結。
在開發人員上強制執行的內容
這些保證適用於每個透過/login 登入的會話。Claude Desktop 啟動的嵌入式會話按將原則傳遞給 Claude Desktop 會話中所述獲取其原則,遙測項目說明其匯出的去向。
- 模型存取:對於原則不授予的模型的請求返回 400,
/model選擇器被篩選為原則的availableModels允許清單。在原則中設定enforceAvailableModels: true,以便預設選項解析為availableModels內的模型,而不是 Claude Code 的內建預設值;沒有它,預設保持可選擇,如果該模型未被授予,則在請求時被拒絕。 - 遙測目的地:在透過
/login登入的會話中,CLI 將其 OTLP/HTTP 匯出傳送到閘道,而不是本地設定的OTEL_EXPORTER_OTLP_ENDPOINT,除非原則將您的收集器命名為端點。閘道將它接收的匯出轉發到telemetry.forward_to中的目的地。- 在Claude Desktop 啟動的嵌入式會話中,CLI 將其匯出傳送到配置的
OTEL_EXPORTER_OTLP_ENDPOINT。CLI 僅當該端點指向閘道本身時才將閘道會話令牌附加到這些匯出。 - 沒有為信號配置目的地時,閘道接受並丟棄它。
- 如果您已經直接收集 Claude Code 遙測,將您的收集器新增為
forward_to目的地,或在原則中命名它以跳過轉發。
- 在Claude Desktop 啟動的嵌入式會話中,CLI 將其匯出傳送到配置的
- 認證:閘道令牌是會話的唯一認證。Anthropic 設定檔和任何較早的 claude.ai 登入在登入時被忽略,因此開發人員不需要先登出 claude.ai。對於配置的
ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN或apiKeyHelper認證,請參閱管理員原則要求雲端閘道登入。 - 受管設定:鎖定的金鑰無法在本地覆蓋。CLI 在啟動時應用原則,並在每個每小時輪詢時應用變更,除了僅在下次啟動時應用的變更。
- 閘道無法到達時啟動:已登入的會話在啟動時約 10 秒後以錯誤退出,而不是在沒有其設定的情況下啟動。
- 閘道結束會話後啟動:請參閱強制執行故障關閉啟動,了解哪些啟動在登出閘道的情況下開啟,哪些在閘道以
401回答時退出。 - 取消佈建:其使用者在 IdP 中被禁用的會話在下一次刷新失敗時在
ttl_hours內過期。 - 登出:
/logout刪除開發人員機器上的閘道認證。- 當閘道的探索文件在閘道 URL 的自己的配置、主機和連接埠上宣傳
revocation_endpoint時,/logout也將儲存的令牌傳送到該端點,以便閘道可以在其端結束會話。請求是盡力而為,因此登出在開發人員的機器上完成,無論端點是否回答。撤銷需要開發人員機器上的 Claude Code v2.1.275 或更新版本。 claude二進位檔中的閘道伺服器不宣傳任何,因此從它登出僅在開發人員的機器上結束會話。若要強制會話在伺服器端退出,請參閱 JWT 祕密輪換。
- 當閘道的探索文件在閘道 URL 的自己的配置、主機和連接埠上宣傳
組織可以看到什麼
使用情況遙測攜帶開發人員的身份、令牌計數、模型和延遲到組織的收集器。閘道不記錄或儲存提示或完成內容。是否收集更豐富的遙測(例如日誌和追蹤),可能包括命令和檔案路徑,是組織的按目的地選擇。可用性和限制
該表涵蓋當開發人員透過閘道連接時哪些 Claude Code 功能有效,以及閘道伺服器本身支援什麼。如果不支援某些內容,「備註」欄提供替代方案。 閘道傳遞 CLI 發送到每個上游的anthropic-beta 值,因此操作員不維護測試版允許清單。對於 Amazon Bedrock(忽略標頭),閘道將值移到請求正文的 anthropic_beta 欄位;其他上游接收按發送方式發送的標頭。
後續步驟
快速入門讓您在 Docker Compose 下執行最小配置。要進一步進行:- 擴展
gateway.yaml超越最小配置,例如新增按群組 RBAC、多上游故障轉移或遙測目的地。配置參考涵蓋每個選項。 - 從 Compose 移動到 Kubernetes 或 Cloud Run 上的生產部署,正確設定您的 IdP,並檢查安全模型。部署和操作指南涵蓋每個 IdP 的設定、容器映像要求、健康探針和故障排除。
- 對個別開發人員或群組設定支出上限,以便失控的工作負載無法消耗您的整個承諾。支出限制涵蓋管理員 API 以及強制執行的工作方式。
- 有關 AWS 上的完整實踐示例,包括 ECS Fargate 或 EKS、Amazon RDS 和 Secrets Manager,請參閱在 AWS 上部署。
- 有關 Google Cloud 上的完整實踐示例,包括 Cloud Run、Cloud SQL 和 Secret Manager,請參閱在 Google Cloud 上部署。