Wso2 每个用户一个XACML文件是一个好方法吗?

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 动力输出轴 问题: 如上所述,对于一

场景:

我正在为WSO2 IS 5.0.0开发一个定制PAP。我有简单的管理规则,例如:

用户Bob可以读取分支XYZ的订单

用户Bob可以创建分支机构PTO的发票

我正在考虑为每个用户编写一个策略,其中包含许多规则,每个规则都包含资源和操作作为目标,并在条件中测试分支和用户

以下是一个例子:


/空气污染指数/订单/*
得到
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.
重写可以更好地扩展,因为它适用于任何用户、任何订单和