2016年8月1日11:34:39 AM org.apache.catalina.core.standardWrapperValve在路径为[/travelocity.com]的上下文中为servlet[jsp]调用严重:servlet.service()引发了异常[SAML响应的签名验证失败],根本原因为org.wso2.carbon.identity.sso.agent.exception.ssoagentException:在org.wso2.carbon.identity.sso.agent.SAML.saml2ssomanager.validateSignature(Saml2Ssomanager.java:483),在somanager.java:227)在org.wso2.carbon.identity.sso.agent.saml2ssomanager.processResponse(Saml2ssomanager.java:145)在org.wso2.carbon.identity.sso.agent.ssoagentFilter.doFilter(SsoagentFilter.java:89)在org.apache.catalina.core.applicationFilterChain.InternaldoFilter(ApplicationFilterChain.java:240)在dardwrappervalve.java:212)在org.apache.catalina.core.standardContextValve.invoke(standardContextValve.java:106)在org.apache.catalina.authenticator.authenticator.authenticator.authenticatorbase.invoke(authenticatorbase.invoke(authenticatorbase.java:502)在org.apache.catalina.core.standardHostValve.invoke(re.standardEngineValve.invoke(StandardEngineValve.java:88)在org.apache.catalina.connector.coyote.coyoteAdapter.Service(CoyoteAdapter.java:528)在org.apache.coyote.http11.AbstractThttp11Processor.Process(AbstractThttp11Processor.process(AbstractThttp11Processor.java:1099)在org.apache.coyote.AbstractProtocol在java.util运行(NIOENDPOINT.java:1476)。concurrent.threadpoolexecutor.runworker(未知源)位于java.util.concurrent.threadpoolexecutor$worker.run(未知源)位于org.apache.tomcat.util.threads.taskthread$wrappingrunnable.run(taskthread.java:61)位于java.lang.thread.run(未知源)
原因是,ADFS将响应发送到Identity Server,在那里用它的私钥对响应进行签名。然后Identity Server验证您在IDP配置中输入的公共证书的响应。
然后,Identity Server创建自己的SAML respnose并发送到travelocity应用程序。在服务提供者配置中,如果启用了响应签名,Identity Server将根据其私钥对SAML响应进行签名。
对于travelocity,您必须导出公共身份证书服务器并将其导入travelocity应用程序的keystore(WSO2Carbon.jks)文件。然后,在travelocity.properties文件中,必须更改IDPCertAlias属性,该属性提供公共身份证书服务器的别名。
我试图遵循以下规范来验证SAML响应的签名:https://www.w3.org/tr/xmldsig-core/#sec-pkcs1 下面是我的工作流程:我得到SAML响应。我去掉签名信封,我把它规范化,我检查摘要,然后我检查签名。我能够成功地计算转换的SAML响应的SHA1摘要,并对其进行验证。然而,RSA-SHA1签名检查仍然无法实现。 SAML响应包含签名方法算法:http://www.w
我在Tomcat 7上使用Spring Security SAML 2.0示例webapp,并对其进行了修改,以尝试让其通过Ping身份验证服务。webapp正在与服务对话,并返回一个断言,但在尝试验证签名时失败,如下调试输出所示: 我知道它无法验证签名,并且我已经获得了ping身份管理员要使用的证书,但我不确定如何将其包含在应用程序中。我尝试过使用JDK的keytools程序将其添加到示例应用程
我们需要实现基于SAML的安全身份验证。我们的IDP将是Okta和OneLogin。为此,我们在节点中使用“passport”“passport saml”。JSExpress应用程序。我们在SP端为Okta使用以下策略配置- 对于OneLogin,我们使用- 但对于Okta,它给出的错误是“无法读取未定义的属性'getAttribute',对于OneLogin,它给出的错误是“无效签名”。此外,
请帮忙。我有一个 SP,以及一个用于远程 IDP 的公钥。我上传了 spring sam 的示例,并对其进行了更改,公钥被添加到带有别名的 jks 文件中(使用键工具,命令列表显示 cer 已导入),并且它指向带有签名键的 idp 扩展元数据。但最终验证失败了。 org.opensaml.ws.security.安全策略异常:协议消息签名验证失败
我通过HTTP重定向从ADFS获得了SAML响应,并且在重定向时收到了以下请求参数
我在验证从ADFS服务器获得的SAML响应时遇到了问题。我以url的形式获得响应,例如,而是http://www.w3.org/2001/04/xmldsig-more#rsa-sha256。我设法解码了响应,但无法找到使用给定签名验证响应的方法。 我的主要问题是签名有一个非常意外的格式。由于给定的签名算法,我希望签名的长度为32字节,但是当我base64-decode签名时,我得到的是长度为25