1

我能夠使我的應用程序充當SP,IDP SSOCIRCLE使用Spring Security SAML擴展名。我的客戶有以下要求:如何使用Spring Security SAML擴展名簽署SAML請求/響應

1.斷言簽署:從IDP發送的斷言已簽署,它工作正常。

2.請求/響應簽名:使用SSO Circle生成元數據文件時。我選擇了選項AuthnRequestsSignedtrue。我將我的SP元數據上傳到SSO Circle IDP。 SP元數據的值如下:trueAuthnRequestsSigned & WantAssertionsSigned。運行應用程序時,我的請求和我得到的響應都沒有簽名。

我有問題要完成第二項要求。我是SAML和安全的新手。我在這裏錯過了什麼?

UPDATE

考慮到普京的言論之後。我將綁定更改爲HTTP-Post,因此現在我正在發送帶有所示簽名的SAML請求。

  1. 創建一個密鑰,CSR,並使用凱基工具的公鑰證書: 我能夠發送請求使用通過執行以下操作我的私有密鑰(不被樣品項目中提供的一個)簽署。
  2. 更新我的SP元數據文件中的數字簽名部分有新的證書
  3. 取下IDP SSOCIRCLE舊SP元數據文件,並添加新的SP元數據文件
  4. 更改春天配置有JKSKeyManager使用我用新的別名和密碼創建的新密鑰庫。

我現在需要做的是讓IDP(SSOCIRCLE)發送響應,其中 a。答案是 b。斷言有標記

這怎麼能實現?考慮到 響應的簽名應該與斷言的簽名不同,我需要做些什麼處理才能解決該問題。 謝謝。

+0

您使用的是什麼綁定? – 2014-11-24 12:07:21

+0

HTTP重定向綁定發送請求和HTTP POST綁定的響應。 – 2014-11-24 15:19:02

回答

3

HTTP重定向結合需要,存在於SAML消息本身任何ds:Signature元件在發送所述消息之前被除去:

在SAML協議消息的任何簽名,包括XML 元件本身,必須是除去。請注意,如果消息 的內容包含另一個簽名(如簽名的SAML斷言),則不會刪除此嵌入式簽名。然而,編碼之後的這種消息的長度基本上排除了使用這種機制。因此, 包含簽名內容的SAML協議消息不應使用此機制編碼爲 。 (SAML2-綁定,578-582,從複製粘貼PDF)

同時HTTP重定向的結合需要一個新的數字簽名被附加到GET URL作爲參數Signature

這意味着使用HTTP-Redirect,您不能在消息級別上使用Signature發送消息,而是將簽名添加到URL中。因此,從Spring SAML發送給IDP的整個消息都被簽名(從SP發送的數據中檢查它)。

除了在斷言中包含簽名之外,沒有標準方法可以強制IDP發送在消息級別上簽名的響應消息。如果您使用SSL/TLS,則傳輸層會提供消息的真實性和不可否認性(數字簽名的特徵)。