首页/详情

使用授权码流程将受 OAuth 保护的 MCP 服务器接入 Amazon Bedrock AgentCore Gateway

AWS Machine Learning Blog2026/04/06 22:41机翻/自动摘要/自动分类
1 阅读

内容评分

技术含量
8/10
营销水分
4/10

摘要

本文介绍了在 Amazon Bedrock AgentCore Gateway 中使用 OAuth 授权码流程连接受保护的 MCP 服务器(以 GitHub 为例)的两种方法:在目标创建时进行隐式同步或直接提供工具架构。通过统一的网关,团队可集中管理身份验证、策略和可观测性,实现对多 MCP 的安全、无缝访问。文中提供了前置条件、详细步骤和代码示例,帮助开发者快速落地。

正文

Amazon Bedrock AgentCore Gateway 为 AI 代理提供统一的管理入口,集中处理身份验证、可观测性和策略执行,免去对每个 MCP 服务器单独配置和加固的需求。本文详细演示了两种通过授权码(Authorization Code)流程将受 OAuth 保护的 MCP 服务器(以 GitHub 为例)接入 AgentCore Gateway 的方法。

1. 背景与需求

  • 随着组织规模扩大,AI 代理需要访问的 MCP 服务器数量激增,传统在 IDE 中逐一配置连接的方式难以维护。
  • 第三方 MCP(AWS、GitHub、Salesforce、Databricks 等)普遍采用联合身份认证或自建授权服务器,导致凭证管理分散。
  • AgentCore Gateway 通过单一端点统一路由、认证和策略,实现对多 MCP 的集中治理。

2. 授权码流程概述

AgentCore Gateway 支持两种创建目标的方式:

  1. 隐式同步:在创建/更新 MCP 目标时,管理员完成 OAuth 授权码交互,Gateway 自动向 MCP 拉取工具清单并缓存。
  2. 提供工具架构:管理员在创建目标时直接提交工具的 JSON 架构,Gateway 不再向 MCP 动态查询,适用于无法人工干预的自动化场景。

3. 实践步骤(以 GitHub 为例)

前置条件

  • 在 GitHub 创建 OAuth App,记录 Client ID、Client Secret、Authorization callback URL
  • 拥有足够的 IAM 权限以创建/管理 AgentCore 资源。
  • 克隆并部署 awslabs/agentcore-samples 中的示例代码。

方法一:隐式同步

  1. 在 AgentCore 控制台或通过 API 发起 CreateMcpServerTarget 请求,指定 auth_type = AUTHORIZATION_CODE
  2. 系统返回授权 URL,管理员在浏览器中完成 GitHub 登录并授权,GitHub 将授权码回调至预设的 callback URL。
  3. AgentCore 使用授权码换取访问令牌(access ),随后调用 GitHub 的 tools/list 接口获取工具列表并缓存。
  4. 开发者即可通过 AgentCore 的统一端点发送 tools/listtools/call 等请求,背后由 Gateway 完成身份验证和路由。

方法二:提供工具架构

  1. 预先在本地或 CI/CD 流程中生成 GitHub 工具的 JSON 架构(参考 GitHub OpenAPI)。
  2. 在创建目标时将该架构作为 tool_schema 参数提交,auth_type 仍设为 AUTHORIZATION_CODE,但不触发实时同步。
  3. 运行时,AgentCore 直接使用提供的架构进行工具发现和调用,适合无交互式授权的批量部署。

代码示例

import boto3
client = boto3.client('bedrock-agentcore')
response = client.create_mcp_server_target(
    name='GitHubMCP',
    auth_type='AUTHORIZATION_CODE',
    oauth_config={
        'client_id': 'YOUR_CLIENT_ID',
        'client_secret': 'YOUR_CLIENT_SECRET',
        'authorization_url': 'https://github.com/login/oauth/authorize',
        'token_url': 'https://github.com/login/oauth/access_token'
    },
    tool_schema=tool_schema_json  # 方法二可选
)

完整示例代码与部署脚本位于 https://github.com/awslabs/agentcore-samples/tree/main/01-tutorials/02-AgentCore-gateway/05-mcp-server-as-a-target/03-authorization-code-flow/。

4. 关键技术点

  • OAuth 2.0 Authorization Code Flow:安全获取长期访问令牌,支持刷新
  • 工具缓存:AgentCore 在首次同步后将工具清单持久化,后续调用无需再次访问 MCP。
  • 策略绑定:可在 Gateway 层面为不同团队或模型绑定访问策略,统一审计。

5. 小结

本文展示了通过授权码流程将受 OAuth 保护的 MCP 服务器(GitHub 示例)接入 Amazon Bedrock AgentCore Gateway 的完整路径。利用隐式同步或预先提供工具架构两种方式,企业可以在保证凭证安全的前提下,实现对多种第三方工具的统一、可观测、可治理的访问。

标签