opena2a-org/agent-identity-management

GitHub: opena2a-org/agent-identity-management

为 AI 代理提供加密身份、治理与访问控制的开源 NHI 平台。

Stars: 41 | Forks: 13

# 代理身份管理(AIM) 无法审核代理的操作、控制其权限,或在出现问题时撤销访问权限。AIM 解决了这些问题——为 AI 代理提供开源的身份、治理和访问控制。 [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/59901c4b82064021.svg)](https://github.com/opena2a-org/agent-identity-management/actions/workflows/ci.yml) [![Security](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/ee43e0da6c064023.svg)](https://github.com/opena2a-org/agent-identity-management/actions/workflows/security.yml) [![Docker](https://img.shields.io/docker/pulls/opena2a/aim-server?label=docker%20pulls)](https://hub.docker.com/r/opena2a/aim-server) [![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) [官网](https://opena2a.org) | [演示](https://opena2a.org/demos) | [Discord](https://discord.gg/uRZa3KXgEn) ## 快速开始 ``` npx opena2a-cli identity create --name my-agent ``` ``` Agent created: ID: aim_7f3a9c2e Name: my-agent Public Key: ed25519:x8Kp...mQ4R Stored: ~/.opena2a/aim-core/identities/my-agent.json Audit Log: ~/.opena2a/aim-core/audit.jsonl ``` 您的代理现在拥有加密身份、仅追加审计日志和信任评分——无需服务器。
仪表板截图 ![Security Dashboard](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/a2016b40d4064025.png) *舰队概览 — 监控 298 个代理,阻止 24 个操作,按类别评估风险* ![Agent Registry](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/6436752df3064026.png) *带有信任评分、验证状态和类型分类的代理注册表* ![Trust Score Breakdown](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/2359d74069064027.png) *8 因子信任评分 — 验证、运行状况、操作成功率、安全告警、合规性、代理年龄、漂移检测和用户反馈* ![MCP Supply Chain](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/4ce8dcabfd064028.png) *MCP 服务器依赖项及其证明状态和置信度评分*
[查看所有演示](https://opena2a.org/demos) ## 两种启动方式 **单人开发者、单个代理、无基础设施:** ``` npm install @opena2a/aim-core ``` 本地 Ed25519 密钥、基于文件的审计日志、YAML 能力策略。所有内容保留在您的机器上。 **团队、代理舰队、完整治理:** ``` docker pull opena2a/aim-server docker pull opena2a/aim-dashboard ``` 基于 PostgreSQL 的审计日志、REST API、仪表板、OAuth 2.0 令牌端点、跨机器舰队管理。 或使用 [AIM Cloud](https://aim.opena2a.org) —— 无需基础设施。 ## CLI 命令 CLI 是管理代理身份的最快路径。安装一次: ``` npm install -g opena2a-cli ``` 然后: ``` # 本地身份 opena2a identity create --name my-agent # Create Ed25519 identity opena2a identity trust # Calculate trust score opena2a identity sign --data "hello" # Sign data opena2a identity audit # View audit log opena2a identity attach --all # Connect to all detected tools # 云 (aim.opena2a.org) opena2a login # Authenticate via browser opena2a identity create --name my-agent --server cloud # Register on server opena2a identity list --server cloud # List all agents opena2a identity tag add production --server cloud # Tag agents opena2a identity mcp list --server cloud # View MCP connections opena2a identity activity --server cloud # View activity log opena2a whoami # Check auth status ``` 如需跨所有代理的完整安全仪表板: ``` npx opena2a-cli review ``` ``` Security Review: ~/my-project Identity: aim_7f3a9c2e (my-agent) Trust Score: 0.85 (strong) Capabilities: 3 allowed, 1 denied Audit Events: 47 (last 24h) MCP Servers: 2 verified, 0 drifted ``` ## AIM 提供什么 加密身份、OAuth 2.0 认证、能力强制执行、审计追踪、8 因子信任评分、MCP 证明、生命周期管理、策略引擎、标签/MCP 管理以及完整的 Web 仪表板。
查看所有功能 **加密身份** — 在代理创建时生成 Ed25519 密钥对。每个代理都拥有可验证的身份,具备签名和验证能力。提供后量子(ML-DSA-44/65/87)和混合 Ed25519+ML-DSA 模式。 **OAuth 2.0 和机器到机器认证** — 用于代理到服务器认证的 JWT 承载授权码。设备授权流程(RFC 8628)支持通过浏览器进行 CLI 登录。无需在 `opena2a login` 后管理 API 密钥。 **能力强制执行** — 声明每个代理可以做什么,并在运行时阻止其他操作。每个能力可设置信任阈值(例如,`system:admin` 需要 70% 信任,`file:read` 需要 0%)。执行模式包括:`auto`(立即执行)、`notify`(执行并告警)、`review`(排队供人工审批)。策略可在本地以 YAML 形式定义,或通过 REST API 在服务器端定义。 **审计追踪** — 不可变、仅追加的操作日志。本地以 JSON 行格式存储,服务器端使用 PostgreSQL 并提供完整查询 API。审计事件包含操作、目标、结果、时间戳和工具归属。 **信任评分** — 8 因子加权算法:验证状态(25%)、运行状况(15%)、操作成功率(15%)、安全告警(15%)、合规性(10%)、代理年龄(10%)、漂移检测(5%)和用户反馈(5%)。追踪历史趋势和置信度级别。通过每个能力的阈值来控制访问权限。 **委托链** — 使用 Ed25519 的加密签名委托。每跳范围收紧。信任衰减:每跳委托将有效信任乘以可配置系数(默认 0.8,最小 0.3)。防止深层委托链绕过信任要求。 **MCP 证明** — 代理对其使用的 MCP 服务器质量和安全性进行证明。多代理共识协议:3 个及以上来自 2 个所有者的唯一证明者 = 已验证。仪表板上提供供应链可视化。 **生命周期管理** — 完整的代理状态机:待处理、已验证、暂停、已撤销。代理被立即暂停(如果被入侵)或永久撤销(保留 30 天数据)。状态自动影响信任评分。 **策略管理** — 基于 YAML 的本地策略或通过 REST API 由服务器管理。默认拒绝或默认允许,并带有细粒度的能力规则。插件范围的策略用于按工具控制。 **标签与 MCP 管理** — 使用标签组织代理,附加/分离 MCP 服务器连接。可通过 CLI(`identity tag add`、`identity mcp add`)、REST API 或仪表板进行管理。 **仪表板** — 用于舰队管理的 Web UI,访问 [aim.opena2a.org](https://aim.opena2a.org)。提供代理概览、信任评分分解、MCP 网络图、审计时间线、安全违规记录、能力请求和策略编辑器。
## 细粒度授权(FGA) 在执行前评估每个代理操作的 5 步授权流程: 1. **能力检查** — 代理是否具备所需能力? 2. **属性检查** — 代理属性是否满足策略条件? 3. **上下文检查** — 运行时上下文(时间、位置、风险等级)是否允许该操作? 4. **链检查** — 若为委托,委托链是否有效且在范围内? 5. **意图检查** — 声明的意图是否与正在执行的操作匹配? 所有五个步骤必须通过。任何失败都会返回一个带具体步骤的类型化拒绝。 ``` const decision = await aim.authorize({ agent: 'billing-agent', action: 'db:write', resource: 'invoices', context: { riskLevel: 'elevated' } }); // { allowed: false, deniedAt: 'context', reason: 'elevated risk requires human approval' } ``` ## 特权访问管理(PAM) 三个特权等级,管控逐步增强: | 等级 | 示例 | 控制 | |------|------|------| | STANDARD | `file:read`、`api:call` | 正常能力强制执行 | | PRIVILEGED | `db:write`、`deploy:staging` | 有时限的会话、审计密集型日志 | | SUPER_PRIVILEGED | `infra:destroy`、`secrets:rotate` | 人工审批门、双重授权 | **人工审批门** — SUPER_PRIVILEGED 操作进入人工审核队列。可配置审批超时(默认 5 分钟),到期自动拒绝。 **破玻璃** — 针对被阻断的关键操作的紧急覆盖。需要破玻璃令牌,记录到独立的不可变审计流,并触发即时审核通知。 **认证活动** — 定期审查代理权限分配。管理员批准或撤销每个权限。未审核的权限将自动过期。 ## 与 CyberArk 集成 CCP(中央凭证提供者)桥接,用于在运行时检索保险库凭证而不向代理上下文暴露密钥。PSM(特权会话管理器)流用于记录和审计特权代理会话。 ``` const aim = new AIMCore({ agentName: 'billing-agent', vault: { provider: 'cyberark', ccpUrl: process.env.CYBERARK_CCP_URL, appId: 'aim-agents', safe: 'AgentCredentials' } }); // Agent requests credential by reference, never sees the value const cred = await aim.getCredential('db-connection-string'); ``` ## 与 SIEM 集成 内置适配器,用于将审计事件转发到企业 SIEM 平台: - **Splunk** — HTTP 事件收集器(HEC)适配器。发送带有 AIM 特定源类型和索引配置的 JSON 结构化事件。 - **Microsoft Sentinel** — 数据收集器 API 适配器。将 AIM 审计事件映射到自定义日志表,并按工作区 ID 路由。 两个适配器均支持缓冲批量投递、自动重试(退避策略)和按严重性过滤事件。 ``` # aim-config.yaml siem: adapter: splunk hecUrl: https://splunk.internal:8088 token: ${SPLUNK_HEC_TOKEN} index: aim_agent_audit sourcetype: aim:audit minSeverity: warning ``` ## SDK | SDK | 安装 | 状态 | |-----|------|------| | Python | `pip installe sdk/python/`(本地)或从 [AIM 仪表板](https://aim.opena2a.org) 下载 | 稳定 | | Java | `org.opena2a:aim-sdk:1.0.0`(Maven / Gradle) | 稳定 | | TypeScript/Node.js | `npm install @opena2a/aim-core` | 稳定 | ## aim-core:供库开发者使用 如果您正在构建需要嵌入代理身份的工具或框架,`@opena2a/aim-core` 提供无需运行服务器的程序化访问。 ``` npm install @opena2a/aim-core ``` ``` import { AIMCore } from '@opena2a/aim-core'; const aim = new AIMCore({ agentName: 'my-assistant' }); // Ed25519 identity -- created on first run, persisted to ~/.opena2a/aim-core/ const identity = aim.getIdentity(); console.log('Agent ID:', identity.agentId); // Capability enforcement -- define what the agent can do aim.loadPolicy({ allow: ['db:read', 'api:call'], deny: ['db:write'] }); aim.checkCapability('db:read'); // passes // aim.checkCapability('db:write'); // throws CapabilityDenied // Audit log -- append-only, tamper-evident aim.logEvent({ action: 'db:read', target: 'customers', result: 'allowed', plugin: 'my-assistant' }); // Trust scoring -- 8-factor calculation const score = aim.calculateTrust(); console.log('Trust:', score.overall); // e.g. 0.45 ``` | 功能 | aim-core(本地) | 完整 AIM(服务器 + 仪表板) | |------|------------------|----------------------------| | Ed25519 身份 | 本地密钥对 | 服务器签发 + 后量子(ML-DSA) | | OAuth 2.0 认证 | 不适用 | JWT 承载 + 设备授权流程 | | 审计日志 | JSON 行文件 | PostgreSQL + 查询 API | | 能力策略 | YAML 文件 | REST API + 可视化编辑器 | | 信任评分 | 8 因子本地计算 | 实时 + 历史 + 趋势 | | MCP 证明 | 不适用 | 多代理共识 | | 生命周期 | 不适用 | 暂停、撤销、验证 | | 标签 + MCP | 不适用 | 通过 CLI/API 组织并附加 | | 多代理支持 | 单机 | 跨机器舰队 | | 仪表板 | 无 | 完整 Web UI | 这是 HackMyAgent 的 `--with-aim` 标志用于在安全修复过程中添加代理身份所使用的同一库。 ## 服务器部署 对于团队和舰队部署,AIM 服务器提供 REST API、仪表板和基于 PostgreSQL 的存储。 ``` curl -sSL https://raw.githubusercontent.com/opena2a-org/agent-identity-management/main/scripts/quickstart.sh | bash ``` 仪表板地址为 [localhost:3000](http://localhost:3000),API 地址为 [localhost:8080](http://localhost:8080)。密钥自动生成。登录凭证在最后打印。 镜像位于 [Docker Hub](https://hub.docker.com/u/opena2a)。请参考 [infrastructure/DEPLOYMENT.md](infrastructure/DEPLOYMENT.md) 了解标签约定和生产部署说明。 ## 与 HackMyAgent 配合使用 [HackMyAgent](https://github.com/opena2a-org/hackmyagent) 可以在其安全修复流程中添加 AIM 代理身份: ``` hackmyagent fix-all --with-aim # scan, fix, and add agent identity hackmyagent fix-all --dry-run # preview without modifying ``` ## 使用场景 | 指南 | 描述 | 耗时 | |------|----------|------| | [注册我的代理](docs/use-cases/register-my-agent.md) | 创建 Ed25519 身份并附加工具 | 2 分钟 | | [审计代理操作](docs/use-cases/audit-agent-actions.md) | 使用不可变日志追踪操作 | 5 分钟 | | [强制执行能力](docs/use-cases/enforce-capabilities.md) | 使用 YAML 策略限制代理行为 | 5 分钟 | | [嵌入到我的应用中](docs/use-cases/embed-in-my-app.md) | 在自有框架中使用 aim-core SDK | 10 分钟 | | [舰队治理](docs/use-cases/fleet-governance.md) | 使用 AIM 服务器进行集中管理 | 30 分钟 | 完整索引请参考 [docs/USE-CASES.md](docs/USE-CASES.md)。 ## 链接 - [文档](https://opena2a.org/docs) —— 完整指南、教程和 API 参考 - [SDK 快速开始](https://opena2a.org/docs/tutorials/sdk-quickstart) —— 保护您的第一个代理 - [MCP 注册](https://opena2a.org/docs/tutorials/mcp-registration) —— 连接 MCP 服务器 - [贡献指南](CONTRIBUTING.md) —— 如何贡献 - [部署指南](infrastructure/DEPLOYMENT.md) —— 生产环境部署 属于 [OpenA2A](https://opena2a.org) 安全平台。更多工具请访问 [opena2a.org](https://opena2a.org)。 ## 许可证 Apache-2.0 —— 请参考 [LICENSE](LICENSE)
标签:Access Control, Agent, AI代理, API集成, Audit Trail, Cryptographic Identity, EVTX分析, MCP, Streamlit, Supply Chain Security, Trust Score, 仪表盘, 信任评分, 加密身份, 区块链身份, 去中心化, 可观测性, 可视化界面, 安全合规, 审计日志, 开源, 无服务器, 权限管理, 模型越狱, 治理, 测试用例, 网络代理, 访问控制, 请求拦截, 身份管理, 逆向工具