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"

常见作用域:repouseradminreadwrite

令牌管理

# 查看或刷新令牌
显示 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"

On this page