当前位置: 首页 > 知识库问答 >
问题:

HTTP 重定向绑定 SAML 请求的 URL 中的签名值应该是什么

吴浩博
2023-03-14

此查询是对后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中生成要发送的签名吗?

这方面的任何帮助都会有很大的帮助!

谢谢,
皮尤什

共有2个答案

子车芷阳
2023-03-14

HTTP重定向绑定中使用的签名不是XML签名。我建议再看看SAML v2.0绑定规范,第3.4节。

或者,看看我们的ComponentSpace SAML v2.0组件。这是的商业产品。NET/ASP。NET,它完全支持SAML规范。

谢骏奇
2023-03-14

有关如何在使用重定向绑定时包括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