Java 自动对IIS应用程序中的AD用户(已登录tomcat应用程序)进行身份验证

Java 自动对IIS应用程序中的AD用户(已登录tomcat应用程序)进行身份验证,java,asp.net,tomcat,iis,active-directory,Java,Asp.net,Tomcat,Iis,Active Directory,我有两份申请。一个在IIS上运行,另一个在Tomcat上运行。这两个应用程序都通过active directory对用户进行身份验证。目前,用户必须在两个应用程序中分别提供他们的域、用户名和密码才能使用它们 我想要的是-如果用户使用AD详细信息登录Tomcat应用程序,那么我们将在应用程序中显示一个按钮,该按钮将在浏览器的其他选项卡中打开我们的IIS应用程序(已经完成),并且在该IIS应用程序中,该用户不需要再次使用AD详细信息登录(应该自动登录)。因为他已经使用相同的帐户登录到另一个应用程序(

我有两份申请。一个在IIS上运行,另一个在Tomcat上运行。这两个应用程序都通过active directory对用户进行身份验证。目前,用户必须在两个应用程序中分别提供他们的域、用户名和密码才能使用它们

我想要的是-如果用户使用AD详细信息登录Tomcat应用程序,那么我们将在应用程序中显示一个按钮,该按钮将在浏览器的其他选项卡中打开我们的IIS应用程序(已经完成),并且在该IIS应用程序中,该用户不需要再次使用AD详细信息登录(应该自动登录)。因为他已经使用相同的帐户登录到另一个应用程序(Tomcat应用程序)


这可能吗?如果是,请告诉我如何实现此目标。

您想要Kerberos。内置到IIS中,可供Tomcat使用:(是的,我是这本书的作者,它在多域环境中工作得非常好。)

最好从一些与您目前所做的稍有不同的角度来思考:

尝试将Tomcat和IIS验证到公共SSO系统,而不仅仅是从一个系统验证到另一个系统。SSO系统是专门为实现这一点而设计的。一个好的副作用是,这些系统用途单一,相对容易监控/保护,并且它们将是唯一与您的密码联系的系统-使用SSO进行登录的应用程序不需要知道任何用户的密码。所以你不能丢失任何密码


无论您选择哪种方式(Michael-O建议使用Kerberos,我不推荐任何特定的产品或协议),都不要尝试向另一个系统提供一个系统的密码。这必然会带来安全问题。

我在这里如何使用Kerberos,如果有,请举个例子。我知道Kerberos是一种网络身份验证协议,但我的应用程序不是客户端和服务器类型。这是两个不同的应用程序,用于验证来自通用active directory的用户。您有常规的Web应用程序,这意味着您有一些HTTP客户端,如浏览器。如果配置正确,它们将自动进行身份验证,因为您的服务器和客户端都位于域中。询问你的管理员关于这个事实。