Rah*_*ora 2 access-control xacml
我在系统中遇到了许多不同的访问控制模型.在任何系统中实现访问控制模型时,我们通常通过为访问控制创建单独的表来对数据库中的规则/权限进行硬编码(考虑RDBMS).此外,这些规则/权限可以存储在XML数据库中.我想知道在RDBMS和XML数据库上存储规则之间有什么区别?此外,我们何时应该使用XACML在系统中实现访问控制模型?我的意思是,如何决定是否应该对数据库中的规则/权限进行硬编码,还是应该使用XACML策略语言?
谢谢.
免责声明:我为Axiomatics工作,这是XACML的供应商实现
如果按照自己的方式存储授权逻辑,可以在RDBMS或XML数据库中完成.没关系.我怀疑XML为您带来了任何附加功能.
现在,如果您想要一个能够满足RDBMS系统和其他类型应用程序(CRM,.NET,Java ......)的授权系统,那么您希望使用与其保护的应用程序类型无关的解决方案.这就是可扩展访问控制标记语言XACML的目标.
XACML提供基于属性的,基于策略的访问控制(ABAC和PBAC).这使您能够编写极具表现力的授权策略,并在单个存储库中集中管理它们.然后,中央授权引擎(称为策略决策点或PDP)将为您的不同应用程序提供决策.
正如Bell指出的那样,您需要的最小属性集通常是关于用户(主题),资源和操作的属性.XACML还允许您添加环境属性.这意味着您可以编写以下类型的策略:
医生可以查看他们被分配到的患者的医疗记录.
XACML的优点包括: - 如Bell所述,外部化授权逻辑的能力 - 无需经历开发/部署生命周期即可更新授权逻辑 - 能够以相同的方式为许多不同的应用程序实现细粒度授权 - 能够对授权逻辑进行可见性和审计
HTH