【问题标题】:How NTLM works for webservice to authenticate users?NTLM 如何让 Web 服务对用户进行身份验证?
【发布时间】:2015-01-14 02:28:59
【问题描述】:

我浏览了一些网站以更好地了解 ntlm,例如 http://www.innovation.ch/personal/ronald/ntlm.html。 我开始创建一个演示,它使用 ntlm 对 nodejs 应用程序中的用户进行身份验证。在这个演示中,我使用 expressjsexpress-ntlm 模块创建了应用程序。 但是我还是不明白,ntlm 是如何与 nodejs webservices 一起工作的?

我对 ntlm 身份验证有一些疑问。

  • ntlm 如何用于 Web 服务?
  • 如何在使用 ntlm 时自定义登录页面?目前我正在获取登录凭据的输入框。
  • 我可以使用哪些用户进行身份验证?目前该应用程序接受任何用户名和密码。所以我不清楚它将使用哪个用户名和密码。

这是我的代码。

var app, express, ntlm;

express = require('express');

ntlm = require('express-ntlm');

app = express();

app.all('/', ntlm());

app.get('/', function(request, response) {
  response.send(request.ntlm);
});

app.listen(3000);

【问题讨论】:

  • express-ntlm 现在已更新并将其请求代理到 Active Directory。所以不可能使用任何东西作为用户名和密码。

标签: node.js rest http express ntlm


【解决方案1】:

有一个 Passport.js 身份验证策略,它支持 NTLM 身份验证,并且有一个允许自定义登录屏幕的方法。如何配置它取决于您使用的服务器类型,但他们很好地解释了示例中的概念。

查看非集成身份验证

部分

https://www.npmjs.org/package/passport-windowsauth

【讨论】:

  • 谢谢,这有助于我开发应用程序,但仍然存在 NTLM 如何用于 Web 服务的问题?
  • 澄清一下,当您问“NTLM 如何为 Web 服务工作”时,您的意思是“如何使用 NTLM 对 RESTful API 调用进行身份验证”?
  • 是的,我知道ntlm是如何工作的,但是对于webservices认证来说,认证的过程或流程是什么,ntlm认证和普通认证有什么不同?
【解决方案2】:

我想你正在寻找this answer。阅读 josh3736 的答案,他解释了 NTLM 中的流程。

同样,正如 Brian Shamblen 所建议的,您实际上并不需要深入了解所有这些内容,passport.js 可以有效地为您处理所有这些。这是一个教程http://passportjs.org/guide/

【讨论】:

    猜你喜欢
    • 2021-12-22
    • 1970-01-01
    • 2016-11-03
    • 2012-07-28
    • 2013-02-23
    • 1970-01-01
    • 2021-07-26
    • 2011-04-22
    • 1970-01-01
    相关资源
    最近更新 更多