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 似乎不支持属性的多个值,它只保留最后一个,并且因为它是空白的,所以它删除了属性。当我将测试用户的数据修改为有两个电子邮件地址时,最后列出的电子邮件地址被传递了。