我有一个正在运行的网站,它有自己的一组用户,并且有一个身份验证系统,可以进行基本的数据库查找,以验证用户登录网站。我们的客户对该网站感兴趣,并要求我们不再向我们注册所有现有用户,而是拥有Active Directory,我应该使用它来验证它们。这可以防止客户端向我们注册所有用户并记住另一组用户名和密码。
我的网站是用Java构建的,我正在寻找一个可以与活动目录集成的解决方案。
我是Active Directory的新手并且一直在网上搜索但未能找到最佳解决方案。我对Active Directory的理解是它有一组用户名和密码,如果我能够成功地与它集成,除了拥有自己的用户数据库之外,我还必须在客户端的Active Directory中查找以及如果找到匹配项,我可以对用户进行身份验证。
如果我的理解错误,请纠正我,请你指出正确的方向吗?
谢谢,
Mayank
答案 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)。
这实际上取决于您的客户如何设计和访问您的应用程序(本地与托管,单租户与多租户)。