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 資料庫
使用 PostgreSQL 11 或更新版本。最小的受管層級即已足夠。閘道在啟動時執行自己的 schema 遷移,因此資料庫角色需要建立和更改表的權限;請參閱
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 並套用其 schema 遷移,針對您的 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,啟動橫幅(下面省略)在遷移和監聽行之間列印。新資料庫為每個 schema 遷移列印一個 migration N applied 行;已遷移的資料庫不列印任何行。您應該按順序看到:access_control.allow_cidrs 為空。這在這裡是預期的,因為在您設定允許清單之前,沒有任何東西限制閘道提供的用戶端地址。access_control 參考具有建議的範圍。如果啟動在 claude gateway listening on 行之前退出,stderr 的最後一行命名問題:- 無法到達的 Postgres
- 沒有 DDL 權限的 Postgres 角色
- 無法到達或無效的 OIDC 發現文件
- 設定 schema 違規,帶有違規欄位路徑
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 代理伺服器路由的請求會跳過固定檢查,因此將閘道主機新增至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 受管設定檔。對於沒有受管設定的機器,請改為參閱在使用者設定中設定閘道 URL。forceLoginMethod 和 forceLoginGatewayUrl 在雲端閘道畫面上直接開啟 /login,URL 已填入,而 parentSettingsBehavior: "merge" 讓 Claude Desktop 將閘道的出口允許清單傳遞給它啟動的 Claude Code 工作階段,詳見將原則傳遞給 Claude Desktop 工作階段:
CLAUDE_CODE_USE_BEDROCK)選擇雲端提供商的開發人員不需要閘道登入。
登入選擇器中沒有閘道選項,而在受管設定中單獨使用 forceLoginMethod 而沒有 URL,會讓開發人員停留在「聯絡您的 IT 管理員」訊息處。登入設定鍵應該在您推送到機器的檔案中,而不是在閘道的 managed.policies[].cli 區塊中,該區塊僅到達已連接的用戶端。
在使用者設定中設定閘道 URL
在沒有受管設定的機器上,請讓每位開發人員將forceLoginMethod 和 forceLoginGatewayUrl 新增至其自己的使用者設定檔 ~/.claude/settings.json。這需要開發人員機器上的 Claude Code v2.1.295 或更新版本。此範例指定位於 claude-gateway.internal.example.com 的閘道:
/login 時,雲端閘道畫面會以該位址開啟,開發人員按 Enter 進行連接。首次連接 TLS 指紋提示仍然出現。以此方式設定的設定鍵適用下列限制:
- 僅限使用者設定:Claude Code 從
~/.claude/settings.json讀取這兩個設定鍵,而不是從專案的.claude/settings.json或.claude/settings.local.json讀取。 - 受管設定會將其關閉:一旦管理員的設定透過受管設定檔、macOS plist 或 Windows HKLM 原則,或原則 helper 到達機器,Claude Code 會忽略使用者設定中指定的閘道。
允許您擁有的公開位址空間上的閘道
某些組織從他們擁有的公開 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 或 code 區塊衍生的出口允許清單,加上 desktop 覆蓋。
該區塊的其他設定鍵,例如 hook、env 和範圍權限規則(如 Bash(npm *)),會到達透過 /login 登入的用戶端。在 code 下,當 Code 標籤的條件成立時,它們也會到達 Code 標籤的工作階段。它們不會到達 Cowork 或 Chat 工作階段。Claude Desktop 從其自己的受管設定讀取閘道 URL,並使用其自己的流程登入,與設定閘道 URL 中的 forceLoginMethod 和 forceLoginGatewayUrl 設定鍵分開。
由啟動程序傳遞的設定是父設定。Claude Code 在任何具有管理員部署之受管來源的機器上忽略父設定,除非傳遞原則的來源設定了 parentSettingsBehavior: "merge"。
哪些機器需要選擇加入
僅執行 Claude Desktop 的機器需要它。Claude Desktop 會自行將模型清單和停用工具清單套用於嵌入式工作階段,但出口允許清單僅作為父設定到達它們,形式為WebFetch 網域規則和沙箱網路規則。沒有選擇加入時,這些工作階段執行時沒有出口限制,且不會有任何警告。閘道仍然拒絕原則未授予之模型的推論請求。
外掛市集允許清單也僅作為父設定到達嵌入式工作階段。當您在 Claude Desktop 的受管設定中關閉使用者新增的外掛市集時,Claude Desktop 2.16120.0 或更新版本會隱藏您的組織未佈建的市集,並拒絕從它們安裝。為了阻止嵌入式工作階段載入已從這些市集安裝的外掛,它會將 strictKnownMarketplaces 清單作為父設定傳送給它們。沒有選擇加入時,Claude Code 會忽略該清單,這些外掛會繼續載入。
開發人員透過 /login 登入的機器不需要它;每個 Claude Code 工作階段從閘道擷取其原則。
由 policyHelper 提供受管設定的機隊無法使用它:Claude Code 在這些機隊上永遠不會合併父設定,因為它僅從 helper 的輸出讀取受管設定。
設定選擇加入
部署設定閘道 URL 中的受管設定片段,將其鏡像到任何優先於該檔案的用戶端側來源,然後驗證。1
在受管設定檔中部署選擇加入
上面的片段已經包含
parentSettingsBehavior: "merge",因此您推送到機器的檔案會攜帶它。2
將片段鏡像到任何優先於該檔案的來源
Claude Code 僅從選定的來源讀取
parentSettingsBehavior。將任何原則設定鍵新增至某個來源可能會使該來源成為選定的來源,因此在用戶端側來源中,請鏡像整個片段,而不僅僅是 parentSettingsBehavior。用戶端側受管設定涵蓋透過群組原則或組態設定檔傳遞原則的機隊。macOS 上的受管偏好設定 plist 或 Windows 上的 HKLM 原則優先於 managed-settings.json 檔案,而閘道自己的遠端受管設定優先於兩者,因此在登入閘道的機器上,也要在閘道原則的 cli 或 code 區塊中設定 parentSettingsBehavior。3
檢查選定的來源
在僅執行 Claude Desktop 的機器上,呼叫 Agent SDK 的
resolveSettings(),並讀取其 sources 清單中 managed 項目上的 policyOrigin。該值指出選定的用戶端側來源:plist、hklm 或 file,這就是必須攜帶片段的來源。Cowork 和 Chat 工作階段不擷取閘道原則,因此閘道的區塊不是它們的選定來源。當原則的設定位於 code 下且 Code 標籤的條件成立時,Code 標籤工作階段會擷取它。此時閘道的 code 設定即為該工作階段的選定來源。限制父設定
一旦您部署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 或 code 區塊中,並保持此檔案的部署,因為永遠不連接的機器僅從該檔案取得其原則。
跨來源的鎖定行為
設定一個鎖定不會限制其他鎖定;每個設定鍵都記錄在設定參考中。 來自低於獲勝來源的管理員來源時,兩個沙箱鎖定仍然適用,且allowManagedPermissionRulesOnly 仍然阻擋父提供的允許規則和 additionalDirectories。在 Claude Code v2.1.273 或更新版本上,MCP 伺服器鎖定也會從低於獲勝來源的來源套用,且在其開啟時,受管 allowedMcpServers 清單來自有設定該清單的最高優先級管理員來源。
hook 鎖定以及 allowManagedPermissionRulesOnly 對開發人員自己規則的影響,預設需要來自獲勝的來源;在 Claude Code 如何合併受管來源中的 managedSourcesBehavior 合併選擇加入下,Claude Code 會對每個鎖定套用任何來源設定的最嚴格值。在 policyHelper 機隊上,Claude Code 僅從 helper 的輸出讀取鎖定。
每個鎖定都會使 Claude Code 忽略開發人員自己針對該設定的項目,因此請在鎖定旁邊包含您組織的允許清單:
- 網路網域:以空的受管網域清單鎖定會阻擋所有沙箱出站流量。
- MCP 伺服器:在任何管理員來源或父提供的設定中都沒有
allowedMcpServers的情況下鎖定,會載入deniedMcpServers未阻擋的每個伺服器。 - 讀取路徑:
allowRead項目僅重新允許denyRead區域內的路徑,因此請將它們與受管denyRead配對。
鎖定不涵蓋的設定
即使設定了所有五個鎖定,這些父提供的設定仍會通過篩選器:forceLoginOrgUUID:當最高優先級管理員來源未設定組織 UUID 時,Claude Code 會接受父提供的值。閘道登入不檢查此設定鍵。最高優先級管理員來源中的組織 UUID 會阻擋父項的值,且是 Claude Code 強制執行的值。allowedMcpServers:當沒有管理員清單生效時,Claude Code 會接受父提供的允許清單。allowManagedMcpServersOnly不會阻擋它,因為鎖定會將獲勝的清單作為受管值強制執行,包括在沒有管理員來源提供清單時的父提供清單。最高優先級管理員來源中的清單會阻擋父項的清單,且是 Claude Code 強制執行的清單,因此請在那裡、在鎖定旁邊設定allowedMcpServers。在 v2.1.223 之前,任何管理員來源中任一設定鍵的值都會阻擋父項的值。availableModels:當獲勝的受管來源未設定模型清單時,Claude Code 會接受父提供的模型清單。如果您的機隊限制模型,請在獲勝的來源中設定availableModels。allowedProviders:當獲勝的受管來源未設定 API 提供商允許清單時,Claude Code 會接受父提供的 API 提供商允許清單。如果您的機隊限制開發人員可以使用的 API 提供商,請在獲勝的來源中設定allowedProviders。需要 Claude Code v2.1.285 或更新版本。strictKnownMarketplaces:當獲勝的受管來源未設定外掛市集允許清單時,Claude Code 會接受父提供的外掛市集允許清單。Claude Desktop 2.16120.0 或更新版本在其受管設定關閉使用者新增的外掛市集時會傳送一個。如果您的機隊限制市集,請在獲勝的來源中設定strictKnownMarketplaces。需要 Claude Code v2.1.282 或更新版本。blockedMarketplaces:父提供的市集封鎖清單會通過,並新增至任何受管來源設定的封鎖清單,因為封鎖清單只能進一步限制。需要 Claude Code v2.1.282 或更新版本。strictPluginOnlyCustomization:無論任何鎖定,此設定鍵都會通過篩選器,且它會使 Claude Code 忽略開發人員自己的自訂,包括保護性 hook。沒有鎖定能阻擋它。
allowedMcpServers 除外。在 managedSourcesBehavior 合併選擇加入下,Claude Code 如何合併受管來源說明改為套用哪個來源的值。
連接 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 管道和遠端機器
無人值守的管道沒有服務 token 流程。閘道登入始終執行瀏覽器裝置流程,因此沒有開發人員核准登入的 CI 作業無法進行身分驗證;請直接針對您的提供商設定這些作業。 開發人員登入後,該機器上的每個 Claude Code 工作階段都會使用閘道工作階段,包括非互動式claude -p 執行和由 Agent SDK 啟動的工作階段。Claude Code 將閘道原則套用於每個工作階段。
裝置流程將輪詢的 CLI 與核准的瀏覽器分開,因此沒有顯示器的遠端開發機器仍然可以運作:開發人員透過 SSH 在遠端機器上執行 /login,並在其筆記型電腦上的瀏覽器中開啟驗證連結。
對開發人員強制執行的內容
這些保證適用於每個透過/login 登入的工作階段。Claude Desktop 啟動的嵌入式工作階段按照將原則傳遞給 Claude Desktop 工作階段中所述取得其原則,遙測項目則說明其匯出的去向。
- 模型存取:對原則未授予之模型的請求會返回 400,且
/model選擇器會篩選為原則的availableModels允許清單。這包括工作階段在開發人員選擇模型之前啟動時使用的模型;請參閱在原則允許的模型上啟動工作階段。 - 遙測目的地:在透過
/login登入的工作階段中,CLI 將其 OTLP/HTTP 匯出傳送到閘道,而不是本機設定的OTEL_EXPORTER_OTLP_ENDPOINT,除非原則將您的收集器指定為端點。閘道將它接收的匯出轉發到telemetry.forward_to中的目的地。- 在 Claude Desktop 啟動的嵌入式工作階段中,CLI 將其匯出傳送到設定的
OTEL_EXPORTER_OTLP_ENDPOINT。僅當該端點指向閘道本身時,CLI 才會將閘道工作階段 token 附加到這些匯出。 - 當某個信號沒有設定目的地時,閘道會接受並丟棄它。
- 如果您已經直接收集 Claude Code 遙測,請將您的收集器新增為
forward_to目的地,或在原則中指定它以跳過轉發。
- 在 Claude Desktop 啟動的嵌入式工作階段中,CLI 將其匯出傳送到設定的
- 憑證:閘道 token 是工作階段的唯一憑證。登入期間會忽略 Anthropic 設定檔和任何較早的 claude.ai 登入,因此開發人員不需要先登出 claude.ai。對於設定的
ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN或apiKeyHelper憑證,或由較早的 Claude Console 登入所儲存的 API 金鑰,請參閱管理員原則要求雲端閘道登入。 - 受管設定:鎖定的設定鍵無法在本機覆蓋。CLI 在啟動時套用原則,並在每小時輪詢時套用變更,但僅在下次啟動時套用的變更除外。
- 閘道無法到達時啟動:已登入的工作階段會在啟動時約 10 秒後以錯誤結束,而不是在沒有其設定的情況下啟動。
- 閘道結束工作階段後啟動:請參閱強制執行故障關閉啟動,了解哪些啟動會在登出閘道的狀態下開啟,哪些會在閘道以
401回應時結束。 - 取消佈建:使用者在 IdP 中被停用的工作階段,會在下一次重新整理失敗時於
ttl_hours內過期。 - 登出:
/logout會刪除開發人員機器上的閘道憑證。- 當閘道的探索文件在與閘道 URL 相同的配置、主機和連接埠上公告
revocation_endpoint時,/logout也會將儲存的 token 傳送到該端點,以便閘道可以在其端結束工作階段。此請求為盡力而為,因此無論端點是否回應,登出都會在開發人員的機器上完成。撤銷需要開發人員機器上的 Claude Code v2.1.275 或更新版本。 claude二進位檔中的閘道伺服器不公告任何撤銷端點,因此從它登出僅會在開發人員的機器上結束工作階段。若要在伺服器端強制結束工作階段,請參閱 JWT 祕密輪換。
- 當閘道的探索文件在與閘道 URL 相同的配置、主機和連接埠上公告
組織可以看到什麼
使用情況遙測會將開發人員的身分、token 計數、模型和延遲傳送到組織的收集器。閘道不會記錄或儲存提示詞或完成內容。是否收集更豐富的遙測(例如日誌和追蹤,可能包括命令和檔案路徑),是組織的按目的地選擇。可用性和限制
該表涵蓋當開發人員透過閘道連接時哪些 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 上部署。