docs: clarify proxy pcexec rules
This commit is contained in:
@@ -20,8 +20,10 @@
|
||||
|
||||
建议约束:
|
||||
- `config.proxy-allowlist` 应为 agent 标识列表
|
||||
- `allowlist` 仅支持精确匹配,不支持通配、分组或模糊匹配
|
||||
- 若调用方不在 allowlist 中,应直接拒绝调用
|
||||
- 默认配置应偏保守;未配置时建议视为不允许任何 agent 调用
|
||||
- 一旦调用方 agent 在 allowlist 中,则允许其代理任意 `proxy-for` 值
|
||||
|
||||
### 3. `proxy-pcexec` 与 `pcexec` 的关键区别
|
||||
`proxy-pcexec` 的功能与 `pcexec` 基本一致,核心差异如下:
|
||||
@@ -44,9 +46,14 @@
|
||||
|
||||
### 权限校验
|
||||
调用 `proxy-pcexec` 时应至少进行以下校验:
|
||||
1. 校验调用方 agent 是否在 `config.proxy-allowlist` 中
|
||||
1. 校验调用方 agent 是否在 `config.proxy-allowlist` 中(精确匹配)
|
||||
2. 校验 `proxy-for` 是否存在且非空
|
||||
3. 通过校验后,再执行与 `pcexec` 等价的命令执行流程
|
||||
3. 不要求 `proxy-for` 必须是已注册或已知 agent-id,可自由填写
|
||||
4. 通过校验后,再执行与 `pcexec` 等价的命令执行流程
|
||||
|
||||
说明:
|
||||
- allowlist 控制的是“谁可以发起代理执行”
|
||||
- 只要调用方 agent 在 allowlist 中,就允许其代理任意 agent
|
||||
|
||||
### 环境变量注入
|
||||
- `AGENT_ID` = `proxy-for`
|
||||
@@ -60,11 +67,14 @@
|
||||
- 通过显式 `proxy-for` 参数,避免隐式身份继承
|
||||
- 让代理身份切换是显式、可审计、可配置的
|
||||
|
||||
## 待进一步明确的问题
|
||||
- `proxy-for` 是否只允许填写已注册/已知的 agent-id
|
||||
- 审计日志中是否需要同时记录:
|
||||
- 实际调用者 agent-id
|
||||
- `proxy-for` 值
|
||||
- 最终执行命令
|
||||
- `config.proxy-allowlist` 的格式是否需要支持通配、分组或仅支持精确匹配
|
||||
- 是否需要对 `proxy-for` 再增加单独 allowlist / 映射限制,避免允许调用者代理任意 agent
|
||||
## 日志与审计
|
||||
建议日志至少记录:
|
||||
- `executor`(调用方真实 agent-id)
|
||||
- `proxy-for`
|
||||
- 最终执行命令
|
||||
|
||||
## 已明确的设计结论
|
||||
- `proxy-for` 可以随意填写,不要求必须是已注册 agent
|
||||
- 日志需要记录 `executor` 和 `proxy-for`
|
||||
- `config.proxy-allowlist` 仅支持精确匹配
|
||||
- allowlist 中的 agent 可以代理任意 agent,不需要额外的 `proxy-for` 限制
|
||||
|
||||
Reference in New Issue
Block a user