用途:帮助 MCP 服务器正确认证调用方,按 OAuth 2.1 profile 修复常见错误,例如自创 bearer 方案、把客户端令牌透传到下游、缺少发现元数据、接受同签名但 audience 不符的令牌。目标是规范修订 2025-11-25。不适用于威胁建模/注入/沙箱(见 mcp-server-security)、传输机制(见 mcp-server-implementation)、部署托管(见 mcp-server-deployment)及普通 Web/移动应用 OAuth。
主要能力与要求:1) 按传输选模型:stdio 本地子进程不适用 OAuth,从环境读凭据并最小化 API key;Streamable HTTP 中授权为可选,但实现后须遵守规范,暴露于互联网的服务器强烈建议实现。静态共享 API key 不能替代按身份划分的令牌。2) 充当资源服务器而非授权服务器:自身校验令牌,由 AS(Auth0/Okta/Keycloak/Entra 或自建 IdP)签发。3) 发布发现元数据:提供 /.well-known/oauth-protected-resource,或在 401 返回 WWW-Authenticate: Bearer resource_metadata="<url>";AS 须提供 RFC 8414 或 OIDC Discovery。4) 每个请求校验:Authorization: Bearer 令牌,不用查询串,会话不承载认证;RFC 8707 校验 audience 须为自身规范资源 URI;本地缓存 JWKS 验证签名/exp/aud;scope 不足返回 403 insufficient_scope;客户端 PKCE 用 S256。5) 客户端注册优先 CIMD,DCR 仅作兼容回退并精确匹配重定向 URI。6) 禁止令牌透传,下游调用使用服务器自有凭据或显式令牌交换,转发前需按客户端征得同意。7) 端到端验证:运行 python3 "${CLAUDE_SKILL_DIR}/scripts/check_auth_endpoints.py" https://your-host/mcp,或用真实客户端与 npx @modelcontextprotocol/conformance server --url ... 验证。
限制与注意:会话 ID 不构成认证;发现环节存在 SSRF 风险,需先校验 scheme/host;校验 AS 元数据 issuer 与获取位置一致。访问令牌短时效,刷新由客户端与 AS 负责。日志记录失败原因但不记录令牌。具体收费、平台与更多用法暂未提供。