0

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

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

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

如果我的理解有误,请纠正我,您能否指出正确的方向?

谢谢,

马扬克

4

3 回答 3

2

如果您使用的是 Tomcat 6 或更高版本,请尝试我的Tomcat SPNEGO/Active Directory Authnz 。该代码具有生产质量,即将发布。建立站点并阅读文档,所有内容都已描述。

于 2013-08-09T08:41:44.193 回答
1

你已经用 adfs 标记了这个,但问题上没有提到这个?

有趣的是,您也许可以使用 ADFS 做到这一点。

如果您可以在自己这边集成 STS,那么您可以与 ADFS 联合,然后用户可以选择要在哪个存储库上进行身份验证。

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

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

于 2013-08-09T00:03:57.397 回答
1

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

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

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

于 2013-08-09T05:09:45.783 回答