問:我必須所有用戶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僅支持FirstName
,LastName
和EmailAddress
(截至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林,或者如果你事先不知道你的用戶將是,你可以使用基於委託服務,如Okta或OneLogin,這讓你的應用程序,才能從傳入斷言代表團服務。