Documentation Index
Fetch the complete documentation index at: https://docs.skrmir.com/llms.txt
Use this file to discover all available pages before exploring further.
认证与授权模型
适用对象
本页面向平台安全设计者、后端实现者、CLI/Agent 集成方,以及需要理解生产环境门禁的运维团队。目标与范围
本页定义三件事:- AuthN、AuthZ、Approval 的职责边界
- 统一执行链与错误语义
- 生产环境变更为何需要 step-up 与 approval
核心概念
AuthN
AuthN 只负责:身份验证、会话和 token 管理、输出标准化Principal。
AuthZ
AuthZ 根据principal / env / resource / action / context 做授权决策,输出统一为 allow / deny / require_approval。
Approval
Approval 负责审批票据创建与流转、审批绑定校验、审批记录与审计。Task
Task 负责记录执行状态、进度与结果。 它不是 Approval 的别名,也不替代 Approval 的决策语义。 Approval 记录的是“是否允许某个高风险动作进入执行链”,Task 记录的是“进入执行后发生了什么”。标准流程
AuthN -> AuthZ -> Approval(if required) -> Execute -> Audit
当前控制面状态与审批写入面
在正式 OpenAPI 接入前,当前冻结的最小控制面接口为:GET /api/v1/system/infoGET /api/v1/authn/statusGET /api/v1/authz/statusPOST /api/v1/approvals
/api/v1/system/info是平台级聚合状态入口,不替代/healthz或/readyz。authn/authz status只做状态可见性,不返回 token、session 明细、原始策略表或实时授权结果。POST /api/v1/approvals当前已交付为 approval ticket 创建入口;在 approval repository 已配置时成功返回201 Created,未配置时返回结构化503 Service Unavailable。- 当前 status surface 的目标行为是返回
200 OK的 JSON 状态对象,并明确区分placeholder / ready / degraded,而不是继续返回501 Not Implemented。
- 必绑:
subject_id、env、resource_hash、action - 推荐绑定:
command_hash nonce必须存在,且 ticket 成功消费后必须失效
规划中的 CLI 示例(尚未实现)
当前仓库尚未交付这个approval request 子命令;HTTP approval 写面当前同样仍处于保留状态,而不是已可执行的正式入口。
Web UI 路径
- 登录与身份上下文
- 生产审批
- 授权失败与审批要求提示
常见问题 / 风险提示
- Better Auth 只负责 AuthN,不负责最终业务授权。
- 长生命周期 JWT 不应承载可变授权状态。
- 任何 prod 写操作若绕过审批链,都应视为架构违规。
- 平台级边界上的 AI 与自动化访问必须继续受 AuthZ、Approval 和审计约束,而不是变成绕过治理的高权限入口。
- AiOS 负责平台级边界,不负责 DevBox 内每条编码工具命令的细粒度审批。