关于 MCP + OAuth2.1 + AWS Cognito Example
这是一个演示型 MCP(Model Context Protocol)服务示例,展示如何通过 AWS Cognito 配合 OAuth 2.1 授权流程,为 MCP 服务接入安全、标准化的身份认证能力。
它能做什么
- 把 AWS Cognito 作为 OAuth 2.1 授权服务器,对接入 MCP 的客户端进行身份核验与令牌签发。
- 通过标准的 Authorization Code + PKCE 流程获取访问令牌,再以 Bearer Token 方式调用 MCP 工具接口。
- 演示如何在校验 JWT 的同时,基于 token 中的 scope / claims 做最小权限控制。
是否需要密钥 / 凭据
需要。运行前需在 AWS Cognito 中创建用户池(User Pool)与应用客户端,并准备以下配置:
- Cognito 用户池 ID 与 App Client ID(建议使用带 PKCE 的公共客户端)。
- 对应的客户端密钥(如使用机密客户端流程)。
- JWT 校验所需的 JWKS 端点 URL 及签发 issuer、audience 信息。
- 部署侧的 AWS 凭据(IAM 角色或 Access Key),用于调用 Cognito 管理接口。
所有敏感信息应通过环境变量或密钥管理服务注入,切勿写入代码或提交到仓库。