为了账号安全,请及时绑定邮箱和手机立即绑定

如何在java中使用Windows凭据自动登录?

如何在java中使用Windows凭据自动登录?

慕桂英3389331 2023-08-09 16:15:46
我想在我的应用程序中自动验证登录到其窗口的“活动目录用户”。简而言之,我希望使用 Windows 凭据对我的应用程序进行 SSO。**客户端是 React,后端是 Java 8 和 Spring 4.1.2,Spring Security 是 3.2.5。我已经使用 spring LDAP 3.2.5 在我的应用程序中验证并搜索“活动目录用户”。但用户在使用浏览器时应提交用户名和密码。我读过有关“集成 Windows 身份验证”(IWA)、“Kerberos”、“NTLM”的内容。我应该使用 NTLM 而不是 LDAP 吗???或者,我应该使用 Kerberos ???或者,我应该使用 ADFS ???我应该在活动目录中配置任何内容吗???**我无法在活动目录中配置任何内容我应该以编程方式在 React 中获取 Windows 凭据并将其发送到服务器,然后从服务器我应该将该凭据发送到 Active Directory 来验证它吗???我不知道,但是,我应该在“HTTP 响应”中对“HTTP 选项请求”说些什么来强制浏览器在下一个请求中设置 Windows 凭据吗?谢谢您的宝贵时间。
查看完整描述

1 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

有几种方法可以做到这一点:

Windows 身份验证

这对用户来说是最好的,因为它是无缝登录。如果该网站受信任,则浏览器会自动将当前登录用户的凭据发送到该网站。

在本例中,Web 服务器(本例中为 Tomcat)处理身份验证并将凭据传递给应用程序。如果您使用 IIS 和 Windows,设置将非常简单。但对于 Linux 上的 Tomcat,这就有点困难了。您需要设置 kerberos,这需要在域上设置 SPN(服务主体名称)值,以便您的服务器在您的域上受到信任以进行身份验证。在 Tomcat 8 中进行设置的完整说明如下:Windows 身份验证操作方法

设置完成后,您的网站需要受到浏览器的信任。如果您的站点被识别为 Intranet 站点,那么这应该已经是正确的。如果没有,则需要将您站点的域添加到客户端计算机上 Internet 选项中的受信任站点。这也可以通过组策略来完成。这适用于 IE 和 Chrome。Firefox 使用自己的network.negotiate-auth.delegation-uris设置。

表单验证

另一种方法是使用登录页面询问用户的用户名和密码,然后通过 Java 应用程序代码中的 LDAP 对其进行身份验证。我假设您知道如何设置登录页面,因此您只需要知道如何验证凭据即可。


查看完整回答
反对 回复 2023-08-09
  • 1 回答
  • 0 关注
  • 223 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信