如何使用LDAP,应用程序,第三方应用程序等进行身份validation

我们将在java中创建一个Web应用程序。

对于用户身份validation,目前我们使用LDAP。 但我们希望有一些其他选项,如应用程序级别身份validation(来自数据库),gmail,facebook等。

与登录页面上的堆栈溢出有些类似。

我们将维护一个属性文件,该文件将包含所有可用的身份validation选项,如LDAP,facebook,gmail等。

如果我们想要再添加一个身份validation服务,我们会将其添加到此属性文件中,然后我们将需要添加帮助文件,这将执行身份validation的实际工作。

这应该是高度可定制的。

我对此有以下问题,

1)最好的方法是什么? 2)如何进行谷歌,脸书等第三方认证?

PS:当我们使用gmail等进行身份validation时,我们需要一些基本信息回到我们可以使用的应用程序。

Stackoverflow(Stackexchange)正在使用openid-selector的修改版本。 它是高度可定制的,您也可以添加自己的选择器。

您可以使用openID或OAuth机制通过Google,Facebook和其他社交网站进行身份validation。 您可以使用许多可用于java的库。看看openid4java 。 您也可以参考此列表中的库 。

您可以从Google,Yahoo或其他openid提供商那里获得一些基本信息(姓名,电子邮件,照片等)。

一种流行的解决方案是Spring Security (以前称为Acegi)。 它具有各种后端身份validation并处理openID和LDAP。 您可以将它与Abdel提到的openID选择器一起使用。 如果你google周围,你可以找到各种插件来连接不同的后端身份validation器,包括JAAS。