【问题标题】:Get Username from NTLM token Javascript从 NTLM 令牌 Javascript 获取用户名
【发布时间】:2015-09-22 07:37:53
【问题描述】:

我在 IIS 服务器上使用了 NTLM 身份验证,并且正在使用 IIS 的重写模块将该端口重定向到 nodejs 端口。

现在我正在使用 NTLM 令牌在 nodejs 中获取授权标头。

现在我的问题是,

  • 如何从 nodejs 中的 NTLM 令牌 获取 {domainName}{userName} 形式的用户名?

  • 我可以从 nodejs 获取该用户的组吗?怎么样?

【问题讨论】:

  • 你在使用 iisnode 吗?
  • 不,我使用 IIS 仅将请求路由到 nodejs。 我没有使用 IISNode
  • 你有没有解决这个问题,这让我发疯了。我也没有使用 IISNode,而且我已经有了 NTLMtoken,只需要从中提取 userName...
  • @Adam,你可以使用npmjs.com/package/node-sspi
  • @LaxmikantDange 如果您使用 IIS 作为反向代理,它不起作用,因为当 IIS 转发 HTTP 流量时,原始 TCP/IP 请求(NTLM/SSPI 所依赖的)丢失。跨度>

标签: javascript node.js iis


【解决方案1】:

有几个库可用于在 Node 中处理 NTLM,包括:

node-http-ntlm
express-ntlm

这些使执行以下操作变得非常简单:

httpntlm.get({
    url: "https://someurl.com",
    username: 'm$',
    password: 'stinks',
    workstation: 'choose.something',
    domain: ''
}

如果您不想使用这些库之一,则必须自己解码令牌。

您可以查看这些库的来源以获得有关如何执行此操作的帮助:

https://github.com/SamDecrock/node-http-ntlm/blob/master/ntlm.js
https://github.com/einfallstoll/express-ntlm/blob/master/lib/express-ntlm.js

【讨论】:

  • 我不想从节点认证用户,认证过程由 IIS 维护,我只想从 ntlm 令牌获取用户名
  • 那么请提供有关您在 Node.js 中收到的内容的更多详细信息。标题是什么样的?有没有身体参数?
  • 我得到一个标准的 NTLM 标头,标头类似于Authorization: NTLM <Base64 NTLM token>
猜你喜欢
  • 1970-01-01
  • 2011-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-14
  • 1970-01-01
相关资源
最近更新 更多