WSO2 身份服务器 GUI 为策略和请求创建不同的属性 ID

Posted

技术标签:

【中文标题】WSO2 身份服务器 GUI 为策略和请求创建不同的属性 ID【英文标题】:WSO2 Identity server GUI creating different attribute id for policy and request 【发布时间】:2014-11-28 07:25:04 【问题描述】:

我已经使用 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 不匹配,所以不断给出 Intermediate 回复。

看了一些博客,了解到在发送请求时必须匹配attributeId。

我手动更改请求,然后它工作正常。

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

或者我在这里遗漏了什么??

【问题讨论】:

您能发布您的 XACML 政策吗? 【参考方案1】:

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

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

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

如果您对 UI 有任何疑问,请联系ALFA。它让您更清楚地了解使用了哪些属性。

【讨论】:

感谢 Asela 和 DAVID。是的,我已经浏览了这些博客并理解了它。非常感谢您,我非常感谢您的回答。【参考方案2】:

是的。 http://wso2.org/claims/role 是指身份服务器中的用户角色。然后 PDP 知道使用此声明 uri 调用 PIP。 PIP 将提取用户的角色。大多数情况下,Indeterminate 可能是因为可以检索到该用户的角色。请参考this 了解更多关于身份服务器的 RBAC/ABAC

【讨论】:

以上是关于WSO2 身份服务器 GUI 为策略和请求创建不同的属性 ID的主要内容,如果未能解决你的问题,请参考以下文章

来自 Java 程序的 wso2 权利

在没有浏览器的情况下对WSO2 Identity Server进行身份验证,并获取SAML2断言消息

WSO2 身份服务器 5x AD 用户存储 20 个字符限制和 upn

Identity Server不验证SAML LogoutRequest签名

在 WSO2 身份服务器日志中打印用户的 IP 地址

WSO2 IS:服务提供商的访问控制策略