2015-06-16 30 views
0

我正在使用zendesk設置SAML服務的單一標誌。我正在使用node/express編寫定製SAML服務器,並使用node-samlp如何調試與zendesk的我的SSO SAML集成

的Zendesk是SP, 我SAML服務器都有自己的IdP

用戶步驟如下:

導航至帳戶 .zendesk.com和被重定向到帳戶 .COM/login?SAMLRequest = asdfasdfafsd

用戶然後輸入憑證併發布到節點服務器。 在服務器上,我可以解析* SAMLRequest,驗證用戶併爲用戶提供SAMLResponse。

用戶從節點服務器SAMLResponse接收並重定向到:帳戶 .zendesk.com SAMLResponse = asdfasdf &的RelayState = XXX

此時用戶得到找不到網頁。我不確定我做錯了什麼,在這一點上,我猜測我的SAMLResponse格式不正確,或者我將用戶重定向到了錯誤的地址。 PS:最初samlp沒有開箱即用,我分叉回購並更新了一些依賴項,並開始工作。

*我最初無法從zendesk解析SAMLRequest。當我在查詢參數上使用decodeURIComponent時,有新的行字符和空白,我用一個'+'取代了它,使其工作。然後,我意識到他們的查詢參數似乎不是URI編碼...

回答

1

事實上,正如@漢斯-Z已經提到的,SAMLResponse總是在POST發送!您可以通過提供頁面加載(通過JavaScript)自動提交表單(包含SAMLResponse)的頁面來觸發此瀏覽器POST。

既然你POST發送過,您應該SAMLResponse不 URL 編碼了。

+0

謝謝Karsten,我是任何服務器相關的noob。我感謝你的回答!會放棄它! – superJustin

+0

沒問題,當我第一次遇到這個時,我也感到驚訝... –

2

有一件事是沒有這樣的事情SAML響應的SAML重定向綁定。您可以將SAML響應作爲HTTP POST中的表單編碼參數發送,但無法將其作爲重定向中的查詢參數傳遞。您的SAML IDP實施不符合規範,因此Zendesk可能會拒絕該信息。

參見http://docs.oasis-open.org/security/saml/v2.0/saml-profiles-2.0-os.pdf#page=16

  • 身份提供商問題服務提供商在步驟5中,身份提供者發出對由 待遞送的用戶代理向服務提供商的消息。可以使用HTTP POST或HTTP僞裝綁定通過用戶代理將消息傳輸到服務提供商 。該消息可能指示錯誤,或者將至少包括認證斷言。不得使用HTTP重定向綁定,因爲響應通常會超過大多數用戶代理允許的URL長度 。
  • +0

    我不太確定...關於[Bindings]的規範(http://docs.oasis-open.org/security/saml/v2.0/saml-bindings-2.0-os.pdf#page = 15)表示可以通過重定向發送響應,並在[第21頁](http://docs.oasis-open.org/security/saml/v2.0/saml-bindings-2.0- os.pdf#page = 21)... –

    +0

    添加了一個指向web sso配置文件規則的指針,用於替代綁定規範 –

    +0

    並且,正如Hans在幕後向我指出的那樣...... [SAML Profiles for Browser SSO](http ://docs.oasis-open.org/security/saml/v2.0/saml-profiles-2.0-os.pdf#page=16)表示不要使用重定向進行響應。該死的twisty turny規格! (謝謝,漢斯!) –