簡體   English   中英

在opensaml中使用saml2.0的SSO

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM