背景:我目前有一个java Web应用程序,它在我的Mac上的localhost上运行。用户可以登录Web应用程序,并根据OpenLDAP服务器验证其凭据,该服务器也在本地计算机上的某个端口上运行(特别是使用this docker image)。 Web应用程序包括与LDAP服务器交互以提供登录用户名和密码的代码。验证成功后,用户将登录并可继续使用该应用程序的功能。
问题:此Web应用程序将部署到将使用Windows的客户端。他们正在申请SSO能力 - 即。成功登录其域下的Windows机器会绕过在运行Web应用程序时登录Web应用程序的需要。客户端无法在其计算机上运行其他Java应用程序,这将有助于SSO - 只需登录到他们的Windows机器就可以绕过登录Web应用程序的需要,这意味着需要以某种方式配置Windows,以及Web应用程序需要以某种方式为SSO配置。出于测试目的,我使用的是Windows 7虚拟机,它运行在我运行的同一台机器上并测试Web应用程序。
我已经完成了对SPNEGO,Java GSS API(看起来需要客户端代码与服务器通信),Kerberos,Windows IIS等的研究。我知道如何在Windows中启用Windows集成身份验证,但我不知道#39;知道如何在我的Web应用程序中实际使用它来启用SSO。基本上,在这种情况下,我仍然在如何在特定情况下实施SSO功能。以下是一些具体问题:
答案 0 :(得分:4)
Windows SSO基于Kerberos,而不是LDAP。人们通常混淆它们的原因是Microsoft Active Directory充当LDAP服务器和Kerberos服务器。
如果您的Windows用户需要透明身份验证(SSO),则必须实施Kerberos身份验证。
他们如何为Web应用程序实现Kerberos称为SPNEGO。
您需要执行以下操作:
正如您所见,LDAP不参与此身份验证流程(尽管可以将其用作下一步的授权)