问题标签 [ntlm-authentication]
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.
wso2 - 连接到 NTLM 端点
我正在尝试连接到受活动目录身份验证保护的端点,我正在使用 Nipuna 博客上建议的 CustomNtlm 调解器,并且我得到了未经授权的 401,我已按照上述博客文章中的所有步骤进行操作。任何人都可以帮助我。
我已经尝试过 Nipuna 博客上指定的代码。我正在尝试发送一条 json 消息,我期待一条 json 响应消息。
https://medium.com/@nipunadilhara/ntlm-authentication-for-wso2-esb-v6-2-0-9584c3e6713
电线日志
php - NTLM 身份验证弹出问题
下面的代码完美运行,并弹出询问窗口用户名的弹出窗口以及您输入的任何凭据打印
我想直接打印 windows 用户名而不需要身份验证弹出请指导我如何在 PHP 中做到这一点
我已经尝试了下面的代码,它工作正常,但我只需要回显用户名自动获取而不弹出
node.js - 如何在 Node.js 中将 NTLM 凭据转换为 Kerberos 令牌
我想使用 Node.js 构建一个服务器,它充当某种代理。连接到我的服务器的客户端使用 NTLMv2 进行身份验证(无法更改此设置),但我的服务器将连接到的上游服务器需要 Kerberos 令牌。
所以,我的问题很简单:如何使用 Node.js 将 NTLMv2 提供的信息转换为 Kerberos 令牌?在 npm 上,到目前为止,我已经找到了用于 NTLMv2 身份验证的模块,但我可能需要与 Windows 对话以将用户的 NTLMv2 数据转换为该用户的令牌。
关于这个的任何提示,如何解决这个问题?
java - HTTP 请求在不同的环境中获得授权和未经授权,并且设置似乎相同
我们有一个有趣的情况,基本的 GET HTTP 请求没有通过 IIS 服务器上的 Windows NTLM 授权。同时,我们在另一个成功执行的环境中运行相同的代码。
当我们通过浏览器重复请求时,它会成功执行。
似乎 Java 代码没有随请求发送正确的授权信息。我们正试图弄清楚这是怎么回事。使用的类来自java.net
包。我们尝试将帐户切换到本地系统,在该系统下 Tomcat 来回运行但没有成功。
代码尽可能简单:
要回答的明确问题:如何在客户端记录/跟踪/调试用于身份验证的信息?任何提示将不胜感激:)
.net - 客户端有时会在启用 Kerberos 后协商 NTLM,直到客户端服务器重新启动。如何避免重启?
关于设置的一些上下文:
我们正在从 NTLM 切换到 Kerberos (Negotiate),以便在各种 .NET 工作负载(例如 IIS 托管的 Web API 或简单的 .NET 命令行程序)之间进行服务到服务身份验证。
对于从客户端到服务器的任何调用,中间都有一个 API 网关。我们在网关中有一些自定义逻辑,用于进行身份验证和执行 Kerberos(拒绝使用 NTLM 票证的协商标头)。健康的客户端-服务器流程如下所示:
- 客户端(C) 向服务器(S)发送请求
- 网关(G)拦截请求
- (G) 使用WWW-Authenticate: Negotiate返回 401 质询
- (C) 再次发送请求,带有Authorization: Negotiate [ticket]标头
- (G) 检查[ticket]并且:
5.a 如果[ticket]是 NTLM:“拒绝”请求(返回非成功状态代码)
5.b 如果[ticket]是 Kerberos:验证票证并(如果有效)通过请求到 (S)
现在,为了不进行重大更改,我们能够(在网关中)配置(在网关中)应该发生此 Kerberos 检查的请求,基于来自 (C) 的请求的原始目标,这应该是大致的主机名和 (S) 的港口。
此设置工作正常,但偶尔会出现这个难以复制的问题:
- 有时,对于某些 (S),当我们在 (G) 中启用 Kerberos 签入时,客户端 (C) 会继续发送 NTLM 票证(因此被拒绝)。
- 尽管 (C) 能够与 (G) 对话 Kerberos 的所有先决条件都得到满足 - 例如
klist get HTTP/spn-of-G
,即使在模拟完全相同的用户时,也可以从 (C) 执行并接收正确的 Kerberos 票证。 (C) 通常会运行为 - 最重要的是,在与 (C) 相同的服务器上,通常还有其他应用程序可以很好地通过相同的流程
- 重新启动 (C) 正在运行的 Windows Server 实例可修复此问题,使 (C) 在重新启动后向 (G) 发送正确的 Kerberos 票证
我的问题是:在不重新启动服务器的情况下,是否还有其他可能解决这种情况?
我已经尝试过但没有成功的事情:
- 重新启动在 (C) 上运行的应用程序。如果 (C) 是 IIS 应用程序,我尝试重新启动应用程序池,或者
iisreset
. 但是我已经看到这个问题也发生了,例如,在 (C) 是一个 C# 命令行程序每 15 分钟运行一次的情况下。 - 在 (C) 运行的服务器上刷新 DNS,使用
ipconfig /flushdns
- 清除运行 (C) 的服务器上所有缓存的 Kerberos 票证(
klist purge
使用 powershell 脚本为所有登录会话执行)
freeradius - 针对 AD 的 ntlm_auth 验证多个组成员身份
我一直在尝试为我们的网络设备设置freeradius
服务,该服务将针对 Active Directory 进行身份验证。我现在有身份验证工作。我要完成的下一个任务是检查用户是否属于某个组。require-membership-of
使用参数“ ”很容易ntlm_auth
我的配置是这样的:
但我找不到检查 2 个或更多组的方法。有没有办法以某种方式做到这一点?
谢谢
jmeter - 在 NTLM 身份验证后,Jmeter HTTP 请求保持循环重定向
我对 JMeter 比较陌生。我想让 Jmeter HTTP Sampler 登陆使用 Drupal 8 开发的安全网页。我认为它需要 NTLM 身份验证,所以我使用 HTTP 授权管理器来传递 BlazeMeter 指南中指定的凭据
我的授权管理器具有以下值:
从 jmeter 日志中,我可以看到我已通过身份验证。
2019-08-16 14:21:08,975 调试 oahieMainClientExec:连接可以无限期保持活动状态 2019-08-16 14:21:08,975 调试 oahiaHttpAuthenticator:身份验证成功 2019-08-16 14:21:08,976 调试 oahcpResponseProcessCookies:Cookie 规范不在 HTTP 上下文中指定
==========================
但是,我没有重定向到受保护的网页。相反,它会将我重定向到我的主页 URL,然后将我重定向到具有双重编码的另一个 url,然后将我重定向回我的主页 url 并继续循环重定向。然后在 20 次重定向后请求错误。
我们不太确定它为什么会发生。我们不太确定这是否与 cookie 有关,并且我们已经将 HTTP Cookie 管理器添加到 Jmeter 线程组。
此外,如果我从具有身份验证凭据的 jmeter 复制 URL,并将其粘贴到 IE 浏览器上,我就可以启动该站点。这只是 Jmeter 中的问题。
感谢您的任何意见!
asp.net-core - Asp.Net Core HTTP.SYS Windows 身份验证回退到 NTLM 而不是 Kerberos
我创建了一个使用 HTTP.SYS 和 Windows 身份验证的 ASP .NET core 2.2 应用程序:
并在我的电脑上运行(使用我当前的域用户,也是管理员)。如果我运行 Kerberos Authentication Tester,它会显示它正在使用 NTLM(当 Kerberos 不可用时,这是 Negotiate 的备份计划)。我的应用程序显示身份验证是协商。
如果我运行 Fiddler 并打开自动身份验证,然后重复测试,则 Kerberos 身份验证测试器将 None 显示为身份验证(预期!),而我的应用程序显示身份验证是 Kerberos。
为什么 Kerberos Authentication Tester 总是回退到 NTLM?
PC 运行的是 Windows 10 1803。
谢谢,
azure-pipelines - 具有不同用户上下文的天蓝色管道任务
问题:
是否可以使用不同的用户上下文执行 azure-pipeline-task?
背景:
在我的 azure devops 管道中,我想在具有不同用户上下文的单独管道任务中执行验收测试。(例如,使用 admin-user/power-user/regular-user 调用 API 端点 A,...)
我想到了三种可能实现这一目标的方法:
- System.Net.NetworkCredential类(
为每个用户创建不同的 HttpClientHandler) - http 代理(使用不同的代理作为用户处理 NTLM 身份验证)
- 具有不同用户上下文的 azure-pipeline-task(不知道是否可能)
.net - 在 Net.Core 2.1 中使用 SOAP WCF 服务时获取身份验证协商而不是 NTLM
我试图使用 NTLM 身份验证方案连接到 WCF SOAP 服务,我在使用 .Net Framework 4.x 时成功了,但是当我尝试在 .NET Core 2.1 中使用相同的服务时它失败了(因为发送了身份验证方案尽管我在代码中设置了 Ntlm 作为协商),但我正在使用 fiddler 并且我正在附上它的一些图片。
Net Core 2.1 的标头
这是我正在使用 .NetCore2.1 和 .NetFramework 4.5.x 的源代码(其中工作正常):
我在 .NetCore2.1 中遇到的错误是:
发生一个或多个错误。(HTTP 请求未经客户端身份验证方案“Ntlm”授权。从服务器接收到的身份验证标头为“NTLM,Negotiate”。)
任何帮助将不胜感激,谢谢!