[英]SSO using saml2.0 in opensaml
我們有4個申請。 我們希望在這些應用程序中實施SSO。 我對此有幾個疑問。 我們被建議使用opensaml。
查詢1:
用戶輸入的用戶名和密碼由客戶端(Ex.Front-end)發送到中間件,然后中間件將此信息發送到SSO服務器,那么在這種情況下用戶是否為主體? 中間件是服務提供商嗎? SSO服務器是身份提供者嗎?
查詢2:
現在,當用戶登錄其中一個應用程序時,我們應該連接到身份提供程序以啟動SSO,我們應該將哪些參數(強制性)發送到SSO服務器?
問題3:
在從SSO服務器獲得響應之后,中間件是否應保留令牌以供將來參考?
查詢4:
現在,如果另一個用戶點擊另一個應用程序,那么應該確定有sso正在處理。 怎么識別? 中間件應該打到SSO服務器嗎?
請妥善解決上述問題。
1)是的,您描述的“中間件”是服務提供商,“SSO服務器”是身份提供商。
2)當用戶在服務提供商上嘗試受保護資源時,它會將瀏覽器重定向到身份提供者。 如果瀏覽器與Identity Provider沒有活動會話,則會提示用戶輸入登錄詳細信息。
之后,瀏覽器將被重定向回服務提供商以及驗證用戶的SAML響應。 驗證SAML響應后,服務提供商將重定向到受保護資源。
一旦用戶通過身份驗證,服務提供商就可以保留自己的會話,以便為每個請求保存重定向到身份提供商。
3)服務提供商(中間件)通常不會保留來自身份提供商的SAML響應,而是可以設置自己的會話。 例如在.Net中,這可以通過表單身份驗證來關閉。
4)當用戶嘗試訪問另一個服務提供商時,瀏覽器將被重定向到身份提供商。 由於用戶已經有活動會話,身份提供商將使用SAML repsonse重定向回服務提供商。 然后,服務提供者將重定向到受保護資源,並可選擇創建自己的會話。
這對用戶無縫地發生,並且它們有效地直接記錄到第二個服務提供商。
您還使用哪個平台進行開發? 如果您使用的是.NET或Java,那么我可以推薦開源庫OIOSAML 。 它包括服務和身份提供商的工作示例,以便您了解事情的運作方式。
您在考慮使用什么IDP?
在SAML世界中,所有URL,證書等都通過元數據進行交換。
因此,在IDP中,您將導入sp.xml,在SP中,您將導入idp.xml。
對於Java,您需要在SP端使用某種SAML堆棧。
請參閱: SAML堆棧和Java等效於WIF 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.