> ## Documentation Index
> Fetch the complete documentation index at: https://mcp.developerdoc.cn/llms.txt
> Use this file to discover all available pages before exploring further.

# 企业托管授权

> 通过身份提供商在企业环境中集中控制 MCP 访问

企业托管授权扩展（`io.modelcontextprotocol/enterprise-managed-authorization`）让组织能够通过现有身份提供商（IdP）集中控制 MCP 服务器访问。员工不再需要逐个授权每个 MCP 服务器，组织的 IT 或安全团队可以在一个位置管理访问策略。

<Card title="规范" icon="file-lines" href="https://github.com/modelcontextprotocol/ext-auth/blob/main/specification/draft/enterprise-managed-authorization.mdx">
  企业托管授权扩展的完整技术规范。
</Card>

## 它是什么

在标准 MCP 部署中，每个用户会独立授权 MCP 客户端访问每个 MCP 服务器。对于消费者应用，这种用户驱动模型很理想，因为它让个人控制谁能访问自己的数据。

但在企业环境中，这种模型会带来使用阻力和安全缺口：

* 员工不应需要理解组织使用的每个 MCP 服务器的授权细节
* 如果每个用户独立授权，安全团队就无法强制执行一致的访问策略
* 新员工入职时，需要手动授权数十个服务
* 员工离职时，需要逐个服务撤销访问权限

企业托管授权通过引入组织的 IdP 作为权威决策方来解决这些问题。IdP（例如 Okta、Azure AD 或企业 SSO 系统）控制员工可以访问哪些 MCP 服务器，以及在什么条件下访问。员工使用企业身份认证，也就是他们访问邮箱、Slack 和其他工作工具时使用的同一套凭据；IdP 则根据组织策略授予或拒绝 MCP 服务器访问。

## 何时使用

以下场景适合使用企业托管授权：

* **在企业环境中部署 MCP**，由 IT 管理所有业务应用的访问
* **强制执行组织访问策略**，需要确保只有获授权员工才能访问特定 MCP 服务器
* **集中访问控制**，希望从单个管理控制台为 MCP 服务器添加或撤销访问权限
* **满足合规要求**，组织需要为所有 MCP 服务器访问保留可审计的授权轨迹
* **简化员工体验**，员工应使用现有企业 SSO 凭据访问 MCP 工具，而不需要逐服务授权流程

## 工作原理

该扩展建立了一个委托授权流程，企业 IdP 作为 MCP 客户端和 MCP 服务器之间的中介。MCP 客户端会向企业 IdP 请求一种特殊 token，称为 Identity Assertion JWT Authorization Grant，简称 ID-JAG。随后 MCP 客户端使用 ID-JAG 向 MCP 服务器的授权服务器换取访问 token：

```mermaid theme={null}
sequenceDiagram
    participant UA as Browser
    participant C as MCP Client
    participant IdP as Enterprise IdP
    participant MAS as MCP Authorization Server
    participant MRS as MCP Resource Server

    C-->>UA: Redirect to IdP
    UA->>IdP: Redirect to IdP
    Note over IdP: User Logs In
    IdP-->>UA: IdP Authorization Code
    UA->>C: IdP Authorization Code
    C->>IdP: Token Request with IdP Authorization Code
    IdP-->>C: ID Token

    note over C: User is logged<br/>in to MCP Client.<br/>Client stores ID Token.

    C->>IdP: Exchange ID Token for ID-JAG
    note over IdP: Evaluate Policy
    IdP-->>C: Responds with ID-JAG
    C->>MAS: Token Request with ID-JAG
    note over MAS: Validate ID-JAG
    MAS-->>C: MCP Access Token

    loop
    C->>MRS: Call MCP API with Access Token
    MRS-->>C: MCP Response with Data
    end

```

该流程的关键点：

1. **集中策略**：企业 IdP 维护已批准 MCP 服务器的注册表，以及每个服务器的访问策略。管理员在现有身份管理工具中配置这些内容。

