在Java平台上使用Active Directory的单点登录(SSO)

在Java平台上使用Active Directory的单点登录(SSO),java,jakarta-ee,single-sign-on,Java,Jakarta Ee,Single Sign On,我需要为内联网用户开发一个web应用程序。我不希望他们每次访问站点时都输入登录凭据。它应该自动从系统用户名和密码加载 我已经成功地实现了提示在active directory中注册的用户名和密码并根据LDAP进行验证的功能。我需要一些提示直接从内部网站登录,而不提示用户名和密码 这是我的疑问,请告诉我你的建议 是否必须设置SPN? 我们是否需要为每个客户端创建单独的keytab文件?在我的组织中,大约有800人在工作,所以我应该需要在keytab文件中添加所有客户端主体并复制到客户端计算机以执行

我需要为内联网用户开发一个web应用程序。我不希望他们每次访问站点时都输入登录凭据。它应该自动从系统用户名和密码加载

我已经成功地实现了提示在active directory中注册的用户名和密码并根据LDAP进行验证的功能。我需要一些提示直接从内部网站登录,而不提示用户名和密码

这是我的疑问,请告诉我你的建议

是否必须设置SPN? 我们是否需要为每个客户端创建单独的keytab文件?在我的组织中,大约有800人在工作,所以我应该需要在keytab文件中添加所有客户端主体并复制到客户端计算机以执行自动登录。
我尝试过许多API,如JESSO、Waffle、SpringKerberos、SPNGO,但都未能实现自动登录

我发现最简单的方法是使用Atlassian的群组,而不是自己实现。这是一个商业产品,但上次我检查时,它非常便宜,而且很有效。

如果您想使用Kerberos/SPNEGO,我建议您必须设置SPN。而你只需要一个关键字表的广告领域。您是在某些应用服务器上运行Java程序,如Weblogic,还是作为独立程序?服务器确实有您可以使用的安全框架,而对于独立程序,您必须手动执行大量操作。

您可能需要查看NTLM java实现,但我无法提供更多帮助,因为我还没有这样做,但通过快速搜索,java已经实现了这一点: