此查询是对后HTTP重定向绑定SAML请求中提出的问题的补充。
我试图通过HTTP重定向绑定发送SAML身份验证请求来实现dotnet SSO解决方案。在生成SAML AuthnRequest并使用SP的私有证书计算签名之后,我尝试了两种方法将签名添加到url中。
> < li>
生成SAML验证请求XML。
<?xml version="1.0" encoding="utf-8"?>
<AuthnRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
ID="_d726aced-4c62-4562-8237-062f7faf0750"
Version="2.0" IssueInstant="2015-04-03T19:59:58.6709058Z"
Destination="https://idp.client.com/adfs/ls/"
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
AssertionConsumerServiceURL="https://serviceprovider.clientportal.com/samlsso.aspx"
xmlns="urn:oasis:names:tc:SAML:2.0:protocol"
>
<Issuer xmlns="urn:oasis:names:tc:SAML:2.0:assertion">https://serviceprovider.clientportal.com</Issuer>
<NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" />
</AuthnRequest>
使用生成XML签名标签的SAML AuthnRequest XML计算签名,如下所示
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
<Reference URI="#_d726aced-4c62-4562-8237-062f7faf0750">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<DigestValue>rxoGtdmI...rgY=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>XRLdJHIGWClJxp....fTPUfIghl5kTfV4=</SignatureValue>
在查询字符串中添加签名的方法 1
使用 Base64 编码和 URL 编码对 AuthnRequest XML(不嵌入签名)进行编码
按以下方式构造URL:
https://IDP.com/adfs/ls/?SAMLRequest=UrlEncodedBase64AuthnRequest&RelayState=value&SigAlg=value&Signature=UrlEncodedBase64EncodedXMLSignature
方法2:在查询字符串中添加签名
使用 Base64 编码和 URL 编码对 AuthnRequest XML(不嵌入签名)进行编码
按以下方式构造URL:
https://IDP.com/adfs/ls/?SAMLRequest=UrlEncodedBase64AuthnRequest&RelayState=value&SigAlg=value&Signature=UrlEncodedValueExtractedFromSignatureValueTag
在这两种情况下,我都在IDP上得到签名验证失败。知道如何在URL中生成要发送的签名吗?
这方面的任何帮助都会有很大的帮助!
谢谢,
皮尤什
HTTP重定向绑定中使用的签名不是XML签名。我建议再看看SAML v2.0绑定规范,第3.4节。
或者,看看我们的ComponentSpace SAML v2.0组件。这是的商业产品。NET/ASP。NET,它完全支持SAML规范。
有关如何在使用重定向绑定时包括DSig的具体说明,请参阅SAML 2.0绑定文档中的“第3.4.4.1节DEFLATE编码”。
我正在通过HTTP-重定向绑定接收SAML请求,SAML请求的内容如下 {"SigAlg"= 它还有一个签名值 2.在一个新的研究的基础上,在一个新的研究的基础上,在一个新的研究的基础上,在一个新的研究的基础上,在一个新的研究的基础上,在一个新的研究的基础上,在一个新的研究的基础上,在一个新的研究的一个新的研究(2)在一个新的研究(2)在一个新的研究的一个新的研究(2)在一个新的研究(2)的研究(
我正在尝试为重定向绑定创建SAML AuthnRequest。 这是我的(匿名)授权请求: 我有一个中继状态: SigAlg是http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 我对请求进行放气,然后进行base64编码,然后进行URL编码。(缩小后的base64编码结果在SAMLTool解码器中检出。) 用于创建签名的结果字符串如下所示: 我尝试使
我将spring saml扩展与Apache2.2+Tomcat7.0+OKTA(IdP)一起使用。securitycontext.xml如下所示: MetadataGeneratorFilter: 谢谢 奈良 HTTP请求转储:
我刚刚开始与SSO Saml的工作,有一些混乱,想澄清。-如果我必须用三种机制编码AuthnRequest,Deflate编码,Base64编码,URL编码。我必须使用HTTP-Redirect来发送消息请求吗?-HTTP-重定向绑定我参考https://docs . oasis-open . org/security/SAML/v 2.0/SAML-bindings-2.0-OS . pdf第1
我们的一个客户正在为他们的标识提供程序提供包含参数的URL。元数据如下所示(为简洁起见,进行了大量缩写): 可以看到,有一个名为“parameter”的参数,其值为“value”。生成的重定向URL中不存在此参数。我稍微调试了一下,发现从绑定(对于HTTP重定向来说是)获取,并委托对消息进行编码。编码器依次在其方法中执行以下操作: 所以出于某种原因,参数被故意无条件地剥离。 为什么会这样?我如何才
以下是发送给ADFS的SAML请求 压缩并转换为Base64String后,它被重定向到ADFS。带有SAML请求的URL如下所示 https://XXXX.YYYY.ZZZZ/adfs/ls/?SAMLRequest=hZHNbsIwEIRfJfLdsfODAhZEouVQJKpGJO2hl8okS7Ga2KnXoTx+A0KLuncjrflmz3Bnkju6fcvohfqwjta561xc/I