从Node中的Active Directory获取经过身份验证的用户组

Tra*_*Guy 3 iis active-directory windows-authentication node.js

我们被要求将我们的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. 在任何情况下,我都不想重新询问用户他/她的密码

Tra*_*Guy 7

好吧,似乎没有人有兴趣看这个问题:).我假设IIS + Node.js + Active Directory是一个边缘情况.以下是我最终解决这个问题的方法:

  1. 将特殊用户添加到只能从IIS计算机登录的Active Directory(奖励:限制该用户的IP /进程/访问权限).
  2. 将AD详细信息,用户名和密码添加到config.json文件中(请参阅代码段).
    确保您添加文件,.gitignore以便它不会以repo结尾.
  3. 使用node-ActiveDirectory首先以步骤1中的用户身份登录,然后请求登录用户的组(请参阅代码段).