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