SAML单一注销POST绑定-无效的签名Okta

问题描述

我有一个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 (将#修改为@)