模块 8企业 Agent 平台
身份授权与多租户
先区分平台中的 Principal 与责任
- 最终用户、审批者和租户管理员
- 前端/Host 应用、Agent 服务和 Runtime 工作负载
- Tool、MCP Server、远程 Agent 与受保护资源
- 平台运维与 Break-glass 身份
- 模型输出不是可信身份、授权决定或用户同意
每次行动都保留完整委托链
- 入口从可信会话解析用户、租户、应用和用途
- Agent Runtime 使用自身工作负载身份调用基础设施
- 访问业务资源时显式携带 On-behalf-of 用户委托
- Subagent 和远程 Agent 只获得子任务需要的衰减权限
- 调用结果能追溯发起者、代表者、执行者和批准者
凭据生命周期与 Agent Run 生命周期分离
- 短期 Token 绑定 issuer、audience、resource、scope 和主体
- 跨服务使用 Token Exchange 或独立服务身份,不透明透传原 Token
- 敏感动作按风险触发 Step-up 或重新授权
- 长任务恢复时重新验证身份、权限和外部状态
- 到期、撤销、轮换和主体离职能终止后续行动
租户上下文必须端到端不可丢
- 入口从可信身份解析 tenant/user/app
- 写入 Run、Trace、队列消息和存储主键
- 调用模型、Tool、RAG 和 Artifact 时显式传递
- 禁止从用户 Prompt 中读取租户身份
RBAC、ABAC 与 Capability 组合
RBAC
- 角色表达组织职责与基础授权
- 避免角色爆炸和跨租户复用
ABAC
- 结合资源、地域、敏感度和时间
- 策略输入必须来自可信属性源
Capability / Scope
- 约束具体 Tool、动作和资源
- 短期、可撤销并绑定代表身份
决策与执行分离
- Policy Decision Point 返回稳定结果
- 每个 Tool/数据入口由 Enforcement Point 落实
每个数据层都要选择隔离策略
- 独立库/Schema/行级隔离的权衡
- 向量索引分区与权限过滤不可后置
- 缓存 Key、连接池和本地缓存携带租户
- 日志、Trace、评测样本和导出的访问控制
运行资源防止邻居干扰
- 队列、Worker 池和并发配额
- 模型 Token/费用、Tool 调用和存储配额
- Sandbox、网络和凭据按租户/Run 隔离
- 关键租户优先级不能饿死普通租户
授权决定要贯穿异步、审批和恢复边界
- Policy Decision 与执行动作绑定稳定资源和参数版本
- 队列、重试和回调携带最小授权上下文而非完整凭据
- 审批不会永久冻结权限,提交时再次检查当前授权
- 权限拒绝、降级、例外和 Break-glass 都进入审计链
租户管理员需要可配置但受底线约束
- 模型/Tool/Agent 准入
- 数据保留、地域和内容政策
- 预算、审批和自动化范围
- 平台安全底线不可被租户关闭
系统化测试跨租户泄露
- ID 枚举、缓存混淆和索引过滤缺失
- 异步消息、重试和后台任务丢失租户上下文
- Trace/错误/导出泄露
- 并发资源耗尽与计费归属错误
- 租户删除后的派生数据残留