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

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

我已经安装了iisnode在IIS下运行我的应用程序,并认为我将使用passport-windowsauth或node-activedirectory来获取组成员memebership。 但是,都需要用户/密码来validation用户。 我的用户已经通过身份validation ,我无法访问他的密码(我也不应该)。

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

以下是我到目前为止:

  1. 安装并configurationiisnode
  2. 为Web应用启用Windows身份validation
  3. 添加到web.config: <iisnode promoteServerVars="AUTH_USER,AUTH_TYPE" />
  4. 在我的index.js文件中,我可以使用console.log(req.headers['x-iisnode-auth_user']); 并获得正确的用户名 – 但我不知道如何从这里开始获得他/她的团体
  5. 在任何情况下,我都不想重新询问用户的密码

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

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