MCP 身份验证
OAuth、API 密钥与证书的接入方式
概述
MCP 支持 OAuth 2.0、API 密钥、证书等多种身份验证方式,用于安全访问 MCP 服务器。
OAuth 2.0
流程概览
- Claude Code 发起授权请求
- 用户在浏览器完成授权
- 授权服务器返回访问令牌
- Claude Code 使用令牌访问 MCP
配置 OAuth 服务器
# 添加需要 OAuth 的服务器
claude mcp add --transport http github https://api.githubcopilot.com/mcp/# 在 Claude Code 中完成认证
/mcp
# 选择需要身份验证的服务器作用域管理
# 添加带作用域的服务器
claude mcp add --transport http github https://api.githubcopilot.com/mcp/ \
--scope "repo,user"常见作用域:repo、user、admin、read、write。
令牌管理
# 查看或刷新令牌
显示 OAuth 令牌
刷新 GitHub 令牌
# 撤销令牌
撤销 GitHub 令牌API 密钥
# Bearer 令牌
claude mcp add --transport http api https://api.example.com/mcp \
--header "Authorization: Bearer your-api-key"
# API Key 头
claude mcp add --transport http api https://api.example.com/mcp \
--header "X-API-Key: your-api-key"环境变量
export API_KEY="your-api-key"
claude mcp add --transport http api https://api.example.com/mcp \
--header "Authorization: Bearer ${API_KEY}"安全建议
- 使用环境变量或密钥管理工具保存凭证
- 定期轮换密钥并撤销旧凭证
- 不要将密钥提交到版本控制
证书身份验证
# 客户端证书
claude mcp add --transport http secure-api https://api.example.com/mcp \
--cert /path/to/cert.pem \
--key /path/to/key.pem
# CA 证书
claude mcp add --transport http secure-api https://api.example.com/mcp \
--cacert /path/to/ca.pem# 查看证书信息
openssl x509 -in /path/to/cert.pem -text -noout
# 验证证书
openssl verify -CAfile /path/to/ca.pem /path/to/cert.pem自定义身份验证
# 自定义认证头
claude mcp add --transport http custom-api https://api.example.com/mcp \
--header "X-Custom-Auth: custom-value"
# 多因素认证
claude mcp add --transport http secure-api https://api.example.com/mcp \
--header "X-Auth-Token: token" \
--header "X-Auth-Code: code"最佳实践
- 采用最小权限原则配置作用域
- 使用短生命周期令牌与自动刷新机制
- 启用审计日志跟踪访问历史
故障排除
# OAuth 授权失败
/mcp
# 检查授权 URL 与作用域
# API 密钥无效
claude mcp remove api
claude mcp add --transport http api https://api.example.com/mcp \
--header "Authorization: Bearer new-api-key"