与客户端现有的活动目录集成

时间:2013-08-08 14:35:14

标签: java active-directory adfs2.0 adfs adfs2.1

我有一个正在运行的网站,它有自己的一组用户,并且有一个身份验证系统,可以进行基本的数据库查找,以验证用户登录网站。我们的客户对该网站感兴趣,并要求我们不再向我们注册所有现有用户,而是拥有Active Directory,我应该使用它来验证它们。这可以防止客户端向我们注册所有用户并记住另一组用户名和密码。

我的网站是用Java构建的,我正在寻找一个可以与活动目录集成的解决方案。

我是Active Directory的新手并且一直在网上搜索但未能找到最佳解决方案。我对Active Directory的理解是它有一组用户名和密码,如果我能够成功地与它集成,除了拥有自己的用户数据库之外,我还必须在客户端的Active Directory中查找以及如果找到匹配项,我可以对用户进行身份验证。

如果我的理解错误,请纠正我,请你指出正确的方向吗?

谢谢,

Mayank

3 个答案:

答案 0 :(得分:2)

如果您使用Tomcat 6及更高版本,请尝试我的Tomcat SPNEGO/Active Directory Authnz。该代码具有生产质量,即将发布。建立网站并阅读文档,一切都在描述。

答案 1 :(得分:1)

您已使用adfs对此进行了标记,但问题上没有任何内容涉及到这一点?

有趣的是,您可以使用ADFS执行此操作。

如果您可以集成STS,那么您可以与ADFS联合,然后用户可以选择要进行身份验证的存储库。

我不确定您的数据库是如何进行身份验证的?如果它是自定义的,则可能没有支持此功能的STS。

或者,在身份验证屏幕前添加另一个屏幕。该屏幕询问用户使用哪个存储库。如果他们选择AD,那么只需通过Java API for Active Directory访问AD - 例如JNDI。

答案 2 :(得分:1)

您的应用已部署在哪里?如果它位于您的客户所在地,那么最简单的可能是针对AD(LDAP服务器)进行LDAP查询,如@nzpcmad建议的那样。如果我没有弄错的话,Tomcat也支持Windows身份验证,因此可能更容易走这条路。

如果它是非本地的,则必须使用身份联合方法。您将不得不更改您的应用程序以接受SAML令牌并实施SAML协议(因为您在Java世界中可能是最佳选择)。您的客户需要部署STS(如ADFS)。

这实际上取决于您的客户如何设计和访问您的应用程序(本地与托管,单租户与多租户)。