2. **单点登录**：员工只需使用企业凭据认证一次。IdP 会签发 token，允许访问已批准的 MCP 服务器，而无需为每个服务器额外显示授权提示。

3. **策略执行**：IdP 在签发 token 前评估访问策略（组成员身份、角色分配、条件访问规则）。没有授权的员工会收到相应错误，MCP 客户端永远不会获得未授权服务器的 token。

4. **集中撤销**：撤销员工对 MCP 服务器的访问权限会在 IdP 层完成，并立即对所有 MCP 客户端生效。不需要按客户端、按服务器逐个撤销。

## 实现指南

### 面向 MCP 客户端

要支持企业托管授权，客户端必须：

1. 在 `initialize` 请求中**声明支持**：

```json theme={null}
{
  "capabilities": {
    "extensions": {
      "io.modelcontextprotocol/enterprise-managed-authorization": {}
    }
  }
}
```

2. **支持 SSO**：用户应使用企业 IdP 向 MCP 客户端认证。保存登录期间签发的 Identity Assertion（OpenID ID Token 或 SAML assertion），以便后续使用。

3. **处理 ID-JAG**：当服务器表明需要企业托管认证时，使用之前获取的 Identity Assertion，向企业 IdP 的 authorization 端点请求 ID-JAG token。再使用该 ID-JAG 向 MCP 授权服务器换取访问 token。不要将用户重定向到 MCP 授权服务器的 authorization 端点。

4. **支持组织配置**：允许管理员配置企业 IdP 的端点，通常通过组织级设置而不是用户级设置完成。

5. **遵守 token scopes**：企业 IdP 签发的 token 可能带有不同于标准 MCP 授权的 scope 限制。应妥善处理 scope 错误。

### 面向 MCP 服务器

要要求使用企业托管授权：

1. 在服务器的授权元数据中**声明该扩展**，表明客户端必须使用企业托管流程。

2. **集成 IdP 管理 API**（可选）：发布服务器的资源描述符，让企业管理员能够在其 IdP 管理控制台中配置访问策略。

### 面向 MCP 授权服务器

1. **验证 ID-JAG**：验证企业 IdP 签发的 ID-JAG。通常需要根据 IdP 的 JWKS 端点验证 JWT 签名，并检查 token 的 audience、issuer 和过期时间。

2. **将 IdP claims 映射到权限**：ID-JAG token 携带 claims（scope 和资源信息），服务器用这些信息判断员工是谁以及可以访问什么。请基于这些 claims 定义授权逻辑。

3. **处理账号关联**：ID-JAG token 总会包含 subject claim，也可能额外包含可用于账号关联的 email claim

## 客户端支持

<Note>
  不同客户端对此扩展的支持情况不同。扩展需要显式启用，默认永远不会激活。
</Note>

请查看[客户端矩阵](/extensions/client-matrix)，了解各 MCP 客户端当前的实现状态。企业托管授权通常不仅需要 MCP 客户端应用支持，还需要组织 IT 团队在客户端层面提供支持。

## 相关资源

<CardGroup cols={2}>
  <Card title="ext-auth 仓库" icon="github" href="https://github.com/modelcontextprotocol/ext-auth">
    源代码和参考实现
  </Card>

  <Card title="完整规范" icon="file-lines" href="https://github.com/modelcontextprotocol/ext-auth/blob/main/specification/draft/enterprise-managed-authorization.mdx">
    包含规范性要求的技术规范
  </Card>

  <Card title="SEP-990" icon="file-lines" href="/seps/990-enable-enterprise-idp-policy-controls-during-mcp-o">
    原始提案：启用企业 IdP 策略控制
  </Card>

  <Card title="MCP Authorization" icon="lock" href="/specification/latest/basic/authorization">
    MCP 核心授权规范
  </Card>
</CardGroup>
