Wso2 每个用户一个XACML文件是一个好方法吗?
场景: 我正在为WSO2 IS 5.0.0开发一个定制PAP。我有简单的管理规则,例如: 用户Bob可以读取分支XYZ的订单 用户Bob可以创建分支机构PTO的发票 我正在考虑为每个用户编写一个策略,其中包含许多规则,每个规则都包含资源和操作作为目标,并在条件中测试分支和用户 以下是一个例子:Wso2 每个用户一个XACML文件是一个好方法吗?,wso2,wso2is,erp,xacml,xacml3,alfa,Wso2,Wso2is,Erp,Xacml,Xacml3,Alfa,场景: 我正在为WSO2 IS 5.0.0开发一个定制PAP。我有简单的管理规则,例如: 用户Bob可以读取分支XYZ的订单 用户Bob可以创建分支机构PTO的发票 我正在考虑为每个用户编写一个策略,其中包含许多规则,每个规则都包含资源和操作作为目标,并在条件中测试分支和用户 以下是一个例子: /空气污染指数/订单/* 得到 user@company.com.br XYZ 动力输出轴 /空气污染指数/订单/* 邮递 user@company.com.br 动力输出轴 问题: 如上所述,对于一
/空气污染指数/订单/*
得到
user@company.com.br
XYZ
动力输出轴
/空气污染指数/订单/*
邮递
user@company.com.br
动力输出轴
问题:
如上所述,对于一个许可问题,我有太多的行。我正在使用一个ERP系统,它可以有许多资源(API),用户可以在it上下文中访问许多分支。我认为,使用这种每个用户一个文件的方法,我将拥有大文件,我不知道这是否会导致PDP和我的ERP性能不佳
问题:
有人认为这里有更好的方法吗?不,这不是一个好方法 您正在使用XACML,就像使用ACL或RBAC系统一样。相反,您希望根据更高级别的策略对授权进行建模 你的要求是: 用户Bob可以读取分支XYZ的订单吗 在本例中,为什么Bob可以读取分支XYZ中的订单?用户是否属于该分支?换句话说,授权逻辑是什么?例如,以下内容是否足够重写
A user with the role == manager can do the action == view
on a resource of type==order if order.branch == user.branch.
重写可以更好地扩展,因为它适用于任何用户、任何订单和任何分支
用户Bob可以创建分支机构PTO的发票
类似地,您可以将此示例重写如下:
A user with the role == purchase manager can do the action == create
on a resource of type==invoice if order.branch == user.branch.
我所做的是识别需求中的构建块(或属性),并将需求重写为授权规则。从那时起,您可以选择使用ALFA()实现规则。如果您使用用于Eclipse的ALFA插件,结果将实时转换为XACML 3.0
这是Axiomatics策略服务器中的外观:
我希望这有帮助,
大卫。不,这不是一个好办法 您正在使用XACML,就像使用ACL或RBAC系统一样。相反,您希望根据更高级别的策略对授权进行建模 你的要求是: 用户Bob可以读取分支XYZ的订单吗 在本例中,为什么Bob可以读取分支XYZ中的订单?用户是否属于该分支?换句话说,授权逻辑是什么?例如,以下内容是否足够重写
A user with the role == manager can do the action == view
on a resource of type==order if order.branch == user.branch.
重写可以更好地扩展,因为它适用于任何用户、任何订单和任何分支
用户Bob可以创建分支机构PTO的发票
类似地,您可以将此示例重写如下:
A user with the role == purchase manager can do the action == create
on a resource of type==invoice if order.branch == user.branch.
我所做的是识别需求中的构建块(或属性),并将需求重写为授权规则。从那时起,您可以选择使用ALFA()实现规则。如果您使用用于Eclipse的ALFA插件,结果将实时转换为XACML 3.0
这是Axiomatics策略服务器中的外观:
我希望这有帮助,
大卫。不,这不是一个好办法 您正在使用XACML,就像使用ACL或RBAC系统一样。相反,您希望根据更高级别的策略对授权进行建模 你的要求是: 用户Bob可以读取分支XYZ的订单吗 在本例中,为什么Bob可以读取分支XYZ中的订单?用户是否属于该分支?换句话说,授权逻辑是什么?例如,以下内容是否足够重写
A user with the role == manager can do the action == view
on a resource of type==order if order.branch == user.branch.
重写可以更好地扩展,因为它适用于任何用户、任何订单和任何分支
用户Bob可以创建分支机构PTO的发票
类似地,您可以将此示例重写如下:
A user with the role == purchase manager can do the action == create
on a resource of type==invoice if order.branch == user.branch.
我所做的是识别需求中的构建块(或属性),并将需求重写为授权规则。从那时起,您可以选择使用ALFA()实现规则。如果您使用用于Eclipse的ALFA插件,结果将实时转换为XACML 3.0
这是Axiomatics策略服务器中的外观:
我希望这有帮助,
大卫。不,这不是一个好办法 您正在使用XACML,就像使用ACL或RBAC系统一样。相反,您希望根据更高级别的策略对授权进行建模 你的要求是: 用户Bob可以读取分支XYZ的订单吗 在本例中,为什么Bob可以读取分支XYZ中的订单?用户是否属于该分支?换句话说,授权逻辑是什么?例如,以下内容是否足够重写
A user with the role == manager can do the action == view
on a resource of type==order if order.branch == user.branch.
重写可以更好地扩展,因为它适用于任何用户、任何订单和