【发布时间】:2014-02-18 20:40:26
【问题描述】:
有人知道创建签名 SAML 身份验证请求的正确步骤顺序吗?
我尝试了以下步骤,但不幸的是 WSO2IS 抛出异常
- 生成 SAMLRequest 值
- 在 Base64 中编码 SAMLRequest 值
- 对 SAMLRequest 值进行 URL 编码
- 对 SigAlg 值进行 URL 编码:http://www.w3.org/2000/09/xmldsig#rsa-sha1
- 使用 提供算法签名 (
SHA1withRSA)
SAMLRequest=值&SigAlg=值
- 对生成的签名进行 URL 编码
提前致谢
异常消息:
ERROR {org.opensaml.xml.security.SigningUtil} - 期间出错 签名验证 java.security.SignatureException:签名长度不正确:得到 252 但预期为 256 在 sun.security.rsa.RSASignature.engineVerify(未知来源) 在 java.security.Signature$Delegate.engineVerify(未知来源) 在 java.security.Signature.verify(未知来源) 在 org.opensaml.xml.security.SigningUtil.verify(SigningUtil.java:247) 在 org.opensaml.xml.security.SigningUtil.verify(SigningUtil.java:215) 在 org.opensaml.xml.security.SigningUtil.verifyWithURI(SigningUtil.java:184) 在 org.opensaml.xml.signature.impl.ExplicitKeySignatureTrustEngine.validate(ExplicitKeySignatureTrustEngine.java:156) 在 org.wso2.carbon.identity.sso.saml.validators.SAML2HTTPRedirectDeflateSignatureValidator.validateSignature(SAML2HTTPRedirectDeflateSignatureValidator.java:78) 在 org.wso2.carbon.identity.sso.saml.util.SAMLSSOUtil.validateDeflateSignature(SAMLSSOUtil.java:625) 在 org.wso2.carbon.identity.sso.saml.util.SAMLSSOUtil.validateAuthnRequestSignature(SAMLSSOUtil.java:578) 在 org.wso2.carbon.identity.sso.saml.processors.SPInitSSOAuthnRequestProcessor.process(SPInitSSOAuthnRequestProcessor.java:108) 在 org.wso2.carbon.identity.sso.saml.SAMLSSOService.authenticate(SAMLSSOService.java:192) 在 org.wso2.carbon.identity.sso.saml.servlet.SAMLSSOProviderServlet.handleRequestFromLoginPage(SAMLSSOProviderServlet.java:415) 在 org.wso2.carbon.identity.sso.saml.servlet.SAMLSSOProviderServlet.handleRequest(SAMLSSOProviderServlet.java:127) 在 org.wso2.carbon.identity.sso.saml.servlet.SAMLSSOProviderServlet.doPost(SAMLSSOProviderServlet.java:81) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:755) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
【问题讨论】:
标签: request wso2 single-sign-on saml signed