我已经用Wso2图形用户界面创建了XACML策略。
我也使用了基本策略编辑器。我给出了以下参数
对于策略(在第一个选项卡中,我只提供了资源名称,而其他字段保持为空白):资源名称:https://www.xyz.com/blabla/
(第二个选项卡)规则效果:许可证
用户:角色等于架构师
操作名称:等于读取
因此,该策略是在以下条件下生成的:
Architect
这里的属性id是: AttributeId="http://wso2.org/claims/role“
现在,当我试图用Tryit工具测试这个工具时,在GUI中传递参数时,将从WSO2生成自动请求,它具有角色的以下属性id:
AttributeId="urn:oasis:names:tc:xacml:1.0:subject:subject-id“
而且,由于策略属性id没有与我的测试请求属性id进行处理,所以它不断地给出中间答复。
我读了一些博客,了解到在发送请求时必须匹配attributeId。
我手动更改请求,然后将其正常工作。
这里的问题是,为什么WSO2标识服务器使用不同的attributeID创建请求,而我们已经从同一个Wso2标识服务器创建了策略?我认为,在使用相同的编辑器创建它并使用相同的参数进行测试时,两者都应该匹配。
还是我漏掉了什么??
发布于 2014-11-29 13:56:07
我认为你的意思是你变得不确定,而不是中间的。XACML中没有这样的响应w/ Intermediate。
其次,属性ID "urn:oasis:names:tc:xacml:1.0:subject:subject-id“表示用户身份,例如Alice、Bob、Carol。你的政策需要的是角色。您可以有一个只包含用户标识的请求,在这种情况下,PDP必须从底层源解析角色。该底层源称为PIP。
您还可以从请求直接传递角色,但在这种情况下,您必须确保属性标识符与您的策略中使用的标识符(即http://wso2.org/claims/role )匹配。
如果您对UI有问题,请给阿尔法一个机会。它为您提供了更多的可见性,而不是使用哪些属性。
发布于 2014-12-01 19:13:55
是。http://wso2.org/claims/role
指的是身份服务器中的用户角色。然后,PDP知道用这个断言uri调用PIP。PIP将提取用户的角色。在大多数情况下,Indeterminate
可能是由于该用户的角色才能检索到的。有关RBAC/ABAC与标识服务器的更多了解,请参考这
https://stackoverflow.com/questions/27183799
复制相似问题