如何使用WSO2 Identity Server 5.3生成多值属性SAML2断言?

时间:2017-10-06 03:35:44

标签: wso2 saml wso2is assertions

我正在使用WSO2 Identity Server 5.3

我必须使用用户配置文件中的一些多值属性生成SAML2断言。

假设我有一个逗号分隔的特定声明的值列表,我必须在我的saml断言响应中使用以下结构组织这些属性:

<saml2:Attribute Name="attribute1">
    <saml2:AttributeValue>value1</saml2:AttributeValue>
    <saml2:AttributeValue>value2</saml2:AttributeValue>
    <saml2:AttributeValue>value3</saml2:AttributeValue>
    <saml2:AttributeValue>value4</saml2:AttributeValue>
</saml2:Attribute>

我配置了一个STS客户端以获取SAML2断言,并声明我使用多值声明设置的特定用户。

我的问题是我将SAML断言响应视为以下结构:

<saml2:Attribute Name="attribute1">
    <saml2:AttributeValue>value1,value2,value3,value4</saml2:AttributeValue>
 </saml2:Attribute>

我在tomcat上设置了travelocity应用程序的实例,再次进行了测试,在登录到应用程序并选择SAML流程后,我按预期得到了SAML断言。我可以验证它查看Identity Server的日志文件。

我也使用STS客户端[1]来获取SAML断言,但是当涉及到多值属性时,我得到的是该特定属性的逗号分隔值。

我使用SOAP UI作为我的客户端直接转向管理服务https://localhost:9443/services/wso2carbon-sts?wsdl,但SAML响应与我之前所说的情况完全相同,多值属性作为该特定属性的逗号分隔值。

以下是我在“属性声明”部分中获得的示例:

<saml2:AttributeStatement>
    <saml2:Attribute Name="http://wso2.org/claims/im" NameFormat="http://wso2.org/claims/im">
        <saml2:AttributeValue
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">jairo_fernandezr,jb_fernandez
        </saml2:AttributeValue>
    </saml2:Attribute>
    <saml2:Attribute Name="http://wso2.org/claims/emailaddress" NameFormat="http://wso2.org/claims/emailaddress">
        <saml2:AttributeValue
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">jairo.fernandez@chakray.com
        </saml2:AttributeValue>
    </saml2:Attribute>
    <saml2:Attribute Name="http://wso2.org/claims/givenname" NameFormat="http://wso2.org/claims/givenname">
        <saml2:AttributeValue
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Jairo
        </saml2:AttributeValue>
    </saml2:Attribute>
</saml2:AttributeStatement>

现在,我想问你是否有另一种方法可以使用管理服务https://localhost:9443/services/wso2carbon-sts?wsdl或其他方法获得SAML断言,其中多值属性结构化为单个值而不是逗号分隔值旅行速度应用。

[1] https://github.com/wso2/product-is/tree/5.x.x/modules/samples/sts

任何评论都将不胜感激。

由于

1 个答案:

答案 0 :(得分:0)

WSO2身份服务器5.3.0在Web SAML SSO流程中表现正常。

但默认情况下https://localhost:9443/services/wso2carbon-sts可以找到的服务wso2carbon-sts的行为与我在原帖中描述的不同。

我已经向WSO2团队报告了这个问题,他们在Identity Server的项目中注册了一个错误,你可以看到详细信息here,如果你有兴趣可以跟进。

感谢您的支持