【问题标题】:Active Directory and Express/NodeActive Directory 和 Express/Node
【发布时间】:2018-10-25 15:52:47
【问题描述】:

我想将 Active Directory 与 REST API Express 后端一起使用:用户将在客户端填写用户名和登录表单,并通过后端使用其 Active Directory 凭据进行身份验证。然后,根据他们的用户组,他们会看到某些信息。我已经尝试了节点包passport-windowsauth,但我无法进行身份验证,可能是因为我不知道 bindDN 或 bindCredentials 是什么。我也尝试过node-sspi,并且运气更好,但问题是它只是服务器端的,据我所知,我无法创建一个允许用户的表单从客户端进行身份验证。我在 IIS 上托管此站点,并使用 iisnode 作为后端。如何使用 Node/Express 服务器端和客户端登录表单(或者换句话说,不是 .NET 应用程序)实现此 Active Directory 身份验证?

【问题讨论】:

  • bindDN = 专有名称ldap.com/ldap-dns-and-rdns,bindCredentials = 密码
  • 我也可以向你推荐 ldapjs 模块:ldapjs.org/client.html
  • @marcel.js 如何根据表单中的用户名找到 bindDN?
  • 一个例子是这样的:'uid=john.doe,ou=People,dc=example,dc=com'。看看这个:ldap.com/ldap-dns-and-rdns
  • @marcel.js 我已经阅读了您链接到的文章,并且之前也尝试过 ldapjs。我输入了应该与 binddn 一起使用的信息,但它没有进行身份验证。

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


【解决方案1】:

Active Directory (AD) 身份验证是通过使用 AD 工程师提供的凭据(而不是用户表单中的凭据)绑定到 Active Directory 来完成的。绑定后,会搜索 AD 以查找匹配的凭据(来自用户表单)。

基本上,您需要与您的广告工程师讨论您应该使用什么。

那么你需要一个/login/用户表单发送到的路由,该路由完成登录(AD绑定,认证)并返回给客户端。

更简单的解决方法是使用登录表单中输入的凭据绑定到 AD - 成功绑定意味着用户已登录。我想再次与您的 AD 工程师讨论他们希望如何完成此操作。过去我遇到过问题,绑定后需要很长时间才能对用户进行身份验证,因此我们将其用作解决方法。

您可能会问您的 AD 是否已经有单点登录选项 - 也许他们使用 Shiboleth 或类似的东西。

【讨论】:

    【解决方案2】:

    你应该试试那个包:https://www.npmjs.com/package/ad 我不确定它是否能满足你的要求,但它在节点/express 后端使用 Active Directory 非常容易。

    【讨论】:

    • 库2年没更新了。我不建议使用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多