gpt4 book ai didi

node.js - 连接到 LDAP 并绑定(bind)到更多 "general"DN 来搜索用户需要什么?

转载 作者:太空宇宙 更新时间:2023-11-04 00:35:49 25 4
gpt4 key购买 nike

我遇到了一个以前从未真正遇到过的问题,即从 NodeJS 应用程序连接到 LDAP。到目前为止,我什至不知道有 LDAP 这样的东西,所以我一直在边走边学。这就是为什么这可能是一个愚蠢的问题,但我还没有找到任何简洁的答案。

要求是:“使用登录屏幕中提供的用户和密码从应用程序登录到 LDAP”。客户端有一个 LDAP,并希望使用它来验证我们应用程序的用户,因此在登录屏幕中输入的用户和密码用于尝试登录到 LDAP。

我知道连接到 LDAP 需要三件事:

  • 服务器的 URL
  • 用户(有通行证)
  • 以及要绑定(bind)的 DN

我目前正在使用 ldapjs 从 NodeJS 进行连接。据我所知,我需要用来验证用户身份的操作 it's the bind operation 。为此,我需要创建服务器(已经完成,没有问题)并传递 dn 和密码。我假设 DN 包括用户。类似的东西

CN=myuser,OU=MyOrg,OU=Users,DN=MyLdapServer,DN=com

这有效...只要用户属于同一个“分支”。也就是说,如果它们全部都在 OU=MyOrg 中。这就是为什么我能够在 bind() 中“硬编码”DN,并且只需通过替换来更改用户。

问题是,并非所有这些都属于同一个“分支”(我不知道其技术名称)。比如说,我有一些在 OU=MyOrg 中,有一些在 OU=MyOtherOrg...

所以我一开始就不知道用户的组织是什么,所以我无法让他绑定(bind)到 LDAP 客户端,因为我缺少 DN。

客户端仅向我们提供了一个示例,来自另一个使用 ASP.NET 和 ADO.NET 的应用程序,使用 SQL 命令之类的东西来获取 LDAP 信息。事实是,与 DN 等效的是一种更通用的DN。类似的东西

ldap://MyLdapServer.com/CN=[the_user_provided]

这显然是有效的。如果我尝试做同样的事情,使用更“通用”的 DN 路由(我假设它是 LDAP 树上更高的 Node ),提供其中一个用户的密码,我会收到身份验证错误。

那么,怎么会呢?我缺少什么?仅使用“CN=[用户名]”DN 将用户登录到 LDAP 需要什么?这是只有 ADO.NET 才能使用的东西吗?

谢谢,如果这个问题太笼统,抱歉。

最佳答案

根据我发表的评论:

要与 Active Directory 绑定(bind),您不需要知道用户的完整 DN。 this page in the docs 上有所有不同可用方法的列表。 。因此,您可以使用 user@domain.com 作为示例。或者在大多数情况下只需提供的用户名即可。

关于node.js - 连接到 LDAP 并绑定(bind)到更多 "general"DN 来搜索用户需要什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39108545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com