Speedle 与 XACML 有什么关系?
可扩展访问控制标记语言(eXtensible Access Control Markup Language,XACML)是 OASIS 访问控制标准,定义策略及请求、响应等概念。Speedle+ 使用自己的Speedle 策略定义语言(SPDL)与 API。XACML 的行为以 OASIS XACML 3.0 标准为准;本文说明架构职责的对应关系,不代表 XACML 标准符合性声明。
对应组件职责
| XACML 概念 | 职责 | Speedle+ 中的对应方式 |
|---|---|---|
| PAP:策略管理点 | 管理授权策略 | 策略管理服务(PMS) |
| PDP:策略决策点 | 评估授权请求 | 授权决策服务(ADS)或嵌入式引擎 |
| PEP:策略执行点 | 对实际操作执行决策 | 调用 Speedle 的应用、网关或集成组件 |
| PIP:策略信息点 | 提供决策使用的属性 | 可信应用数据及配置的身份、属性集成;不代表内置 XACML PIP 接口 |
现有架构文档已经介绍 PAP/PDP 的对应关系。决策拒绝或评估失败时,执行点仍需阻止实际操作。
策略语法与决策语义
SPDL 授权语句指定效果、主体、操作和资源,并可附加条件:
grant user alice read book if clearance >= 3在 Playground 中,用户为 alice、操作为 read、资源为 book、数值属性 clearance = 4 时,该语句允许访问;值为 2 时不满足条件。
XACML 策略可以指定组合算法,并使用其他标准构造。Speedle 中,适用的显式拒绝优先于允许。不能假定任意 XACML 组合算法、义务(obligation)、建议(advice)或属性类别映射在转换后仍保持原语义;也不能把 Speedle 评估错误静默视为允许,或直接等同于某个 XACML 响应码。
迁移前评估转换
先确认实际使用的策略构造和配置规范,再映射主体及身份域、操作、资源、属性名称与类型,以及决策和错误处理。使用代表性请求比较预期结果,覆盖拒绝和属性缺失。对于不支持的构造,应明确记录,不能在转换时直接丢弃。
本文不提供 XACML XML 策略导入器、XACML 协议端点或符合性认证。设计集成前,请阅读 SPDL 参考、决策 API、PBAC 指南和 OES 比较。