Identity Server 不验证 SAML LogoutRequest 签名

Identity Server does not validate SAML LogoutRequest Signature

我有 WSO2 IS 运行 和一个设置了 SAML 入站身份验证的服务提供商。我为 SAMl 服务提供商启用了 "Enable Signature Validation in Authentication Requests and Logout Requests" 复选框。

如果我发送未正确签名的 AuthnRequest,它将出错。但是,如果我发送带有 no 签名(或由完全不同的 cert/key 制作的签名)的 LogoutRequest,它将无误地注销我的用户。如何启用实际签名验证 WSO2 IS?

我是 运行 最新的 WSO2 Docker 容器。根据这个启动日志,我相信那是 IS 5.7.0:

Starting WSO2 Carbon... Operating System : Linux 4.9.93-linuxkit-aufs, amd64 Java Home : /home/wso2carbon/java/jre Java Version : 1.8.0_144 Java VM : Java HotSpot(TM) 64-Bit Server VM 25.144-b01,Oracle Corporation Carbon Home : /home/wso2carbon/wso2is-5.7.0 Java Temp Dir : /home/wso2carbon/wso2is-5.7.0/tmp

似乎由于代码中的问题,签名验证 [1] 在注销请求中被跳过。请参考 git 问题 [2] 来跟踪它。

[1] https://github.com/wso2-extensions/identity-inbound-auth-saml/blob/ee338982c1add8f75f1132a6b3bacb30cee7989b/components/org.wso2.carbon.identity.sso.saml/src/main/java/org/wso2/carbon/identity/sso/saml/processors/SPInitLogoutRequestProcessor.java#L130
[2] https://github.com/wso2/product-is/issues/4048