Token导航 LogoToken导航TokenDH.com
Xdomain Openclaw Agntcy Poc logo
运维云端stdio官方级别未说明来源级核验

Xdomain Openclaw Agntcy Poc

MCP Server

一个跨域AI代理身份的概念验证,结合AGNTCY身份证明(W3C可验证凭证)与跨应用访问(RFC 8693令牌交换/IETF ID-JAG),用于验证代理身份和权限。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
身份验证Python权限管理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

AKRita23

提供方

AKRita23

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m agent.xaa_orchestrator --demo

详细介绍

跨域代理身份PoC

跨域AI代理身份的工作概念证明,结合 AGNTCY身份证明 (W3C可验证证书) 跨应用访问 (RFC 8693令牌交换/ITF-ID-JAG)。

![License](LICENSE)

______________________________________________________________________

这表明了什么

OpenClaw代理代表授权用户(Sarah)执行跨域任务(读取天气、发布到特定的Slack频道),具有两层信任:

能力层 --AGNTCY颁发的W3C可验证凭证(徽章)证明了代理的身份和能力,经过签名和加密验证。

范围层 --IETF身份断言JWT授权授予(ID-JAG,Okta XAA)通过企业IdP发布范围访问令牌,在自托管资源授权服务器上进行验证。

两层独立执行。通道限制范围(slack.post.agent-weather-alerts,不 slack.post).主题端到端传播以供审核。相同的编排器代码针对两个不同的IdP运行。

______________________________________________________________________

建筑

端到端流程(6个步骤)

  1. 领取徽章 --Orchestrator从身份节点的已知端点获取AGNTCY徽章(W3C VC,JWT编码)
  2. 徽章验证 --编排者根据AGNTCY身份节点对徽章进行加密验证
  3. ID-JAG交易所 --Orchestrator通过RFC 8693令牌交换将Sarah的IdP ID令牌交换为ID-JAG。AGNTCY徽章以以下方式发送 actor_token. *(这证明了什么,请参阅下面的“实证结果”。)*
  4. 访问令牌薄荷 --资源授权服务器根据IdP JWKS验证ID-JAG,生成绑定到代理和请求作用域的作用域访问令牌
  5. TBAC执法 --中间件重新验证徽章,检查徽章功能,请求范围对齐,验证目标域授权。工具发货前允许或拒绝。
  6. 工具执行 --MCP层调度授权的工具调用(天气读数+Slack帖子)。来自访问令牌的主题声明会传播到每次工具调用中进行审计。

双实例部署:

  • 服务#1 --AGNTCY身份节点(端口4000)+OpenClaw编排器
  • 服务#2 --资源授权服务器(验证ID JAG,创建访问令牌)

两层执法

PoC演示 独立故障域 授权:

权威运营商强制执行
能力AGNTCY身份节点徽章JWT(能力)TBAC中间件
作用域IdP(xaa.dev或Okta)访问令牌(OAuth作用域)资源认证服务器+中间件

一层的妥协不会使另一层坍塌。徽章上写着“这个特工 *可能* 执行这些操作”;访问令牌显示“此令牌 *携带许可* 在这个资源上做这些事情。“两者都是必需的。

路径A:xaa.dev IdP

设置

  1. 注册应用程序 在https://xaa.dev.您将收到四个凭证:

- 主(IdP)客户端ID+密码 - 资源客户端ID+密钥(形状: {client_id}-at-res_{uuid})

  1. 配置资源应用程序 在xaa.dev:

