问题域/PD-319

多租户认证授权

Multi-Tenant Authentication

API Key 驱动的多租户认证体系,支持三级角色和租户级数据隔离

子问题

1.API Key 生成与轮换

2.角色权限校验链

3.租户数据空间隔离

4.请求上下文传播

5.开发模式免认证降级与生产模式切换

6.ADMIN 角色跨账户越权防护

7.agent 级空间哈希命名与碰撞控制

各项目的解法1 solutions

Signals

横向对比

维度OpenViking
认证方式API Key + Bearer Token 双通道,hmac.compare_digest 防时序攻击
角色模型ROOT/ADMIN/USER 三级枚举,require_role 声明式 Depends 工厂
租户隔离URI 前缀自动注入 account_id,viking:// → /local/{account_id}/ 物理隔离
空间粒度三维隔离:account → user_space_name → agent_space_name(MD5 哈希)
Key 管理双层 JSON 存储 + 内存 Dict 索引,O(1) 查找,支持即时轮换
开发模式无 root_api_key 时自动降级为 ROOT 免认证,仅限 localhost

最佳实践

1.hmac.compare_digest 防时序攻击

2.RequestContext 贯穿全链路传播租户信息

3.require_role 工厂让权限要求在函数签名中可见可审计

4.contextvars.ContextVar 绑定 RequestContext 兼容遗留调用路径

5.secrets.token_hex(32) 生成 256-bit 密码学安全 Key