Claude Platform Docs
Managed Agents企業設定

單一登入

讓人員與服務使用來自您身分識別提供者的權杖呼叫您自行託管的 Claude Managed Agents 伺服器。

根據預設,您的伺服器會接受一把共用金鑰,即伺服器 API 金鑰。啟用單一登入後,每個人員或服務也能使用來自您 OpenID Connect (OIDC)「identity provider」(身分識別提供者)的權杖呼叫伺服器。伺服器會根據權杖中的群組為呼叫者指派角色。伺服器 API 金鑰仍可作為管理員憑證使用。

本頁面說明如何新增您的身分識別提供者、各角色可執行的操作,以及如何讓開發人員從終端機登入。

新增您的身分識別提供者

  1. 在您的身分識別提供者中註冊伺服器

    將伺服器註冊為一個 API,並使用如 api://cma-server 的識別碼,然後讓用戶端為其請求權杖。

  2. 在設定檔中列出身分識別提供者

    在設定檔中的 auth.issuers 下新增一個項目:

    auth:
      issuers:
        - name: okta
          issuer_url: https://login.example.com/oauth2/default
          audiences: [api://cma-server]
          roles:
            - group: cma-admins
              role: admin
            - group: "eng-*"
              role: developer
    • name 在記錄行中標示該簽發者,伺服器也會將它記錄為每項資源建立者的一部分。一旦有人建立了資源,就不要再變更它。
    • issuer_url 必須等於您權杖的 iss 宣告。
    • audiences 列出權杖的 aud 宣告可攜帶的值,例如第一個步驟中的識別碼。
    • roles 將群組對應至 admin、developer 或 user。最高的相符角色勝出。

    如需其他欄位,請參閱簽發者項目。如果您的提供者是 Microsoft Entra ID,另請參閱 Microsoft Entra ID。

  3. 重新啟動伺服器並檢查登入

    重新啟動伺服器。呼叫者在任何接受伺服器 API 金鑰的路由上,都以 Authorization: Bearer <token> 傳送權杖。

    對於每個經權杖驗證的請求,伺服器都會記錄 auth=oidc、簽發者的 name,以及呼叫者的主體(sub=)。

如果登入失敗

回應原因伺服器的記錄行中包含
401,與錯誤 API 金鑰的回應相同權杖未通過檢查。記錄行中會說明原因。oidc token
403權杖的群組未符合任何 roles 項目token holds no role

Microsoft Entra ID

Entra ID 在兩方面與其他提供者不同。這兩項設定都放在簽發者項目中:

  • 人員: Entra ID 會在每個用戶端應用程式中給同一個人不同的 sub,因此預設值會將同一個人記錄為多個建立者。請設定 subject_claim: oid。
  • 群組: 如果某人隸屬於許多群組,Entra ID 會在權杖中省略 groups 宣告。該人員因此不會符合任何 roles 項目。為避免此情況,請讓 Entra ID 只發出指派給該應用程式的群組。或者在 Entra ID 中將應用程式角色指派給人員,並設定 groups_claim: roles,讓伺服器讀取應用程式角色來取代群組。

各角色可執行的操作

角色代理、技能、工作階段、vault 與記憶體儲存區環境
admin,以及伺服器 API 金鑰可檢視與變更所有項目可建立、變更與刪除環境,並建立其金鑰
developer 或 user只能檢視與變更該呼叫者所建立的項目可列出、讀取環境,並在其中執行工作階段

developer 與 user 擁有相同的存取權限。具備其中任一角色的呼叫者:

  • 無法看到由其他人建立的資源。 該資源不會出現在清單中,而對其 ID 的請求所得到的回應,與對未知 ID 的請求相同。這包括在您啟用單一登入之前使用伺服器 API 金鑰建立的所有資源。
  • 無法與其他呼叫者或群組共用資源。

請將 admin 對應至確切的群組名稱。管理員也可以啟動使用任何使用者之 vault 的工作階段。因此請只將此角色授予您信任可存取每位使用者 MCP 權杖的群組。

讓開發人員從終端機登入

開發人員可以透過您的身分識別提供者登入,然後以自己的身分使用 ant CLI,而不需要伺服器 API 金鑰。前兩個步驟由您執行,第三個步驟由每位開發人員執行。

  1. 在您的身分識別提供者中註冊應用程式

    註冊一個具備以下條件的原生(「public」)應用程式:

    • 不含用戶端密鑰
    • 搭配 PKCE 的授權碼授與
    • 重新導向 URI http://127.0.0.1/callback

    部分提供者需要使用其他重新導向 URI 之一。

  2. 將應用程式新增至簽發者項目

    在簽發者項目中加入 login_client_id 與 login_scopes,然後重新啟動伺服器:

    login_client_id: 0oa1b2c3d4e5f6g7h8i9
    login_scopes: [openid, cma-server.access]

    login_scopes 列出您的提供者為核發 aud 宣告位於簽發者項目 audiences 清單中的權杖所需的範圍。

  3. 登入

    每位開發人員從解壓縮後的封存檔頂層執行登入:

    ./cma-server-admin login https://cma.example.com

    伺服器的 URL 必須是 https://,或是指向 localhost、127.0.0.1 或 ::1 的 http://。若使用其他重新導向 URI 之一,請在指令中加入其旗標。

    此指令會在瀏覽器中開啟提供者的登入頁面,然後寫入一個名為 cma-server 的 ant CLI 設定檔。對任何 ant 指令傳入 --profile cma-server,或執行 ant profile activate cma-server 將該設定檔設為預設值。

權杖過期時,開發人員再次執行 login 即可。若要改由 ant CLI 更新權杖,請將 offline_access 加入 login_scopes。

其他重新導向 URI

提供者要註冊的重新導向 URI開發人員在 login 指令中加入的旗標
Microsoft Entra IDhttp://localhost/callback-listen localhost:0
要求重新導向 URI 中包含連接埠的提供者具固定連接埠的 URI,例如 http://127.0.0.1:8123/callback-listen 127.0.0.1:8123

若要列出其他旗標,請在 login 指令中加入 -h。

讓使用者登入您伺服器上的主控台

您伺服器上的主控台會透過您為終端機登入所註冊的應用程式讓使用者登入。若要完成其設定,請參閱設定登入。

這個頁面有幫助嗎?