【问题标题】:Get authenticated user's groups from Active Directory in Node从 Node 中的 Active Directory 获取经过身份验证的用户组
【发布时间】:2016-03-31 19:20:36
【问题描述】:

我们被要求移动我们的 NodeJS 应用程序以在 IIS (Windows Server 2012R2) 下运行并与现有的 Active Directory 集成。我们被要求删除登录页面,而是使用 Windows 身份验证来获取(已通过身份验证的)用户的 ID,并使用他/她所属的组来控制他们在应用中的授权级别。

我已经安装了iisnode 以在 IIS 下运行我的应用程序,并认为我将使用passport-windowsauthnode-activedirectory 来获得组成员资格。但是,两者都需要用户/密码来验证用户。我的用户已经通过身份验证,我无法访问他的密码(我也不应该)。

如何从 Active Directory 获取经过身份验证的用户组?

这是我目前所拥有的:

  1. 已安装并配置 iisnode
  2. 为 Web 应用启用 Windows 身份验证
  3. 将此添加到 web.config:<iisnode promoteServerVars="AUTH_USER,AUTH_TYPE" />
  4. 然后在我的 index.js 文件中,我可以 console.log(req.headers['x-iisnode-auth_user']); 并获取正确的用户名 - 但我不知道如何从这里着手获取他/她的组
  5. 在任何情况下,我都不想重新询问用户的密码

【问题讨论】:

  • 嘿,如何在 nodejs 应用程序中获取已通过身份验证的用户信息的详细信息?案例1:node js 应用托管在windows server 案例2:nodejs 应用未托管在windows server\

标签: node.js iis active-directory windows-authentication


【解决方案1】:

好吧,似乎没有人有兴趣研究这个问题:)。我假设 IIS + Node.js + Active Directory 是一个边缘案例。 这是我最终解决这个问题的方法:

  1. 向 Active Directory 添加一个只能从 IIS 计算机登录的特殊用户(奖励:限制该用户的 IP/进程/访问权限)。
  2. 将 AD 详细信息、用户名和密码添加到 config.json 文件(请参阅 snippet)。
    确保将文件添加到 .gitignore,这样它就不会出现在 repo 中。
  3. 使用node-ActiveDirectory首先以步骤1中的用户身份登录,然后询问已登录用户所属的组(请参阅snippet)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-07
    • 1970-01-01
    • 2017-10-09
    相关资源
    最近更新 更多