5.12.3. 使用 XACML 的细颗粒度授权

5.12.3.1. 关于细颗粒度授权和 XACML

细颗粒度授权是为了满足决策过程中的需求改变以及涉及的多个变量,它成为了访问模块的授权的基础。因此,细颗粒度授权本身就是复杂的。
JBoss 将 XACML 作为一个媒介来实现细颗粒度的授权。XACML 为实现细颗粒度的复杂性提供了基于标准的解决方案。XACM了定义一个策略语言以及用于决策的架构。XACM了架构包含 Policy Enforcement Point(PEP),它拦截普通程序流里的任何请求,然后请求 Policy Decision Point (PDP) 基于和 PDP 关联的策略来做出访问决定。PDP 评估 PEP 创建的 XACM 请求并遍历策略来进行下列的访问决策:
  • DENY - 访问被批准。
  • DENY - 访问被拒绝。
  • INDETERMINATE - PDP 里有一个错误。
  • NOTAPPLICABLE - 请求里缺乏某个属性或者没有匹配的策略。
下面是 XACML 的功能:
  • Oasis XACML v2.0 库
  • 基于 JAXB v2.0 的对象模型
  • 用于存储/读取 XACML 策略和属性的 ExistDB 集成