本 Workstation 技術簡報涵蓋智慧體 AI 安全與身份認證:透過 MCP(Model Context Protocol) 呼叫工具的企業智慧體,使用 OAuth 2.1 加以保護;將高風險 MCP 端點置於 VPN / 私有網路 之後;並用 HashiCorp Vault 管理工具憑證——動態金鑰、租約、自動輪換與即時撤銷。文中推薦與行業對齊的 Claude、OpenAI 和 Cursor 配置方案。
- 問題:使用靜態長期工具金鑰 + 公網 MCP = 憑證擴散與橫向移動。
- 認證:遠端 MCP = OAuth 2.1 資源伺服器 + RFC 9728 PRM + RFC 8707 受眾;PKCE 強制。
- 企業:優先透過企業 IdP 使用 MCP Enterprise-Managed Authorization(EMA / ID-JAG)。
- 網路:內部 MCP 與 Vault 部署在 VPN/私有鏈路;按工具配置出口白名單。
- 金鑰:Vault 動態金鑰 + 租約 TTL;自動輪換靜態角色;會話結束時撤銷。
- 分離:LLM 提供商 API 金鑰 != MCP 訪問令牌 != 後端工具金鑰。
來源:MCP Authorization、Vault 租約、Vault AI agent validated pattern、Claude connector auth。投產前請核驗最新廠商文件。
1. 企業智慧體威脅模型
智慧體是具有特權的自動化主體。典型失效模式:
- 金鑰擴散 — API 金鑰寫入 MCP JSON、將
.env提交到 git,或貼上到提示詞中。 - 令牌替換 — 為伺服器 A 簽發的訪問令牌被伺服器 B 接受(缺少受眾繫結)。
- 許可權過大的工具 — 同一會話中,一個 MCP 既能寫入生產資料庫又能開啟防火牆。
- 未經審計的 OBO — 智慧體行動未關聯到人類身份。
- 公網 MCP — 內部工具無需 VPN 或私有鏈路即可從網際網路訪問。
控制措施必須覆蓋身份(誰)、授權(哪些工具)、金鑰(用什麼憑證)以及網路(從何處)。
2. MCP 身份認證:行業標準
對於基於 HTTP 的遠端 MCP,規範與 OAuth 2.1 對齊:
- MCP 伺服器 = OAuth 資源伺服器;客戶端傳送
Authorization: Bearer。 - PKCE 強制;禁止隱式授權。
- 伺服器 MUST 釋出 Protected Resource Metadata(RFC 9728),以便客戶端發現授權伺服器。
- 使用 Resource Indicators(RFC 8707),使令牌受眾繫結到該 MCP 伺服器。
- Authorization Server Metadata(RFC 8414)和/或 OIDC 發現,用於瞭解 AS 能力。
- 在必須無需手動客戶端 ID 即可接入客戶端時,推薦 Dynamic Client Registration(RFC 7591)。
# Protected Resource Metadata (conceptual)
{
"resource": "https://mcp.internal.example/mcp",
"authorization_servers": ["https://auth.example.com"],
"scopes_supported": ["mcp:tools", "mcp:resources"]
}
STDIO / 本地 MCP 有所不同:優先使用由 Vault Agent 注入的環境憑證——不要對每個桌面工具強制瀏覽器 OAuth。遠端/公網 MCP 應實現 OAuth 2.1。
2.1 Enterprise-Managed Authorization(零接觸)
MCP Enterprise-Managed Authorization 擴充套件允許企業 IdP(Okta、Entra ID 等)在 SSO 時透過 ID-JAG(Identity Assertion JWT Authorization Grant)授予對已批准 MCP 伺服器的訪問,避免按伺服器反覆同意帶來的疲勞。請為組織範圍的 Claude / IDE / 智慧體機群採用 EMA。
3. VPN 與私有 MCP 整合
OAuth 對客戶端進行身份認證;它不能替代網路隔離。
- 將內部 MCP 伺服器與 Vault 託管在私有 CIDR(VPN、PrivateLink、Tailscale/WireGuard 網格或服務網格 mTLS)。
- 將 MCP 監聽器繫結到私有介面;除非產品有意麵向網際網路,否則阻止公網 443。
- 從智慧體執行時應用出口白名單:僅允許已批准的 API/MCP 主機。
- 平面分離:開發者筆記本透過企業 VPN 使用 Cursor;伺服器端智慧體位於 VPC,除已批准的 SaaS 外無網際網路 MCP。
模式:VPN 負責可達性 + OAuth 負責授權 + Vault 負責金鑰。
4. 面向智慧體金鑰的 HashiCorp Vault
靜態長期工具金鑰與智慧體爆炸半徑不相容。Vault 提供:
4.1 動態金鑰 + 租約
每個動態金鑰返回 lease_id 與 TTL。消費者必須續期(若允許)或在過期前請求替換。租約結束時,Vault 可在提供商處撤銷憑證。這強制簽入、改善審計日誌,並縮短暴露視窗。
4.2 自動輪換
對於靜態角色(例如帶 rotation_period 的資料庫密碼),Vault 按計劃輪換。Vault Agent 模板在生命週期接近結束時重新獲取(預設 lease_renewal_threshold 約為 TTL 的 0.9),並可在憑證變更時重啟子程序。
4.3 智慧體推薦 TTL
| 風險等級 | 示例 | TTL 指引 |
|---|---|---|
| 關鍵寫入 | 生產資料庫變更、IAM 管理 | 5–15 分鐘;工具結束時撤銷 |
| 讀取 / 預發 | 只讀副本、工單 API | 30–60 分鐘 |
| LLM 提供商金鑰 | OpenAI / Anthropic 組織金鑰 | 由 Vault 管理;按計劃輪換;絕不寫入 MCP JSON |
4.4 Vault + 使用者歸屬(經驗證模式)
HashiCorp 的經驗證模式:使用者完成身份認證;智慧體獲得代表(OBO)令牌;工具使用 JWT 向 Vault 認證;Vault 將宣告對映到策略併發放作用域受限的動態金鑰。審計軌跡將金鑰簽發關聯到人類,而非共享機器人賬戶。
Vault Enterprise 增加 Agent Registry 與 OAuth 資源伺服器配置檔案,使已註冊智慧體無需單獨 Vault 登入步驟即可出示 OAuth JWT——並帶有針對委託 / OBO 的智慧體特定約束。
# Conceptual agent tool hook (do not ship secrets to the model)
vault_token = login_jwt(obo_token) # Vault auth
secret = vault.read("database/creds/agent-ro")
lease_id, ttl = secret["lease_id"], secret["lease_duration"]
try:
run_tool(db_url=secret["data"]) # use within TTL
finally:
vault.lease.revoke(lease_id) # or let TTL expire
5. 按廠商推薦的配置
5.1 Claude(Anthropic)
- 遠端 MCP 聯結器優先使用 OAuth;返回帶
WWW-Authenticate指向 PRM 的 401,以便客戶端發現認證。 - 切勿將令牌/API 金鑰放入聯結器 URL 查詢字串(會被記錄、快取,且違反 MCP 令牌規則)。
- Claude Code:本地 OAuth,配合安全令牌儲存與重新整理;外掛不得讀取令牌。
- 託管 Claude:Anthropic 為同意使用者管理的客戶端憑證;仍須將工具金鑰儲存在您 MCP 後方的 Vault 中。
- 企業:將 IdP 與 MCP EMA 對齊,實現零接觸伺服器訪問。
5.2 OpenAI(Agents / tools)
- 將模型 API 金鑰與工具憑證分離;採用不同的輪換策略與爆炸半徑。
- 在 VPC 中執行智慧體執行時;透過私有網路呼叫私有 MCP。
- 向工具傳入使用者歸屬令牌;使用 JWT 向 Vault 認證;每次呼叫簽發動態金鑰。
- 為合規記錄每次工具呼叫的使用者 + 智慧體 + lease_id。
5.3 Cursor
- MCP 伺服器配置:僅引用環境變數——切勿在
mcp.json中硬編碼金鑰。 - STDIO 伺服器:在 Vault Agent(模板或 env)下執行,使租約輪換無需開發者複製密碼。
- 遠端 MCP:伺服器支援時使用 OAuth;否則使用企業 VPN + 來自 Vault 的短生命週期 bearer。
- 團隊策略:白名單批准的 MCP 伺服器;在生產程式碼庫上阻止不受信任的社群 MCP。
- 透過忽略規則將
.env/ 金鑰檔案排除在上下文之外;專案規則:禁止將金鑰貼上到聊天中。
6. 參考控制矩陣
| 層級 | 控制措施 | 反模式 |
|---|---|---|
| 身份 | SSO IdP + EMA / OAuth PKCE | 共享機器人密碼 |
| MCP | PRM + 受眾繫結令牌 | URL 中的令牌;無過期 |
| 網路 | VPN / PrivateLink + 出口 ACL | 生產工具使用公網 MCP |
| 金鑰 | Vault 租約 + 輪換 + 撤銷 | mcp.json 中的一年期金鑰 |
| 運維 | 審計 IdP+MCP+Vault;人工門禁 | 無門禁的生產部署 / 支付 |
7. 實施清單
- 清點每個 MCP 伺服器,並區分公網與私有。
- 在所有遠端 MCP 上實現 OAuth 2.1 + PRM;透過企業 IdP 啟用 EMA。
- 將 MCP + Vault 移至 VPN/私有網路之後;記錄 Cursor/Claude 如何加入該網路。
- 用 Vault 動態金鑰替換靜態工具金鑰;按風險等級設定 TTL。
- 將 Vault Agent(或 SDK renew/revoke)接入智慧體執行時;會話結束時撤銷租約。
- 分離 LLM 提供商金鑰;在 Vault 中儲存並輪換——切勿放入提示詞或 MCP 配置。
- 為資金、身份變更與生產部署增加人工審批門禁。
- 測試:過期租約失敗關閉;錯誤受眾令牌被拒絕;公網路徑被阻斷。
由 Workstation 釋出 — 企業自動化、多智慧體平臺,以及基於 Kubernetes 的安全交付。