用途:该技能用于在业务逻辑入口点(命令处理器、查询处理器等)强制实施授权业务约束,确保只有具备执行该动作权限的请求者才能进入业务操作。它属于通用业务约束技能的特化,专门处理授权,与处理身份认证的 ensure requester is authenticated 技能互为对应,两者职责分开。
主要能力与规则:授权约束必须使用固定的通用措辞 ensure requester is authorized,并按本地命名习惯翻译为 ensureRequesterIsAuthorized、ensure_requester_is_authorized、EnsureRequesterIsAuthorized 或最接近的等价形式;名称不随入口点变化,动作相关的授权策略写在函数体内。约束必须是模块私有函数,与其保护的入口点位于同一模块,不导出、不跨模块复用;若两个入口点需要同一授权规则,各自模块仍分别定义该函数,可委托给共享策略原语,但共享原语本身不是该约束。约束位置在认证之后、任何其他依赖授权的业务约束、数据读取和数据变更之前。成功时返回单位等价的值(void、unit、undefined、None 或结果包装的成功侧),不返回布尔值、角色、策略或权限数据;失败时返回或抛出错误,表明请求者无权执行该动作,且该错误需与未认证错误区分。函数体只编码该入口点动作的授权策略,不混入认证、资格、可用性等无关规则。
输入约定:当项目启用执行上下文技能时,约束从执行上下文获取请求者身份,仅接受动作相关输入作为参数;否则显式传入请求者 id 及动作相关输入。
适用范围与限制:适用于操作请求者、租户或组织所属资源,或需要角色、权限、能力、范围、策略决策,或受请求者身份与资源关系业务规则限制的入口点。若入口点对所有已认证请求者开放且确实无需授权,应显式记录该决定并跳过此约束,而非默认省略。资料未提供安装命令、收费方式和适用平台信息。