我在阿尔法写了一份政策,其中:
我想知道如何指定一个特定的转让限制。从管理员的角度来看,如果我想在未来更新转让限制,应该在哪里以及如何进行?
例如,.I希望将当前的转移限制设置为2000美元。我如何做到这一点,然后如何更新转让限制,如果我想?
发布于 2014-10-16 12:55:17
为了添加David提到的内容,您可以在数据库单元格中设置此值,并脱机更新ABA/XACML的值(使用组织中的其他进程)。然后,通过告诉PDP withdrawalLimit是使用SQL "select limit from ....“从特定DB查询的,可以在计算时查询该值。
发布于 2014-10-15 09:05:02
因此,这是XACML的优点,因为规则是在策略中定义的,因此可以动态更新访问控制规则。在XACML策略中可能已经配置了传输限制。可以通过编辑XACML策略来更新它。然后,必须为PDP运行时对此更新进行修改,并根据它切断请求。
ALFA插件可以很容易地更新XACML策略属性,而不仅仅是更新原始策略。希望你能找到。但是,如果您更新了XACML策略,它也会工作。
发布于 2014-10-15 23:21:21
很高兴看到你取得了进步。在您的例子中,ALFA中的授权策略如下所示:
namespace com.axiomatics.banking{
attribute actionId{
category = actionCat
id = "actionId"
type = string
}
attribute resourceType{
category = resourceCat
id = "resourceType"
type = string
}
attribute amount{
category = resourceCat
id = "amount"
type = double
}
/**
* Policy to transfer money
*/
policy transferMoney{
target clause actionId=="transfer" and resourceType=="money"
apply firstApplicable
/**
* Deny access if amount is greater than 2000
*/
rule checkAmount{
target clause amount > 2000
deny
}
/**
* Grant access
*/
rule allow{
permit
}
}
}请注意,在我的示例中,我使用了一个否定规则来拒绝访问。例如,如果我想将Advice或Obligation添加到该规则中,以说明拒绝的原因,这是很好的。
现在,您的问题与策略结构无关,而是与属性值有关。在XACML中,您有两个选项。以下任一项:
在后一种情况下,您的规则是:
/**
* Deny access if amount is greater than the user's withdrawal limit
*/
rule checkAmount{
condition amount > withdrawalLimit
deny
}在中,您可以配置一个PIP /属性连接器,以便根据用户id检索值。
大卫。
https://stackoverflow.com/questions/26375742
复制相似问题