首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在XACML义务中,为什么"fulfillOn“属性只保留为允许和拒绝?

在XACML义务中,为什么"fulfillOn“属性只保留为允许和拒绝?
EN

Stack Overflow用户
提问于 2015-11-18 19:29:44
回答 1查看 213关注 0票数 0

我想知道为什么义务语句中的WSO2 Balana框架只接受“允许”或“拒绝”条件的fulfillOn参数,而忽略“不适用”的结果,这对于在逻辑流程中截取和记录有助于策略调试过程也很有趣。

在Balana ObligationExpression.java的源代码中,我们可以找到:

代码语言:javascript
复制
if("Permit".equals(effect)){
            fulfillOn = Result.DECISION_PERMIT;
        } else if("Deny".equals(effect)){
            fulfillOn = Result.DECISION_DENY;
        } else {
            throw new ParsingException("Invalid FulfillOn : " + effect);
        }

你对此有什么看法,这个逻辑工作正常吗?

EN

回答 1

Stack Overflow用户

发布于 2015-11-25 11:54:23

这是按规范的。XACML规范只允许在允许或拒绝时返回义务和建议。在制定策略时,您必须牢记这一点。请参见下文和here

7.18义务和建议

规则、策略或策略集可以包含一个或多个义务或建议表达式。当评估这样的规则、策略或策略集时,义务或建议表达式应分别评估为义务或建议,只有当评估的规则、策略或策略集的结果与义务的FulfillOn属性或建议的AppliesTo属性的值匹配时,才应将其向上传递到下一级评估(封闭或引用策略、策略集或授权决策)。如果具有匹配FulfillOn或AppliesTo属性的义务或建议表达式中的任何属性赋值表达式的计算结果为“不确定”,则整个规则、策略或策略集应为“不确定”。如果FulfillOn或AppliesTo属性与组合算法或规则评估的结果不匹配,则义务或建议表达式中的任何不确定值都不起作用。作为该程序的结果,如果从中提取义务或建议的规则、策略或策略集未被评估,或者如果它们的评估结果是“不确定的”或"NotApplicable",或者如果评估规则、策略或策略集的决定与评估封闭策略集的决定不匹配,则不应向PEP返回任何义务或建议。如果PDP的评估被视为规则、策略集和策略的树,其中每一个都返回“允许”或“拒绝”,则由PDP返回给PEP的义务和建议集将仅包括与在每个评估级别的结果与由PDP返回的结果相同的那些路径相关联的义务和建议。在缺乏确定性是不可接受的情况下,应该使用确定性组合算法,例如有序拒绝覆盖。另请参阅第7.2节。

允许在NotApplicable上提供义务和建议将是混乱的。想象一下下面的策略结构:

  • PolicySet主要政策
    • 政策允许经理查看文档+ NotApplicable
    • Policy上的义务A允许员工查看自己部门的文档+ NotApplicable
    • Policy上的义务B允许发布者查看和发布文档+ Permit

上的义务C

假设传入的请求是:

  • Request: Alice the publisher能否发布文档#123?

在您的世界中,响应将(可能)是:许可+义务A、B、C

这真的没有任何意义。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33778898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档