2017-04-13 78 views
0

對於多個應用程序,我想構建一個集中的帳戶解決方案。核心由一些ASP.NET Core Web應用程序組成。但我也想包含第三方應用程序,如Wordpress,GitLab或XAMPP/HipChat服務器。我的目標:用戶創建一個帳戶,可以在所有這些應用程序中使用。所以LDAP服務器似乎是最好的方式,因爲許多應用程序都支持這個協議。這也爲其他應用程序提供了靈活性,這些應用程序可能稍後添加。將Facebook等社交登錄集成到LDAP目錄

這裏的問題是,用戶應該能夠使用普通社交網站進行身份驗證 - 特別是Facebook。它的藝術水平,並會增加對話速度,使用戶更容易。

是否有可能將Facebook這樣的社交登錄提供程序集成到LDAPDS這樣的LDAP服務器上?

正如我所看到的主題,Facebook生成某種身份驗證令牌,可以從應用程序使用它來驗證用戶的身份。在我的自定義網絡應用程序中,這沒有問題。但是對於例如一個XAMPP服務器,這似乎不起作用:LDAP需要用戶名/密碼。但我沒有這個,因爲只有一個Facebook令牌可用。 LDAP服務器可以將其存儲在一個屬性中。但是,這需要在ldap綁定上檢查此令牌而不是密碼。

另一方面,當我放棄LDAP服務器並使用一些類似ASP.NET Core身份的框架時,這不是什麼大問題。這裏的問題:我無法使用這個登錄的第三方應用程序。這將要求用戶爲例如XAMPP,Wordpress等等,這導致了很大的混亂,因此對我來說是不適合的。

通過減少社會支持,它的工作原理。這似乎也不是一個好主意,因爲這些登錄是最先進的,並且我針對的是年輕用戶,他們期望Facebook或類似提供商的SSO解決方案。

回答

1

Facebook(和其他社交登錄網站)使用名爲OAuth的協議進行身份驗證。可能最簡單的解決方案將自己實現一個OAuth服務器,它將LDAP用作後端,然後將其作爲第二種登錄方式添加到Facebook登錄名下。

這不會添加用戶通過Facebook登錄到您的LDAP,但是因爲通常只有一個OAuth令牌返回登錄(不一定是用戶名),需要根據Facebook進行驗證(或提供該令牌的人)不會將其用作「密碼替換」。