问题描述
我有一个Okta SAML应用程序。我已经用“单一登录”(SSO)和“单一注销”(SLO)配置了它。 SSO与HTTP重定向和HTTP-POST绑定都可以正常工作。但是,SLO仅与HTTP重定向一起使用。使用HTTP-POST时,出现“无效签名”错误。
我已验证所使用的算法正确且符合https://www.samltool.com/generic_slo_req.php
我还使用https://www.samltool.com/validate_logout_req.php
验证了它确实是有效的请求如果使用HTTP重定向绑定,则生成的签名与POST绑定完全相同。并且重定向绑定成功将用户注销。但是,对于POST,如果XML中具有相同的签名,则会不断抛出无效签名错误。
为可读性附加下面的XML
<samlp:LogoutRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" Destination="https://dev-538790.okta.com/app/adobedev538790_slo_1/exk5ywtj5e8Qekkph357/slo/saml" ID="COLDFUSIONff71ab10-6c6a-49d4-a5c6-f13bc70de080" IssueInstant="2020-10-18T11:17:24Z" Version="2.0">
<saml:Issuer>demo</saml:Issuer>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
<ds:Reference URI="">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<ds:DigestValue>WAd/N6mgYpEpHeOSDcxBDWXIog8=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>u8EUtK40P6/51nCTtFZ+G+boh7SJk6bUSXWcOCIdowEfvAWkcv3tJtpGILxIogJjROEE4yZmpdU3qLvqOEcxzg==</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>MIIB3TCCAYegAwIBAgIERDfOEjANBgkqhkiG9w0BAQsFADBkMQswCQYDVQQGEwJJTjELMAkGA1UECBMCVE4xEDAOBgNVBAcTB0NoZW5uYWkxDjAMBgNVBAoTBUFkb2JlMQ0wCwYDVQQLEwRQUEJVMRcwFQYDVQQDEw5FZHdpbiBKb25hdGhhbjAeFw0yMDA4MjMxMDI2MTBaFw0yMTA4MTgxMDI2MTBaMGQxCzAJBgNVBAYTAklOMQswCQYDVQQIEwJUTjEQMA4GA1UEBxMHQ2hlbm5haTEOMAwGA1UEChMFQWRvYmUxDTALBgNVBAsTBFBQQlUxFzAVBgNVBAMTDkVkd2luIEpvbmF0aGFuMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMEVnxdOsek0UQDLYqf8DiLg9SlbGsHiX7JKevMV/9mJe6YnjQ1wC+sNB79Hk3JiCySXJiuj4ozqS6dUyQhGQQMCAwEAAaMhMB8wHQYDVR0OBBYEFIDRnPdeWcwU7FNLaHQzr6J3DpWxMA0GCSqGSIb3DQEBCwUAA0EABGUvLEM8sGxG02ssW2cd10oN/Sw28X++VRDgPVgUIxiFVVHls/tzPuWH+45RNmyzS2zk9i9tBjGPlxxOzWHbyA==</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</ds:Signature>
<saml:NameID>[email protected]</saml:NameID>
<samlp:SessionIndex>COLDFUSION148ef31a-f6d6-4622-9116-a88132f2112a</samlp:SessionIndex>
</samlp:LogoutRequest>
我也知道诸如SAML Single logout through OKTA之类的其他问题,但是我成功使用HTTP-Redirect成功执行了SLO,因此认为最好单独询问。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)