亚马逊基岩代理核心网关用户联合会
](https://github.com/aws-samples/sample-bedrock-agentcore-gateway-user-federation)  
    
  
将OAuth 2.0安全API作为人工智能代理的MCP工具公开,同时使用Amazon Bedrock AgentCore网关拦截器保留用户身份验证上下文。
主要特点
- 用户_联邦模式 -JWT在整个请求链中的传播
- 三层JWT验证 -运行时、网关和API网关
- 网关拦截器 -向下游API注入授权标头
- CUSTOM_JWT授权人 -与任何OIDC提供商(Okta、Auth0、Azure AD、亚马逊Cognito)合作
______________________________________________________________________
快速开始
# 1. Clone repository
git clone https://github.com/aws-samples/sample-bedrock-agentcore-gateway-user-federation.git
cd sample-bedrock-agentcore-gateway-user-federation
# 2. Configure environment (see docs/SETUP.md)
cp frontend/.env.example frontend/.env
cp backend/.env.example backend/.env
cp api/.env.example api/.env
# 3. Start services (3 terminals)
# Terminal 1 - Frontend
cd frontend && npm install && npm start
# Terminal 2 - Backend
cd backend && python3 -m venv .venv && source .venv/bin/activate && pip install -r requirements.txt && python src/app.py
# Terminal 3 - API
cd api && python3 -m venv .venv && source .venv/bin/activate && pip install -r requirements.txt && python src/api.py访问: http://localhost:3000
______________________________________________________________________
项目结构
three-tier-chat-app/
├── docs/ # Project documentation
│ ├── README.md # Architecture overview
│ ├── SETUP.md # Setup guide
│ ├── DEPLOYMENT.md # AWS deployment
│ ├── ARCHITECTURE.md # Detailed architecture & diagrams
│ └── SECURITY.md # Security guidelines
│
├── frontend/ # React application (Port 3000)
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── App.js # Main app
│ │ └── index.js # Entry point
│ ├── package.json
│ └── .env.example
│
├── backend/ # Backend proxy (Port 5002)
│ ├── src/
│ │ └── app.py # Flask application
│ ├── requirements.txt
│ └── .env.example
│
├── api/ # Secured API (Port 5001)
│ ├── src/
│ │ ├── api.py # Flask application
│ │ └── user_database.py # Mock database
│ ├── requirements.txt
│ └── .env.example
│
├── agentcore/ # AgentCore agent
│ ├── agents/
│ │ └── userassistant/ # User assistant agent
│ └── README.md
│
├── base-infra/ # Infrastructure
│ ├── cdk/ # AWS CDK stacks
│ ├── scripts/ # Utility scripts
│ └── README.md
│
└── README.md # This file______________________________________________________________________
建筑
flowchart LR
User([User]) --> Frontend[Frontend
React + Okta]
Frontend -->|JWT| Backend[Backend
Flask]
Backend --> API[Secured API
Lambda]
Backend --> Agent[AgentCore
AI Agent]
Agent -.->|Federated JWT| API数据流: User → Frontend → Backend → API / AgentCore → Response
看 docs/ARCHITECTURE.md 有关详细的序列图、安全标头和跟踪。
______________________________________________________________________
特性
身份验证和安全
- Okta SSO,带授权码+PKCE流
- 每层JWT签名验证
- CORS仅限于特定来源
- 安全标头(HSTS、CSP等)
- 代码中没有秘密(.env文件被忽略)
用户体验
- 具有响应式设计的现代React UI
- 与AgentCore进行人工智能聊天
- 用户配置文件显示
- API流量对比演示
人工智能能力
- 使用Claude的上下文感知响应
- USER_FEDERATION(代理使用用户的JWT)
- 访问用户特定数据
- 会话管理
POC功能
- 模拟数据库(无需基础设施设置)
- 调试模式已启用
- 详细的开发错误消息
______________________________________________________________________
文档
| 文档 | 描述 |
|---|---|
| docs/SETUP.md | 入门指南 |
| 文档/部署.md | AWS部署说明 |
| docs/ARCHITECTURE.md | 详细的架构图 |
| docs/SECURITY.md | 安全指南 |
组件文档
- 前端/README.md -React应用程序
- 后端/README.md -后端代理服务
- api/README.md -安全的API层
- agentcore/README.md -代理商核心代理商
- 基础基础设施/README.md -基础设施
______________________________________________________________________
技术栈
| 层 | 技术 |
|---|---|
| 前端 | React 18、Okta React SDK、Axios、React Router |
| 后端 | Python 3.11、Flask 3.0、PyJWT 2.8 |
| API | Python 3.11,Flask(Lambda就绪),模拟数据库 |
| 基础设施 | AWS CDK、Lambda、S3、CloudFront、API网关 |
| 人工智能 | AWS基岩代理核心,克劳德 |
______________________________________________________________________
发展
先决条件
- Node.js 18+
- Python 3.10+
- OCT账户
- AWS帐户(用于AgentCore)
本地开发
每个服务都独立运行:
# Frontend (http://localhost:3000)
cd frontend && npm install && npm start
# Backend (http://localhost:5002)
cd backend && pip install -r requirements.txt && python src/app.py
# API (http://localhost:5001)
cd api && pip install -r requirements.txt && python src/api.py______________________________________________________________________
部署
AWS部署
cd base-infra/cdk
# Install dependencies
npm install
# Bootstrap CDK (first time only)
cdk bootstrap aws://ACCOUNT_ID/REGION
# Deploy all stacks
cdk deploy --all看 文档/部署.md 详细说明。
______________________________________________________________________
安全
这是一个 教育项目 演示云原生架构模式。
已实施:
- git中没有秘密(.env文件gitignored)
- 在每一层验证JWT签名
- 控制台日志中没有敏感数据
- AWS凭据受保护
延期生产:
- 速率限制
- 输入验证
- CSRF保护
- 真实数据库
对于生产部署,请遵循安全最佳实践:
看 docs/SECURITY.md 详细的安全指南。
______________________________________________________________________
故障排除
端口已在使用中:
lsof -ti:3000 # Find process
kill -9
# Kill processOkta身份验证失败:
- 在Okta仪表板中验证重定向URI
- 检查OKTA_ISSUER包括
/oauth2/default - 确保已启用PKCE
CORS错误:
- 验证后端/.env中的ALLOWED_ORIGINS
- 检查后端是否正在运行
- 清除浏览器缓存
______________________________________________________________________
路线图
电流(POC)
- \[x\] Okta SSO身份验证
- \[x\] 三层架构
- \[x\] AgentCore与USER_FEDERATION的集成
- \[x\] AWS CDK基础架构(AgentCore的alpha构造)
- \[x\] 使用OpenTetry/ADOT进行分布式跟踪
- \[x\] 模拟数据库
- \[x\] 安全审查
未来(生产)
- \[\]真实数据库(DynamoDB/RDS)
- \[\]速率限制和输入验证
- \[\]综合测试套件
- \[\]CI/CD管道
- \[\]监控和警报
______________________________________________________________________
联系
Abhijeet Patil github: @普拉杰瓦伦德拉
安全
看 贡献 了解更多信息。
许可证
此库根据MIT-0许可证获得许可。请参阅LICENSE文件。
