WSO2 IS 作为桥梁,电子邮件地址声明丢失
WSO2 IS as a bridge, email address claim lost
我将 WSO2 IS 设置为桥梁,为我们的 WS-Federation IP 提供 SAML IdP。身份验证后,WS-Federation IP 会发送包含各种属性的 SAML 断言,其中包括一个名称为 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress 的属性。 WSO2 的 SAML 断言具有所有这些属性,除了缺少电子邮件地址声明之外。
我正在使用默认的声明映射,服务提供商启用了属性配置文件,始终在响应中包含属性,并在 Windows 上使用 5.3.0 版。
我相信我已经找到了问题所在。 WSO2 显然不喜欢为一个属性接收多个值,并且当它接收时,它只接受该属性的最后一个值。此外,如果该值恰好为空,WSO2 将删除该项目。在我们的 WS-Federation IP 的 SAML 断言中,电子邮件地址属性被设置为:
<Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress">
<AttributeValue>email@address</AttributeValue>
<AttributeValue/>
</Attribute>
因为 WSO2 似乎不支持属性的多个值,它只保留最后一个,并且因为它是空白的,所以它删除了属性。当我将测试用户的数据修改为有两个电子邮件地址时,最后列出的电子邮件地址被传递了。
我将 WSO2 IS 设置为桥梁,为我们的 WS-Federation IP 提供 SAML IdP。身份验证后,WS-Federation IP 会发送包含各种属性的 SAML 断言,其中包括一个名称为 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress 的属性。 WSO2 的 SAML 断言具有所有这些属性,除了缺少电子邮件地址声明之外。
我正在使用默认的声明映射,服务提供商启用了属性配置文件,始终在响应中包含属性,并在 Windows 上使用 5.3.0 版。
我相信我已经找到了问题所在。 WSO2 显然不喜欢为一个属性接收多个值,并且当它接收时,它只接受该属性的最后一个值。此外,如果该值恰好为空,WSO2 将删除该项目。在我们的 WS-Federation IP 的 SAML 断言中,电子邮件地址属性被设置为:
<Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress">
<AttributeValue>email@address</AttributeValue>
<AttributeValue/>
</Attribute>
因为 WSO2 似乎不支持属性的多个值,它只保留最后一个,并且因为它是空白的,所以它删除了属性。当我将测试用户的数据修改为有两个电子邮件地址时,最后列出的电子邮件地址被传递了。