2014-02-05 35 views
1

我想在SP中使用OPENSAML-java生成saml我們是否應該在SAML中使用像Deflater這樣的壓縮技術來<AuthnRequest>?

雖然關於進程注意到Limitations Of URL Length

那麼在我將它發送到TestIdP之前,它是否必須使用任何壓縮技術來發送SAML消息?

如果我們使用任何壓縮技術,IdP將如何知道SP已經使用這種壓縮技術來解壓縮請求消息

元數據中是否有任何規定?

示例代碼表示讚賞。謝謝。

+1

AFAIK標識請求是POST請求。如果你使用GET來表明你自己,我很難想象你會用完字符。 – Hannes

+0

in(http://www.john-james-andersen.com/blog/programming/sample-saml-2-0-authnrequest-in-java.html)使用平減器。多數民衆贊成我是困惑 – mavis

回答

2

作爲Wiki狀態:

SAML協議消息通常在HTTP GET請求的URL的查詢字符串直接攜帶。由於URL的長度在實踐中受到限制,因此HTTP重定向綁定適用於短消息,如消息。更長的消息(例如包含簽名SAML斷言的消息)應通過其他綁定(例如HTTP POST綁定)進行傳輸。

通過HTTP重定向傳輸的SAML請求或響應分別具有SAMLRequest或SAMLResponse查詢字符串參數。在發送之前,消息是放氣,base64編碼的URL編碼的,依次。一旦收到,該過程被逆轉以恢復原始消息。

的HTTP GET例如少於600個字符長:

https://idp.example.org/SAML2/SSO/Redirect?SAMLRequest=fZFfa8IwFMXfBb9DyXvaJtZ1BqsURRC2Mabbw95ivc5Am3TJrXPffmmLY3%2FA15Pzuyf33On8XJXBCaxTRmeEhTEJQBdmr%2FRbRp63K3pL5rPhYOpkVdYib%2FCon%2BC9AYfDQRB4WDvRvWWksVoY6ZQTWlbgBBZik9%2FfCR7GorYGTWFK8pu6DknnwKL%2FWEetlxmR8sBHbHJDWZqOKGdsRJM0kfQAjCUJ43KX8s78ctnIz%2Blp5xpYa4dSo1fjOKGM03i8jSeCMzGevHa2%2FBK5MNo1FdgN2JMqPLmHc0b6WTmiVbsGoTf5qv66Zq2t60x0wXZ2RKydiCJXh3CWVV1CWJgqanfl0%2Bin8xutxYOvZL18NKUqPlvZR5el%2BVhYkAgZQdsA6fWVsZXE63W2itrTQ2cVaKV2CjSSqL1v9P%2FAXv4C

如果您正在使用HTTP POST,請求的參數去身體。所以沒有問題。

但是你應該檢查,如果消息SAMLRequest不是太長。

安全性注意:由於使用HTTP GET,整個請求及其參數都會記錄在任何http訪問日誌中,所以您應該使用POST。

1

Saml2 Http重定向綁定明確要求首先放縮數據,然後進行base64編碼並最終進行URL編碼。正如規範所要求的那樣,Idp會期望以這種方式準備Saml2Request查詢字符串參數。

據我瞭解,通常使用Http Redirect綁定將AuthnRequest發送給Idp,而響應總是使用Http Post處理,因爲對於查詢字符串來說,響應太大。

相關問題