Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用java中的Windows凭据自动登录?_Java_Reactjs_Spring_Active Directory_Single Sign On - Fatal编程技术网

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

如何使用java中的Windows凭据自动登录?,java,reactjs,spring,active-directory,single-sign-on,Java,Reactjs,Spring,Active Directory,Single Sign On,我想在我的应用程序中自动验证登录到其windows的“active directory用户”。 简而言之,我希望我的应用程序使用windows凭据进行SSO。 **客户端是React,后端是java8和spring4.1.2,springsecurity是3.2.5 我已经使用SpringLDAP 3.2.5在我的应用程序中验证和搜索“active directory用户”。 但用户在使用浏览器时应提交用户名和密码 我读过关于“集成Windows身份验证”(IWA)、“Kerberos”、“NT

我想在我的应用程序中自动验证登录到其windows的“active directory用户”。 简而言之,我希望我的应用程序使用windows凭据进行SSO。 **客户端是React,后端是java8和spring4.1.2,springsecurity是3.2.5

我已经使用SpringLDAP 3.2.5在我的应用程序中验证和搜索“active directory用户”。 但用户在使用浏览器时应提交用户名和密码

我读过关于“集成Windows身份验证”(IWA)、“Kerberos”、“NTLM”的文章。 我应该使用NTLM而不是LDAP吗??? 或者,我应该使用Kerberos吗??? 或者,我应该使用ADFS吗

我应该在active directory中为此配置什么吗??? **我无法在active directory中配置任何内容

我应该在react中以编程方式获取windows凭据并将其发送到服务器,然后从服务器将该凭据发送到active directory以进行验证吗

我不知道,但是,我应该在对“HTTP选项请求”的“HTTP响应”中说些什么来强制浏览器在下一个请求中设置windows凭据吗


而且,感谢您抽出时间。

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

Windows身份验证

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

在本例中,web服务器(本例中为Tomcat)处理身份验证并将凭据传递给应用程序。如果您使用的是IIS和Windows,安装将非常简单。但是在Linux上使用Tomcat,会有点困难。您需要设置kerberos,这需要在域上设置SPN(服务主体名称)值,以便在域上信任您的服务器进行身份验证。在Tomcat 8中设置此功能的完整说明如下:

一旦设置完成,浏览器就需要信任您的网站。如果您的站点被识别为intranet站点,那么这应该是正确的。如果没有,则需要将站点的域添加到客户端计算机上Internet选项中的受信任站点。这也可以做到。这将适用于IE和Chrome。Firefox使用自己的
网络。协商授权委托URI
设置

表单身份验证

另一种方法是使用登录页面询问用户的用户名和密码,然后在Java应用程序代码中通过LDAP对其进行身份验证。我假设您知道如何设置登录页面,所以您只需要知道如何验证凭据。您可以对该代码使用。该答案的代码位于控制台应用程序中,但您可以提取包含用户名和密码的代码并进行验证


这可能更容易设置,但要以用户为代价。

您使用的是哪种web服务器和操作系统?服务器中的linux。客户端中的Windows用于哪个web服务器?Apache?Apache tomcat 8你找到解决方案了吗?我也是。