12.5 实战:MiniHarness 安全层集成
权限模型映射表
MiniHarness 4 级
12.2 六级模型
语义
适用场景
class PermissionLevel(Enum):
DENY = 0 # 永不允许
ASK = 1 # 每次询问用户
AUTO = 2 # 自动批准(可缓存之前的批准)
OVERRIDE = 3 # 管理员覆盖
class PermissionDecisionEngine:
def register_policy(self, tool_name: str, level: PermissionLevel):
"""为工具注册权限策略"""
self.policies[tool_name] = level
async def decide(self, tool_name: str, user_id: str) -> Decision:
"""返回 ALLOW / DENY / ASK_USER"""
level = self.policies.get(tool_name, PermissionLevel.ASK)
if level == PermissionLevel.DENY:
return Decision.DENY
elif level == PermissionLevel.AUTO:
# 检查用户曾否批准过
if self._was_approved_before(user_id, tool_name):
return Decision.ALLOW
else:
return Decision.ASK_USER
elif level == PermissionLevel.ASK:
return Decision.ASK_USER
else: # OVERRIDE
return Decision.ALLOW
def _was_approved_before(self, user_id: str, tool_name: str) -> bool:
return (user_id, tool_name) in self.user_approvals
def record_approval(self, user_id: str, tool_name: str):
self.user_approvals.add((user_id, tool_name))12.5.2 第二层:路径校验
12.5.3 第三层:命令护栏
12.5.4 第四层:安全执行器集成
12.5.5 部署检查清单
12.5.6 总结
最后更新于
