我用Wso2 GUI创建了XACML plocies。
我使用了基本策略编辑器。我给出了以下参数
对于策略(在第一个选项卡中,我只提供了资源名称,其他字段保持空白): 资源名称:https://www.xyz.com/blabla/
(在第二个标签中) 规则效力:许可
USer's:角色等于建筑师
动作名称:等于读取
因此,使用以下条件生成策略:
建筑师
这里的属性id是:AttributeId =" http://wso2.org/claims/role"
现在,当我尝试使用Tryit工具测试此poicy时,在GUI中传递参数, 自动请求是从WSO2生成的,其具有以下角色的属性id:
属性Id ="瓮:绿洲:名称:TC:XACML:1.0:受试者:受试者-ID"
因为,政策属性ID未与我的测试请求属性ID匹配,因此ID会持续提供中级回复。
我阅读了一些博客,并了解在发送请求时必须匹配attributeId。
我手动更改请求,然后工作正常。
这里的问题是,为什么WSO2身份服务器正在创建具有不同attributeID的请求,而我们已经从Same Wso2身份服务器创建了策略? 我认为在使用相同的编辑器创建它并使用相同的参数测试时,两者都应该匹配。
或者我在这里遗漏了什么?
答案 0 :(得分:1)
我认为你的意思是你得到的不确定而不是中级。在XACML中没有这样的响应中间件。
其次是属性ID" urn:oasis:names:tc:xacml:1.0:subject:subject-id "表示用户身份,例如爱丽丝,鲍勃,卡罗尔。您的政策需要的是角色。您可以拥有仅包含用户身份的请求,在这种情况下,PDP必须从基础源解析角色。该潜在来源称为PIP。
您也可以直接从请求中传入角色,但在这种情况下,您必须确保属性标识符与您的策略中使用的属性标识符http://wso2.org/claims/role匹配。
如果您的用户界面遇到问题,请提前ALFA。它使您可以更清楚地了解使用哪些属性。
答案 1 :(得分:1)
是。 http://wso2.org/claims/role
是指Identity Server中用户的角色。然后PDP知道用这个声明uri打电话给PIP。 PIP将提取用户的角色。大多数情况下,Indeterminate
可能是由于可以检索用户的角色。请参阅this以了解有关使用Identity Server的RBAC / ABAC的更多信息