0

我已经使用 Wso2 GUI 创建了 XACML 策略。

我也使用了基本策略编辑器。我给出了以下参数

对于策略(在第一个选项卡中,我只给出了资源名称,其他字段留空):资源名称:https ://www.xyz.com/blabla/

(在第二个选项卡中)规则效果:允许

用户:角色等于建筑师

动作名称:等于读取

所以策略是在这个条件下生成的:

建筑师

这里的属性 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 身份服务器正在创建具有不同属性 ID 的请求,而我们已经从相同的 Wso2 身份服务器创建了策略?我认为当您使用相同的编辑器创建它并使用相同的参数对其进行测试时,两者都应该匹配。

或者我在这里错过了什么?

4

2 回答 2

1

我认为你的意思是你得到的是不确定的而不是中级的。XACML 中没有这样的带中间体的响应。

其次,属性ID“ urn:oasis:names:tc:xacml:1.0:subject:subject-id ”表示用户身份,例如Alice、Bob、Carol。您的政策需要的是角色。您可以有一个仅包含用户身份的请求,在这种情况下,PDP 必须从底层源解析角色。该基础源称为 PIP。

您也可以直接从请求中传递角色,但在这种情况下,您必须确保属性标识符与策略中使用的标识符相匹配,即http://wso2.org/claims/role

如果您对 UI 有疑问,请尝试一下ALFA。它使您可以更清楚地了解使用了哪些属性。

于 2014-11-29T13:56:07.190 回答
1

是的。http://wso2.org/claims/role 是指身份服务器中的用户角色。然后 PDP 知道使用此声明 uri 调用 PIP。PIP 将提取用户的角色。大多数情况下,Indeterminate可能是由于可以检索到该用户的角色。请参阅内容以进一步了解带有 Identity Server 的 RBAC/ABAC

于 2014-12-01T19:13:55.107 回答