跳到主内容

把 Casdoor 用作 MCP 认证提供商

模型上下文协议(MCP)规范要求服务器实现 OAuth 2.1 来保证认证安全。从零构建一个合规的授权服务器(动态客户端注册、PKCE、同意页、JWKS 接口和令牌签发),对只想开发 MCP 工具的开发者来说是很大的工程负担。

Casdoor 解决了这个问题。 作为功能完整的开源身份平台,Casdoor 提供了 MCP 服务器所需的全部 OAuth 2.1 基础设施。把服务器的受保护资源元数据指向 Casdoor,用户认证、同意、令牌签发和校验都由它处理,你只需专注于开发 MCP 工具。

为什么用 Casdoor 做 MCP 认证?​

MCP 规范把授权服务器和资源服务器分开。这种分离让 MCP 服务器可以把认证交给外部提供商,但也需要实现:

  • OAuth 2.1 接口:授权、令牌和自省接口
  • 动态客户端注册(DCR):用于自动注册客户端的 RFC 7591
  • PKCE:保障授权流程安全的 Proof Key for Code Exchange
  • 同意页:面向用户的授权界面
  • 令牌校验:JWKS 接口和 JWT 签名校验
  • 资源指示符:用于限定受众令牌的 RFC 8707
  • 元数据发现:用于公布接口的 RFC 8414 和 OIDC Discovery

自己构建和维护这一套工作量很大。 Casdoor 开箱即用地提供了它。

把 Casdoor 用作 MCP 认证提供商​

不必自己构建授权服务器,把 MCP 服务器配置为以 Casdoor 作为 OAuth 提供商即可。 Casdoor 提供:

Casdoor 提供的能力​

Casdoor 实现了 MCP 授权所需的完整 OAuth 2.1 技术栈:

标准合规:

  • ✅ RFC 8414:OAuth 2.0 授权服务器元数据(/.well-known/oauth-authorization-server)
  • ✅ OIDC Discovery:OpenID Connect 发现(/.well-known/openid-configuration)
  • ✅ RFC 7591:动态客户端注册(/api/oauth/register)
  • ✅ RFC 7636:授权流程支持 PKCE
  • ✅ RFC 8707:资源指示符(限定受众的令牌)
  • ✅ RFC 7517:用于令牌校验的 JWKS 接口

内置功能:

  • 🔐 用户认证:密码、SSO、MFA、WebAuthn、Face ID
  • 👤 用户管理:组织、角色、权限、用户目录
  • ✅ 同意页:可定制的授权提示,带 scope 描述
  • 🎟️ 令牌管理:JWT 签发、刷新令牌、令牌自省
  • 🔑 自定义 scope:为 MCP 工具定义细粒度权限(见 自定义 Scope)
  • 🏢 多租户:按组织隔离不同部署
  • 📊 审计日志:跟踪授权事件和令牌使用情况

开发者体验:

  • 🌐 自托管:部署在自己的基础设施上,完全掌控
  • 💻 开源:Apache 2.0 许可证,可以查看和修改代码
  • 🚀 可用于生产:全球数千个组织在使用
  • 📚 丰富的 SDK:Go、Python、Node.js、Java 等

你的 MCP 服务器需要做什么​

MCP 服务器要承担的职责很少:

  1. 提供受保护资源元数据:在 /.well-known/oauth-protected-resource 返回一个指向 Casdoor 的 JSON 文档
  2. 返回 401 质询:对未授权请求发送 WWW-Authenticate: Bearer 响应头
  3. 校验 JWT 令牌:用 Casdoor 的 JWKS 接口校验令牌签名
  4. 检查受众:确保令牌的 aud 声明与服务器的资源 URI 一致
  5. 检查 scope:确认令牌包含每个工具所需的 scope

就这些。不需要用户数据库、不需要密码哈希、不需要会话管理,也不需要实现 OAuth 接口。

对比:Casdoor 与其他认证提供商​

功能CasdoorAuth0KeycloakStytch
开源✅ Apache 2.0❌ 闭源✅ Apache 2.0❌ 闭源
自托管✅ 完全掌控❌ 仅云服务✅ 完全掌控❌ 仅云服务
动态客户端注册✅ RFC 7591✅ RFC 7591✅ RFC 7591⚠️ 有限
资源指示符✅ RFC 8707✅ RFC 8707⚠️ 有限❌ No
自定义 scope✅ 按应用✅ 按 API✅ 按客户端⚠️ 有限
MCP 专属文档✅ 本指南⚠️ 通用 OAuth❌ 无⚠️ 通用 OAuth
应用类别✅ Agent/MCP 类型❌ 通用❌ 通用❌ 通用
定价(自托管)免费N/A免费N/A
定价(云服务)有免费套餐付费套餐N/A付费套餐
配置复杂度⭐⭐ 低⭐ 很低⭐⭐⭐ 高⭐ 很低
定制⭐⭐⭐ 丰富⭐⭐ 一般⭐⭐⭐ 丰富⭐ 有限

主要差异:

  • 唯一提供专门 MCP 文档和功能的开源方案
  • 内置面向 Agent/MCP 应用的应用类别(见 应用类别)
  • 与 Casdoor 自带的 MCP 服务器无缝集成,方便以编程方式管理 Casdoor 资源
  • 没有供应商锁定:可以部署在任何地方,随时迁移

开始使用​

把 Casdoor 用作 MCP 授权提供商:

  1. 部署 Casdoor 或使用 Casdoor Cloud
  2. 在 Casdoor 中 配置你的应用,设置 MCP 类别和自定义 scope
  3. 参考 Python、Node.js 或 Go 的示例代码 集成你的 MCP 服务器

SEO:为什么这很重要​

如果你在搜索:

  • "MCP auth provider open source"
  • "MCP server OAuth 2.1 tutorial"
  • "MCP Dynamic Client Registration"
  • "self-hosted MCP auth"
  • "MCP authentication without building OAuth server"

Casdoor 就是答案。 没有其他开源项目能提供这种程度的文档和集成、一流的 MCP 授权支持。

下一步​

引用​