2016-11-30 51 views
0

我們正在主辦不同的網站/ web應用程序。目前,每個用戶都必須登錄到每個應用程序。每個應用程序都有自己的帶有User/PW/Permissions的DB。SSO爲不同的網站使用他們自己的數據庫作爲權限

我想在解決方案上得到一個唯一的認證,只有認證和剩餘的用戶權限應該從應用程序數據庫中讀取。只有用戶存在於應用程序數據庫上時,認證才能起作用。如果用戶登錄到一個應用程序「A」並打開應用程序「B」,他不應再次被要求登錄。 我曾看過simplesamlphp,但我無法找到一種方法來檢查現有用戶的不同應用程序的應用程序數據庫,然後將其登錄到IdP。

回答

0

SQL authentication module允許您使用數據庫進行身份驗證。在你的情況下,你有多個用戶數據庫。您如何知道使用哪個數據庫對用戶進行身份驗證?如果你想自動檢查所有這些,那麼你需要創建你自己的認證模塊。如果用戶將選擇驗證來源,那麼您可以使用Multiauth

要考慮的其他事項是,您還必須將您的應用程序更新爲SAML服務提供者。這個困難真的取決於應用程序。有些人默認支持SAML,其他人會允許你對auth進行外部化,有些人根本不會支持。

+0

感謝您的回答。我已經閱讀了一些關於WAYF(你從哪裏來)發現你來自哪個應用程序,並根據WAYF將你重定向到不同的IDP。這意味着,每個應用程序都有自己的IDP,它使用SQL模塊作爲其本地數據庫。但simplesamlphp存儲活動會話的位置在哪裏?是否可以將活動會話/令牌從不同的IDP寫入一箇中央「活動會話數據庫」?不同應用程序的用戶名始終是姓氏。 – Nico

+0

SSP在本地存儲會話。如果要共享它們,可以將其配置爲將它們存儲在數據庫或memcache中。我不確定如果作品在不同配置的IdP之間共享如何。看起來你有兩個相互衝突的目標:每個應用都有獨立的IdP,並在所有IdP中共享一個IdP會話。如果共享比我認爲你擁有單個IdP(並使用multiauth或自定義模塊)更好,然後在應用中執行authz,或者需要爲此編寫模塊,那麼共享是非常重要的。 – Patrick

相關問題