问题标签 [negotiate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2697 浏览

iis - LEGACY EDGE ONLY:HTTP 请求未经客户端身份验证方案“协商”的授权。。

我有一个调用 wcf 服务的应用程序,该应用程序使用 Windows 身份验证并禁用匿名访问。我仍然在访问服务时遇到错误:

'HTTP 请求未使用客户端身份验证方案'协商'。从服务器收到的身份验证标头是“协商,NTLM”。' 奇怪的是它在 IE11 和 chrome (v83) 中运行良好,这个问题只出现在 Windows 10 1809 版本上。在下面附上我的 IIS 的屏幕截图。

谁能提出可能的问题?

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
512 浏览

windows - webHDFS curl --negotiate 在 Windows 上

以下命令适用于 Linux,但在 Windows 上失败。在运行命令之前,我使用 kinit 获取有效的 Kerberos 票证。

预期结果(Linux 输出):

从 Windows 输出:

curl 版本窗口:

卷曲版本 Linux:

我在当使用 --negotiate with curl 时,找到了关于如何在 Linux 上安装的详细说明,是否需要 keytab 文件?,但我找不到适用于 Windows 的 GSS-API,适用于 Windows 的 SSPI 是否与适用于 Linux 的 GSS-API 相同?

0 投票
0 回答
353 浏览

iis - 如果在 Windows 身份验证下选择 Negotiate:kerberos 作为提供程序,IIS Web 应用程序将停止工作

我们有一个托管在 IIS 上的网络应用程序。spn 设置为主机名,并且在协商、ntlm 设置和用户 kerberos 身份验证时工作正常。但是,如果我们同时删除它们并设置协商:kerberos,则 Web 应用程序将停止工作。

在访问网页时,我们收到错误消息,指出无法访问该站点。甚至应用程序池也在运行。仍然面临这个问题。任何人都知道如何解决这个问题。

0 投票
0 回答
817 浏览

windows - 在 Windows 上使用 --negotiate 和 curl 时,SSL/TLS 握手失败

在 Windows 上使用带有 curl 的 --negotiate(或 ntlm)时,尽管在我的 Windows 10 上缓存了有效的 kerberos 票证,但 SSL/TSL 握手失败(如下所示)。相同的逻辑和命令在 Unix/Linux 中没有任何问题。有关如何解决此问题的任何想法/帮助?

清单详情:

使用 ntlm 的 curl 命令或协商详细信息:

0 投票
1 回答
68 浏览

spring-boot - 使用 Waffle Spring boot + Spring Security 和嵌入式 tomcat 获取 Angular

我正在使用这个例子来了解更多关于华夫饼的信息:

https://github.com/Waffle/waffle/tree/master/Source/JNA/waffle-demo/waffle-spring-boot-filter2

我很高兴,因为在这个例子中一切都很好。但是在这个 spring boot 项目中添加一个静态 HTML 文档并在我的浏览器中启动这个 html 页面会导致错误:

我想这取决于我的弹簧安全过滤器的配置。有没有人有一个示例华夫饼,带有嵌入式 Tomcat 的弹簧启动,它适用于 html 或 angular?

提前非常感谢!

0 投票
1 回答
193 浏览

c# - .NET HttpClient 在使用 NTLM 协商时不会在对 IIS 的请求之间保持身份验证

IIS 站点配置为使用带有默认选项的 Windows 身份验证。客户端是用 C# 编写的,并使用单个 HttpClient 实例来执行请求。请求成功,但每个请求都会触发 401 Challenge:

在此处输入图像描述

使用 Wireshark 捕获的流量。我们进行了响亮的测试,并注意到,使用匿名身份验证客户端每秒执行 5000 个请求,但使用 Windows 身份验证 - 800。因此,看起来wireshark 不会影响身份验证,性能下降表明,没有wireshark 也会发生401 挑战。

Wirehshark 日志:https ://drive.google.com/file/d/1vDNZMjiKPDisFLq6ZDhASQZJJKuN2cpj/view?usp=sharing

客户端代码在这里:

IIS 站点设置:

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

如何使 HttpClient 在请求之间保持身份验证,以防止在每个请求上浪费协商握手?

UPD:客户端代码:https ://github.com/PFight/httpclientauthtest 重现步骤:

  1. 使用简单文件 index.html 创建文件夹,在 IIS 中为此文件夹创建应用程序“testsite”。启用匿名身份验证。
  2. 运行客户端(https://github.com/PFight/httpclientauthtest/blob/main/TestDv5/bin/Debug/TestDv5.exe),按开始按钮 - 查看每秒请求数。按停止。
  3. 禁用匿名身份验证,启用 Windows 身份验证。
  4. 按客户端中的开始按钮,查看每秒请求数。

在我的计算机上,我在匿名上看到每秒约 1000 个请求,在 Windows 上看到约 180 个请求。Wireshark 在每个 Windows 身份验证请求上显示 401 个质询。在 IIS 中启用了 keep-alive 标头。

IIS 版本:10.0.18362.1(Windows 10)

加载到进程的 System.Net.Http.dll 版本:4.8.3752.0

0 投票
1 回答
81 浏览

authentication - Cypress:使用 cypress-ntlm-auth 代理为 api 请求配置硬编码用户

cypress-ntlm-auth在我的 cypress 自动化项目中使用插件,为我提供 Windows 身份验证(Ntlm、kerberos 等)

特别是,我使用ntlmSso与我的应用程序协商的选项。如果服务器发送身份验证质询,ntlm-proxy 将使用运行测试客户端的用户的凭据执行 NTLM 或协商登录握手。

问题是我需要使用预定义的用户(在我的预生产环境中使用)来发出 api 请求,而不是计算机上的登录用户。

我怎样才能做到这一点?提前致谢