2012-12-22 40 views
1

PingFederate 6.10服務器迴應「需要簽名」,但它收到的LogoutRequest有一個Signature元素。它在錯誤的地方嗎?我如何讓LogoutRequest工作?ds:Signature元素在SAML LogoutRequest中進入哪裏?

也許也很重要:PingFederate服務器日誌說「請求處理期間發生異常org.sourceid.saml20.profiles.StatusResponseException:請求是無效的XML」。我不知道哪些錯誤是準確的; XML格式良好,所以我一直假設「需要簽名」是我應該關注的錯誤。

(請注意,我縮短了X509證書,的SignatureValue和模量元素的文本進行Request和Response更具可讀性)

請求:

<samlp:LogoutRequest Destination="https://pingfederate:9031/idp/SLO.saml2" ID="_63d86130-2d0e-0130-c98a-58b035fb0c5e" IssueInstant="2012-12-20T12:04:31Z" Version="2.0" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"> 
    <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">http://localhost:3000/auth/saml/metadata</saml:Issuer> 
    <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> 
     <ds:SignedInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> 
      <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></ds:CanonicalizationMethod> 
      <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></ds:SignatureMethod> 
      <ds:Reference URI="#_63d8f1f0-2d0e-0130-c989-58b035fb0c5e"> 
       <ds:Transforms> 
        <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></ds:Transform> 
        <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></ds:Transform> 
       </ds:Transforms> 
       <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod> 
       <ds:DigestValue>+7+DaMHOq7Up//Uoizpn5feSIxU=</ds:DigestValue> 
      </ds:Reference> 
     </ds:SignedInfo> 
     <ds:SignatureValue>aAn0zuawy59ZXOTjx1...VULz7dVRd0g=</ds:SignatureValue> 
     <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> 
      <ds:X509Data> 
       <ds:X509Certificate>LS0tLS1CR...BVEUtLS0tLQo=</ds:X509Certificate> 
      </ds:X509Data> 
     </KeyInfo> 
    </ds:Signature> 
    <saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">jacob</saml:NameID> 
</samlp:LogoutRequest> 

響應:

<samlp:LogoutResponse Destination="http://localhost:3000/auth/saml/logout" ID="oWIAl1CbSxM-H9HZKm2L6LyTSDm" InResponseTo="_cab603f0-2dce-0130-c995-58b035fb0c5e" IssueInstant="2012-12-21T19:01:47.530Z" Version="2.0" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"> 
    <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">x</saml:Issuer> 
    <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> 
     <ds:SignedInfo> 
      <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> 
      <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> 
      <ds:Reference URI="#oWIAl1CbSxM-H9HZKm2L6LyTSDm"> 
       <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/2000/09/xmldsig#sha1" /> 
       <ds:DigestValue>7HxtM74mkE/t3/UoR8ehE6Wa6x0=</ds:DigestValue> 
      </ds:Reference> 
     </ds:SignedInfo> 
     <ds:SignatureValue>iGfTRlj25EYZnI496I5V...LHVJyUdgG4cF71wRT0Q=</ds:SignatureValue> 
     <ds:KeyInfo> 
      <ds:X509Data> 
       <ds:X509Certificate>MIICFzCCAYC...gYl9535grCDQbs/zVY=</ds:X509Certificate> 
      </ds:X509Data> 
      <ds:KeyValue> 
       <ds:RSAKeyValue> 
        <ds:Modulus>jCMC58LLRg6wQLJQ...VNEll3WQdFPc/hezdjk=</ds:Modulus> 
        <ds:Exponent>AQAB</ds:Exponent> 
       </ds:RSAKeyValue> 
      </ds:KeyValue> 
     </ds:KeyInfo> 
    </ds:Signature> 
    <samlp:Status> 
     <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Requester" /> 
     <samlp:StatusMessage>Signature required</samlp:StatusMessage> 
    </samlp:Status> 
</samlp:LogoutResponse> 
+0

可能是相關的,甚至可能是您的問題的答案:https://ping.force.com/Support/PingFederate/Administration/A-signed-LogoutRequest-sent-over-Redirect-yields-Signature-required –

回答

0

我不熟悉Ping,但在General Saml 2.0 Single Logout Profile中描述的相當不錯,在Oasis Documentation(頁32)。 我不確定這是否是您需要的,但我希望它可能會有幫助。

編輯1:在this文檔的第20頁你有簽名

1

SAML斷言和協議規範(http://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf)說,在第5.4.2節,所述參考元件的URI屬性必須與相同樣品LogoutRequest註銷請求元素的ID屬性。

在你的情況下,註銷請求元素的ID是_63d86130-2d0e-0130-c98a-58b035fb0c5e,引用元素的URI是_63d8f1f0-2d0e-0130-c989-58b035fb0c5e。由於這兩個值不同,PingFederate認爲註銷請求未被簽名。

相關問題