- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 IS WSO2 对 XACML 进行授权。我能够获得静态资源的授权。但在粒度化方面,我不确定设计。
示例:如果我有像 getCarDetails(Object User) 这样的方法,我应该只获取分配给该特定用户的那些汽车,那么如何使用 XACMl 处理这个问题?
Wso2 提供了对 PIP 的支持,我们可以在其中使用可以从数据库中获取数据的自定义类。但我不确定我们是否应该在 PDP 端复制原始数据库,或者将原始数据库提供给 PIP 以使用实时数据进行更新。
因为 Cars 对于应用程序来说是动态的,例如。目前有 10 辆车分配给用户 Alice。突然主管在他的列表中添加了 20 辆汽车,这些汽车将在应用程序级数据库中。那么这 20 辆汽车将如何在 PDP 级别的策略中自动分配,直到它也有这个最新信息。
我可能理解有误。但是我不确定如何处理这个问题,因为在整个应用程序中我们可能会遇到很多这种复杂的场景,有时我们会从超过 4 或 5 个表中获取一个用户的数据,那么如何处理这种场景?
最佳答案
您的问题很好,答案将突出 XACML 和外部化授权作为一个整体的主要优势。
在 XACML 中,您可以定义通用的全局规则,关于什么是允许的,什么是不使用我称之为高级属性的,例如车辆的属性(在您的情况下)或用户(角色,部门,...)
例如,一个简单的规则可以是(使用 ALFA 语法):
policy viewCars{
target clause actionId=="view" and resourceType=="car"
apply firstApplicable
rule allowSameRegion{
permit
condition user.region==car.region
}
}
用户的区域和汽车的区域都保存在应用程序的数据库中。这些值是使用 PIP 或政策信息点读取的(详情 here )。
在您的示例中,您谈论的是直接分配,即用户已直接分配给车辆。在这种情况下,规则将变为:
policy viewCars{
target clause actionId=="view" and resourceType=="car"
apply firstApplicable
rule allowAssignedVehicle{
permit
condition user.employeeId==car.assignedUser
}
}
这意味着分配的用户信息必须保存在应用程序数据库、CSV 文件、Web 服务或其他信息源中。这意味着从管理的角度来看,管理员会在用户的分配列表中添加/删除车辆(或者反过来:在车辆的分配用户列表中添加/删除分配的用户)。
XACML 规则本身不会改变。如果主管将 20 多辆汽车添加到员工列表(在应用程序级数据库中维护),则 PDP 将能够通过 PIP 使用该信息,并相应地授予或拒绝访问权限。
XACML 的主要好处是您可以添加第二条规则,规定主管可以看到他/她分配到的汽车(正常规则)以及分配给他/她的下属的汽车(新规则)委托(delegate)代理规则)。
这张图摘自 Axiomatics 博客,总结了 XACML 流程:
HTH,如果您还有其他问题,请告诉我。你可以download ALFA here你可以watch tutorials here .
关于wso2 - 企业应用中如何用XACML处理深层次粒度化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27626555/
我是一名优秀的程序员,十分优秀!