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

在SP启动登录时需要错误签名

凌志学
2023-03-14

尽管我们在SAML身份验证请求中发送了签名值,但平联邦服务器会在SP启动的SSO上响应错误签名要求。以下是我要发送给平联邦的请求:

<?xml version="1.0" encoding="UTF-8"?>
<samlp:AuthnRequest xmlns:ds="http://www.w3.org/2000/09/xmldsig#" > > xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" > AssertionConsumerServiceURL="https://mycompany.com/saml2/acs/" Destination="https://idp.com/idp/SSO.saml2" ID="id-1305fe524135c3980b2446c10dec5f08" IssueInstant="2017-11-21T18:27:17Z" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" ProviderName="My Service" Version="2.0">
  <saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">https://mycompany.com/</saml:Issuer>
  <ds:Signature Id="Signature1">
    <ds:SignedInfo>
      <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
      <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
      <ds:Reference URI="#id-1305fe524135c3980b2446c10dec5f08">
        <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/2001/04/xmlenc#sha256"/>
        <ds:DigestValue>PgekvX9t5tSi2t……..KMSXBPFMlhjcpk=</ds:DigestValue>
      </ds:Reference>
    </ds:SignedInfo>
    <ds:SignatureValue>m0/……………….J5bmNQ==</ds:SignatureValue>
    <ds:KeyInfo>
      <ds:X509Data>
        <ds:X509Certificate>MII………………o6jkYDUjhprKdQ+m4=</ds:X509Certificate>
      </ds:X509Data>
    </ds:KeyInfo>
  </ds:Signature>
  <samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"/>
</samlp:AuthnRequest>

为了更好的可读性,我缩短了签名值和证书。PingFederate用SAML响应拒绝了此请求

<samlp:Status xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Requester" />
<samlp:StatusMessage>Signature required</samlp:StatusMessage></samlp:Status>

以下是PingFederate的日志:

2017-11-21 13:27:17,222 tid:pSs3mUSSSSSSSSSSSSSSSXLK4 DEBUG [org.sourceid.websso.servlet.ProtocolControllerServlet] [qtp2106609649-286] ---REQUEST (GET)/idp/SSO.saml2 from 123.123.123.3:
---PARAMETERS---
SAMLRequest:
3VZJl6LYEt7nr/BYi1p4U……<shortened request for readability>…….zdsjP10u10KWIGwjw6it3/9v4/+l78B
RelayState:
/myAppDashboard/index.html?sso_user=user1%40myidp.com&tenant_domain=xyz.com#/
2017-11-21 13:27:17,222 tid:pSs3mUSSSSSSSSSSSSSSSXLK4 DEBUG [org.sourceid.saml20.bindings.BindingFactory] [qtp2106609649-286] GET
with Params: [SAMLRequest, RelayState]
assume binding: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect
from: 123.123.123.3
Referer: https://mycompany.com/saml2/login/?email=user1%40myidp.com&tenantIdentifier=undefined(https://mycompany.com/saml2/login/?email=user1%40myidp.com&tenantIdentifier=undefined)
AuthType: null
Content-Type: null
2017-11-21 13:27:17,225 tid:pSs3mUSSSSSSSSSSSSSSSXLK4 DEBUG [org.sourceid.saml20.bindings.LoggingInterceptor] [qtp2106609649-286] Received InMessageContext:
InMessageContext
XML: https://mycompany.com/saml2/acs/" Destination="https://idp.com/idp/SSO.saml2" ID="id-1305fe524135c3980b2446c10dec5f08" IssueInstant="2017-11-21T18:27:17Z" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" ProviderName="My Service" Version="2.0" xmlns:ds="http://www.w3.org/2000/09/xmldsig# (http://www.w3.org/2000/09/xmldsig) " xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
https://mycompany.com/ (https://mycompany.com/%3c/saml:Issuer) >
http://www.w3.org/2001/10/xml-exc-c14n#"/>
http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
http://www.w3.org/2001/10/xml-exc-c14n#"/>
http://www.w3.org/2001/04/xmlenc#sha256"/>
PgekvX9t5tSi2t/………………J5bmNQ==
MIIDpjCC……………………Q+m4=
entityId: https://mycompany.com/ (https://mycompany.com/) (SP)
virtualServerId: XYZSSO2.0
Binding: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect
relayState: /myAppDashboard/index.html?sso_user=user1%40myidp.com&tenant_domain=xyz.com#/
SignatureStatus: NOT_PRESENT
Binding says to sign: true
2017-11-21 13:27:17,226 tid:pSs3mUSSSSSSSSSSSSSSSXLK4 DEBUG [org.sourceid.util.log.internal.TrackingIdSupport] [qtp2106609649-286] [cross-reference-message] entityid:null subject:null
2017-11-21 13:27:17,226 tid:pSs3mUSSSSSSSSSSSSSSSXLK4 ERROR [org.sourceid.saml20.profiles.idp.HandleAuthnRequest] [qtp2106609649-286] Exception occurred during request processing
org.sourceid.saml20.profiles.StatusResponseException: Signature required
……..
…….
2017-11-21 13:27:17,251 tid:pSs3mUSSSSSSSSSSSSSSSXLK4 DEBUG [org.sourceid.servlet.HttpServletRespProxy] [qtp2106609649-286] flush cookies: adding Cookie{PF=hashedValue:pSs3mUSSSSSSSSSSSSSSSXLK4; path=/; maxAge=-1; domain=null}
2017-11-21 13:27:17,252 tid:pSs3mUSSSSSSSSSSSSSSSXLK4 DEBUG [org.sourceid.saml20.bindings.LoggingInterceptor] [qtp2106609649-286] Transported Response. OutMessageContext:
OutMessageContext
XML: https://mycompany.com/saml2/acs/" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
XYZSSO2.0
http://www.w3.org/2000/09/xmldsig#">
http://www.w3.org/2001/10/xml-exc-c14n#"/>
http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
http://www.w3.org/2001/10/xml-exc-c14n#"/>
http://www.w3.org/2001/04/xmlenc#sha256"/>
vRc7z0pcj5wzfn/………….UV3nYqUjgsnwHx9tziUqFwmAI=
Signature required
entityId: https://mycompany.com/ (https://mycompany.com/) (SP)
virtualServerId: XYZSSO2.0
Binding: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST
relayState: /myAppDashboard/index.html?sso_user=user1%40myidp.com&tenant_domain=xyz.com#/
Endpoint: https://mycompany.com/saml2/acs/ (https://mycompany.com/saml2/acs/)
SignaturePolicy: BINDING_DEFAULT
2017-11-21 13:27:18,348 DEBUG [org.sourceid.servlet.HttpServletRespProxy] [qtp2106609649-101] adding lazy cookie Cookie{PF=hashedValue:E0oc11111111111111VkfIwa0I; path=/; maxAge=-1; domain=null} replacing null
2017-11-21 13:27:18,348 tid:E0oc11111111111111VkfIwa0I DEBUG [org.sourceid.websso.servlet.IntegrationControllerServlet] [qtp2106609649-101] GET: https://idp.com/idp/startSSO.ping

需要帮助我们如何解决这个问题,任何可以在Ping Federate上设置的旋钮/标志,以使其正常工作。

共有2个答案

楚弘益
2023-03-14

PingFederate期望SigAlg和signature作为URL参数,同时在重定向URL中使用SAMLRequest。您需要更正生成SAML身份验证请求的方式。

URL应如下所示:

{IDP目标URL}?SAML request = { URL _ encoded _ SAML _ auth _ req }

我正在使用PySaml2库,在我的例子中,我必须使用下面的调用来获得一个有效的Saml签名的Authn请求。

saml_client.prepare_for_authenticate(relay_state=landing_url,符号=True,符号=sig_dict[args.sigalg])

你应该也能为你的图书馆找到类似的标志。

宋耀
2023-03-14

PingFed 似乎正在通过重定向绑定(您正在发出 GET 请求)期待您的消息,但您正在请求中包含签名,就像 Post 绑定一样。

 类似资料:
  • 我正在尝试使用SP在OKTA(IdP)中使用我的Windows应用程序(SP)启动登录来设置SAML,但是在IDP验证我的凭据后,我收到了一个400错误的SAML请求。我没有重定向回应用程序URL(SP),而是收到了一个400错误的SAML请求。 我的SP URL-https://sampleapp.company.com/appname/default.aspx 我的SAML ACS URL-h

  • 我正在尝试向现有Okta设置添加新服务。该服务依赖SAML进行身份验证,并对SAML消息进行严格检查。 当Okta会话状态已经存在于浏览器中时,一切正常。Okta SAML响应包含所有必要的属性,以得到验证,一切只是工作。 但是,当使用“干净”浏览器启动新会话时,我的服务无法正确验证Okta SAML响应。响应有效且签名正确,但缺少严格验证所需的属性。 我想知道以前是否有人遇到过这样的问题?Okt

  • 当我尝试使用Xcode向商店提交我的应用程序时,我总是遇到这个错误: 错误ITMS-90475:“包无效。iPad多任务支持需要在包'com.companyname.appname'中启动情节提要。” 有人知道这个错误的真正含义吗?

  • 在Android>Sample app>Trivial Drive中,当运行应用程序时,我在执行IAP时得到以下信息: 我在手机上用测试帐户(即我在开发人员控制台中指定的测试电子邮件地址)切换到了一个单独的帐户,并遵循了以下所有步骤: https://android.stackExchange.com/questions/20369/geting-authentication-is-require

  • 我正试图在我的iPhone 8上测试我的应用程序。由于我没有苹果开发者帐户,所以我一直遵循本教程:https://ionicframework . com/blog/deploying-to-a-device-without-a-Apple-Developer-Account/ 虽然上面的教程是针对Xcode 8的(我有Xcode 11),但是它一直工作到倒数第二步。我已经添加了我的Apple I

  • 我试图安装Facebook PHP SDK与作曲家。这就是我得到的 问题是,我启用了卷曲扩展(php.ini未注释)。当我运行时,它表示已启用。我唯一的线索是,当我运行时,'curl'行丢失了,但我不知道该怎么办。 我在Win8上有wamp 2.4,我在cmd中运行composer。exe。