- 资源标识符URL:您的资源认证服务器的受众标识符 - MCP范围: weather.read, slack.post.agent-weather-alerts - MCP资源URI和所需工具

  1. 导出环境变量 (服务#1):
   export USE_XAA_DEV=true
   export XAA_CLIENT_ID=
   export XAA_CLIENT_SECRET=
   export XAA_RESOURCE_CLIENT_ID=
   export XAA_RESOURCE_CLIENT_SECRET=
   export XAA_RESOURCE_AUDIENCE=http://weather-slack-resources.com
   export SLACK_CHANNEL=agent-weather-alerts
   export SLACK_BOT_TOKEN=
  1. Bootstrap Sarah的ID令牌:
   export XAA_ID_TOKEN=$(python -m scripts.get_xaa_id_token)
  1. 运行演示:
   python -m agent.xaa_orchestrator --demo

路径B:Okta租户IdP

先决条件

  • Okta租户 跨应用访问(EA) 启用
  • 代理0 已安装(跨应用程序访问示例请求应用程序)目录应用程序→ 代表openclaw代理
  • 全部0 已安装(跨应用程序访问示例资源应用程序)目录应用程序→ 表示资源(天气松弛资源)
  • 测试分配给两个应用程序的用户
  • 管理在两个应用程序上双向建立的连接(“应用程序授予同意”+“提供同意的应用程序”)

设置

  1. 配置Okta应用程序:

- Agent0重定向URI: http://localhost:8080/callback - Todo 0重定向类型: http://localhost:5001/openid/callback/customer1

  1. 配置资源身份验证服务器 (服务#2-- resource-auth-server/.env):

OKTA_ISSUER=https://.oktapreview.com 资源_审计=http://localhost:5001 注册_客户端ID=wiki0-at-todo0 本地_签名_密钥= ACCESS_TOKEN_TTL=3600 重新启动: sudo systemctl restart resource-auth-server.service

  1. 导出环境变量 (服务#1):
   export USE_XAA_DEV=false
   export OKTA_DOMAIN=.oktapreview.com
   export ORG2_DOMAIN=.oktapreview.com
   export OKTA_CLIENT_ID=
   export OKTA_CLIENT_SECRET=
   export WEATHER_AUDIENCE=http://localhost:5001
   export SLACK_AUDIENCE=http://localhost:5001
   export RESOURCE_AUTH_CLIENT_ID=wiki0-at-todo0
   export DELEGATING_USER=@example.com
   export SLACK_CHANNEL=agent-weather-alerts
   export SLACK_BOT_TOKEN=
  1. Bootstrap Sarah的ID令牌 (针对Okta org认证服务器的授权码+PKCE):
   sudo lsof -ti:8080 | xargs -r sudo kill -9 2>/dev/null
   python -m scripts.get_okta_sarah_token
   export SARAH_ACCESS_TOKEN="
"
  1. 运行演示:
   python -m agent.xaa_orchestrator --demo

路径B注意事项

PoC目前使用Okta的目录Todo0占位符默认值,而不是 自定义注册受众和客户端id值。这是因为 租户端受众覆盖(由Okta的XAA团队管理)正在等待处理。作为一个 结果:

  • 观众声明 在ID-JAG中 http://localhost:5001 (Todo0目录

默认值),而不是资源身份验证服务器的实际公共URL。资源身份验证 服务器已配置为接受此受众以完成流程。

  • 客户身份 在ID-JAG中 wiki0-at-todo0 (Okta的目录出炉了

Agent0的资源侧客户端标识符→Todo0样本对),而不是openclaw代理的名称。

加密信任链完好无损 (Okta符号,资源认证服务器 根据Okta的JWKS进行验证,强制进行受众匹配)。占位符 标签是使用目录占位符应用程序的一个有记录的限制 通过Okta XAA团队配置在生产中替换为实际值 部署。

项目结构

路径目的
agent/xaa_orchestrator.py6步XAA流编排器
agent/config.pyAgentConfig env变量加载器
identity/badge_issuer.py从知名端点获取AGNTCY徽章
identity/badge_verifier.pyAGNTCY徽章加密验证
identity/xaa_dev_client.py路径A --xaa.dev IdP代币交换
identity/okta_xaa.py路径B --Okta IdP代币交易所
identity/resource_exchange.pyID-JAG→ 资源认证服务器上的访问令牌兑换
middleware/agntcy_tbac.pyTBAC执行(badge.cabilityзtoken.scopesз任务)
mcp_servers/weather_mcp.py打开Meteo工具调度器
mcp_servers/slack_mcp.py松弛 chat.postMessage 工具调度员
resource-auth-server/main.py独立资源身份验证服务器(LIST#2)
scripts/get_xaa_id_token.pySarah的ID令牌引导——路径A
scripts/get_okta_sarah_token.pySarah的ID令牌引导——路径B
tests/单元+集成测试
docs/xaa-flow.png架构图
requirements.txtPython依赖关系
.env.exampleEnv-var模板

资源API强制执行(开放工作)

Open Meteo和Slack是 未启用XAA 在这个PoC中——访问令牌 在编排器/MCP中间件层而不是在 资源API本身。这被记录为范围界定决定:贡献 该PoC的一部分是直到访问令牌的代理信任边界(徽章+范围)。关闭最后一跳需要:

  • 支持模拟XAA的资源服务(例如Auth0的XAA资源测试版),或
  • 目标API中的本机XAA支持

许可证

Apache 2.0——请参阅 许可证.

目录标签

目录标签

身份验证Python权限管理本地部署跨域代理W3C可验证凭证令牌交换

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP