onegate-bot/onegate
GitHub: onegate-bot/onegate
OneGate 是一个 AI agent 专用的凭证安全网关,通过在代理层注入真实密钥使 agent 永远不接触敏感凭证,同时提供策略控制和审计能力。
Stars: 0 | Forks: 0
# OneGate
**由 agent 构建并为 agent 服务的 agent 安全平台。**
一个专为 AI agent 打造的开源凭证网关。OneGate 位于你的 agent 与它们调用的服务之间(内置 33 项集成,从 GitHub 和 Google 到 Stripe 和 MongoDB Atlas,以及任何社区添加的集成),在网络边缘注入真实凭证,并为你提供统一平台来管理哪些 agent 可以执行哪些操作。
OneGate 由 agent 进行开源构建和维护。其威胁模型、代码和审查均来自它所保护的同类系统。
Agent 永远不会看到真实的 API key。它们通过占位符与 OneGate 通信以对接服务商,而 OneGate 仅针对通过你策略校验的请求,才会将其替换为真实凭证。
```
┌─────────┐ HTTPS_PROXY ┌──────────────────────────┐ direct TLS ┌──────────┐
│ agent │ ───────────────▶│ OneGate │───────────────▶│ vendor │
│ (no real │ CONNECT + │ auth → policy → inject │ real │ (GitHub,│
│ creds) │ placeholder │ credential → audit │ credential │ Google) │
└─────────┘ └──────────────────────────┘ └──────────┘
```
## 工作原理
1. **安装时配置 Root CA。** `onegate init` 会生成一张根证书。你需要在每台 agent 机器上信任该证书(仅需一个文件,即来自管理服务器的 `/ca.pem`)。
2. **标准代理配置。** 每个 agent 都会获得 `HTTPS_PROXY=http://agent:@gateway:8443` 配置。无需 SDK,无需修改代码。任何支持代理环境变量的工具都可以直接运行(例如 curl、Node、Python、CLI 等)。
3. **在网关处进行 TLS 终止。** 对于属于已配置集成的 host,OneGate 会使用从你的 Root CA 签发的叶子证书来终止 TLS,接着应用策略,将占位符凭证替换为真实凭证,然后建立与服务商的直接 TLS 连接并桥接该请求。对于未匹配任何集成的 host,将直接保持原样透传(不进行解密)。
4. **策略与审计。** 支持基于 agent 或项目设置允许/拒绝规则,并可按集成、HTTP 方法和路径通配符进行范围限定。每一个决策都会被写入审计日志。
## 快速开始 (Docker)
```
docker compose up -d
docker logs onegate # first boot prints the one-time admin token
```
打开 http://localhost:8080,粘贴管理 token,你即可进入 Web UI:创建 agent、连接集成、设置规则以及查看审计日志。
## 快速开始 (从源码构建)
要求 Node >= 22.13(使用内置的 `node:sqlite`,零原生依赖)。
```
pnpm install
pnpm build
node bin/onegate.js init # prints the one-time admin token
node bin/onegate.js start
```
## 配置 Agent
```
# 在 gateway 上
onegate agent add my-agent # prints a one-time og_ token
# 在 agent 机器上
export HTTPS_PROXY=http://agent:og_xxxxxxxx@gateway-host:8443
export NODE_EXTRA_CA_CERTS=/path/to/rootCA.pem # or trust system-wide
curl https://api.github.com/user -H "Authorization: Bearer placeholder"
```
占位符会在网关处被替换为真实凭证。新 agent 默认配置为 `deny-unmatched`,因此在流量跑通之前,请先添加一条允许规则(通过 UI 或 API)。
## 集成
内置 (33):**GitHub** (PAT) 和 **GitHub App** (installation tokens)、**Google** (通过一次 OAuth 连接接入 Gmail、Calendar、Drive)、**GCP** (用于 Cloud APIs 的服务账号)、**AWS** (实验性的网关端 SigV4)、**Slack**、**OpenAI**、**Anthropic**、**Jira / Atlassian**、**Confluence**、**Notion**、**Linear**、**Stripe**、**SendGrid**、**Resend**、**Brave Search**、**Tavily**、**Telegram Bot**、**Discord**、**Hugging Face**、**GitLab**、**Dropbox**、**Cloudflare**、**Fly.io**、**Vercel**、**Supabase**、**Todoist**、**Trello**、**monday.com**、**LinkedIn**、**MongoDB Atlas**、**Docker Hub** 和 **JFrog Artifactory**。完整的集成目录(包含凭证类型、host 及建议策略)请参见 [docs/INTEGRATIONS.md](docs/INTEGRATIONS.md)。
OAuth 集成采用自带客户端 (bring-your-own-client) 模式:你需要在服务商处创建一个 OAuth app,将其 client ID 和 secret 粘贴到连接对话框中,选择 scopes,OneGate 将在此后自动运行授权流程并刷新 token。
社区集成只需将单个文件放入集成目录即可。请参阅 [docs/INTEGRATIONS.md](docs/INTEGRATIONS.md) 了解如何用大约 30 行代码编写一个集成。
## Web UI
由管理服务器提供服务(默认端口 8080):包含仪表盘、agent 管理(一次性 token 发行与轮换)、项目管理、可分组搜索的集成目录(带有针对不同方法的连接对话框:包含 scope 选择器的 OAuth 授权、API key 表单、凭证文件导入)、规则编辑器以及实时审计日志。
## 文档
- [架构](docs/ARCHITECTURE.md)。组件、请求流程、数据模型。
- [部署](docs/DEPLOY.md)。Docker、compose、云 VM、备份。
- [集成指南](docs/INTEGRATIONS.md)。构建并发布一个社区集成。
- [安全模型](docs/SECURITY.md)。威胁模型与操作指南。
## CLI
```
onegate init initialize data dir, root CA and admin token
onegate start run the gateway (proxy + admin UI)
onegate print-ca print the root CA certificate
onegate admin reset-token mint a new admin token
onegate agent add register an agent (--policy, --project)
onegate agent list list agents
```
环境变量:`ONEGATE_DATA` (默认 `~/.onegate`)、`ONEGATE_PROXY_PORT` (8443)、`ONEGATE_ADMIN_PORT` (8080)、`ONEGATE_BIND`、`ONEGATE_COMMUNITY_DIR`。
## 开发
```
pnpm install
pnpm test # vitest, includes a full end-to-end proxy test
pnpm typecheck
```
## 许可证
Apache License 2.0 (详见 [LICENSE](LICENSE))。贡献均采用同一许可证(入站 = 出站),无需 CLA。请参见 [CONTRIBUTING.md](CONTRIBUTING.md)。本仓库中包含的第三方材料已在 [THIRD-PARTY-NOTICES.md](THIRD-PARTY-NOTICES.md) 中记录。
标签:AI代理, MITM代理, StruQ, TLS拦截, 代码分析, 凭证管理, 网关代理, 自动化攻击, 请求拦截, 身份与访问控制, 零信任网络