1

我們是一家服務提供商。假設在我們的應用程序中,我們最初有我們自己的用戶/角色管理。不同角色的用戶可以使用不同的功能。因此,當用戶登錄時,我們需要知道此用戶具有哪些角色,並準備適當的用戶界面。我們有管理員角色,具有此角色的用戶可以將角色分配給其他用戶。如何設置初始用戶/角色啓用SAML SSO

我們正在考慮爲我們的應用程序啓用SAML SSO,現在問題是我們如何爲每個用戶設置角色。

解決方案1,我們依靠IdP爲每個登錄用戶提供角色信息,角色信息可能與Assertion一起出現,但這可能不適用於所有IdP。

解決方案2,我們只從IdP中檢索用戶,並在我們自己的應用程序中管理角色。例如,當我們得到斷言時,我們檢索用戶名(或電子郵件地址),並與我們數據庫中的記錄匹配,如果它不存在,我們會自動爲此新用戶創建一個記錄。然後,我們依靠具有管理員角色的用戶爲該新用戶分配正確的角色。

現在的問題是第一位管理員來自哪裏?我們的客戶獲得我們的應用程序,並打開SAML SSO,現在數據庫中沒有用戶,那麼我們如何解決這種引導問題?有沒有什麼標準的方法?我們已經提出了不同的選擇,但不確定哪個更好,每個選項的關注點是什麼。

選項1,有一個默認的內置管理員用戶。有一個固定的本地登錄頁面,內置用戶可以在不通過IdP的情況下登錄(如果啓用SAML SSO,可以選擇打開/關閉它)

選項2,在SAML SSO設置期間,請求管理員用戶名,以便我們以管理員角色在我們的數據庫中自動創建此用戶。然後當這個用戶通過IdP登錄時,我們可以在我們的數據庫中找到他。

還有什麼其他的選擇?

回答

0

關於誰應該處理角色的第一個問題。據我瞭解,每個客戶都有自己的一個服務提供商軟件。它連接到您擁有的中央IDP。如果是這樣的話,感覺就像它讓管理員處理IDP上的角色變得複雜一樣。我會去第二。

關於問題二。我一直處於相同的情況,我不記得我已經看到了明顯的標準解決方案。

我們所做的是選項2.它工作正常,但它增加了安裝過程的一些複雜性。我們選擇它是因爲我們沒有本地登錄頁面。 我也許會選擇1更好。

0

您可以使用授權圖層從IDP的不同目錄中獲取角色。它消除了對SAML的約束,並提供了與解決方案1相同的結果。