2015-07-06 149 views
2

我想在我的web應用程序中使用SAML 2.0實現SSO。我見過spring-security-saml示例[https://github.com/spring-projects/spring-security-saml.git]。在我通過此示例後,有幾件事情想知道:spring-security-saml 2.0 - 如何註冊系統中的所有用戶?

  1. 我是否必須將所有用戶註冊表重定向到IDP的註冊頁面?如果沒有,IDP如何知道用戶的憑證?
  2. 國內流離失所者的像ssocircle(在本示例中使用)是否允許我們使用自定義屬性並更改密碼種類的情況?
  3. 什麼是在我的應用程序中用來實現saml sso的最佳IDP?

Thanx提前。

回答

1

問:我必須所有用戶registratons到IDP的註冊頁面重定向,因爲這樣本?

在SAML的說法中,應用程序可以是身份提供者(IDP)或服務提供者(SP)。 IDP對用戶進行身份驗證,這意味着用戶身份和憑證由IDP維護。 SP爲用戶提供一項或多項服務。

從您的問題看來,您似乎希望將應用程序的用戶身份驗證任務委派給外部用戶(IDP)。因此,您的應用程序將是SP。

建立後,您必須將所有用戶重定向到IDP以進行身份​​驗證。如果需要,IDP的認證頁面可能有註冊頁面的鏈接。

問: IDP如何知道用戶的憑證?

用戶必須向IDP註冊(畢竟,IDP的目的是對用戶的身份進行授權認證,如果用戶未註冊用戶的身份則不能這樣做)。用戶可以自行註冊或由管理員註冊,例如Microsoft Active Directory域管理員。

問:如果我需要註冊在我的系統用戶,以及因爲我需要給他們分配具體到我的系統角色?

您可以創建自己的org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler實現,您可以在成功的單一登錄時檢查經過身份驗證的用戶,並將其註冊到您的應用程序。將您的實現類的實例作爲重定向處理程序提供給SAML入口點。

請注意,您將無法訪問用戶密碼,因爲IDP存儲該密碼。

問: IDP的SSOCircle是否允許我們使用自定義屬性?

SSOCircle主要是SSO(單點登錄)的測試服務。儘管SAML支持自定義屬性,但SSOCircle僅支持FirstNameLastNameEmailAddress(截至2016年2月)。因此不,你不能在SSOCircle中使用其他的自定義屬性。

像Okta,OneLogin或Microsoft ADFS這樣的實際IDP支持自定義屬性。您必須檢查其各自的文檔,以便配置和交換IDP和SP之間的自定義屬性。

問:執行IDP的喜歡SSOCircle支持更改密碼樣的情景?

我不確定SSOCircle,但實際的IDP將是一個已具有用戶身份管理功能的系統。由於密碼更改是身份管理系統的常用功能,因此應該使用實際的IDP來支持。但是,您應該查閱用於確保您使用的實際IDP的文檔。

問:什麼是用於我的SAML應用程序的最佳IDP?

IDP不是一個產品或規範,使這個問題有些無效。它只是SAML Universe中的一種類型的演員。如果您的用戶屬於Microsoft Windows Active Directory林,則可以使用Active Directory Federation Services (ADFS)在Active Directory和您的(SP)應用程序之間交換SAML消息。

如果你想支持多個Active Directory林,或者如果你事先不知道你的用戶將是,你可以使用基於委託服務,如OktaOneLogin,這讓你的應用程序,才能從傳入斷言代表團服務。