通过 Web 请求C++/节点.js进行 Windows 身份验证

Windows Authentication via Web Request C++ / Node.js

本文关键字:js 进行 Windows 身份验证 节点 Web 请求 C++ 通过      更新时间:2023-10-16

>问题我希望能够通过 Node.js 使用 Windows 身份验证。

我知道IIS在 ASP.NET 中处理Windows身份验证,但是我无法弄清楚的是,如何从node.js获取当前的客户端Windows用户名。 我知道它不是通过 IIS 运行的(并且真的不想沿着 IISNode 路线走下去)。

必须有一种方法可以通过 Node 获取客户端的 windows 用户名.js - 即使我必须编写一个C++库/服务。

最初的想法是,我将能够在 ASP.NET 中设置一个 Web 服务,该服务将使用 Windows 身份验证,并允许我使用 Web 请求来获取该用户 - 但这也许太天真了!

我不想要求用户提供用户名和密码 - 因为这错过了重点。

有什么想法、想法或我可以看的地方吗?还是这是不可能的?

注意:这是在一个封闭的内联网中,Windows身份验证在我们的 ASP.NET 应用程序中与Active Directory一起使用。

方法

除非我错过了一些要求,否则您应该能够设置一个 IIS 网站来将请求中继到 Node.js 应用程序,以便

  • 客户端浏览器将针对您的 IIS 站点进行身份验证;
  • IIS 站点会将经过身份验证的请求转发到 Node.js 应用并转发回客户端。

请确保禁用匿名访问,并且仅将 IWA 用于 IIS 站点。

有关如何使用 C# 或 VB 在 ASP.NET 中中继请求的几个示例,请参阅在 ASP.NET 中中继请求。您还需要传递带有标头或 GET/POST 参数的用户名:

Response.AppendHeader("CustomUserNameHeader", Page.User.Identity.Name);

假设

  • Node.js 应用需要知道在客户端计算机上登录的用户的名称。
  • 可以使 Node.js 应用只能从 IIS 站点访问,否则,解决方案是完全不安全的。