问题标签 [ldapjs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
38 浏览

active-directory - 受信任的 Active Directory 域控制器如何验证仅存在于受信任域中的凭据?

假设一个 Active Directory 域控制器smallapp.local信任另一个域bigenterprise.local

有一个用户 Alice,bigenterprise.local她可以smallapp.local使用 LDAP 绑定使用她的密码登录。由于smallapp.local没有她密码的哈希值,我认为它必须以某种方式转发到她的“家庭”域bigenterprise.local

这是怎么发生的?

有关更多背景信息,我ldapjs在这样的 Windows 服务器上使用节点库,并且身份验证成功,但我不明白 Windows 如何验证属于另一个域的密码。

0 投票
0 回答
506 浏览

active-directory - (Node.js + React)应用程序和 Microsoft Active Directory 之间的 SSO 身份验证流程

您好我正在尝试了解 SSO 如何适用于尝试使用基于 React 构建的应用程序并在 Node.js 中使用 Microsoft Active Directory 作为身份提供者的后端。

我在同一个应用程序和不同的身份提供者中使用 SAML 和 OIDC 等协议构建了 SSO,我希望也使用 Active Directory 为用户提供 SSO 功能。我无法理解的是流程。我在互联网上阅读了很多文章,这只会让我更加困惑。

在所有阅读之前,我所期待的是:

  1. 有一个 Active Directory 服务器具有一些身份验证 url,我的应用程序会将用户重定向到。
  2. 成功验证后,AD 服务器将使用一些令牌将用户发送回我的应用程序,我的后端将处理该令牌并稍后为用户建立本地会话。

但在任何一篇文章中,我都没有找到与此相关的任何内容。最重要的是,有大量可用的库,例如node-expose-sspi node-adal ldapjs activedirectoryjs和不可用的库,并且它们都有不同的方法来使 SSO 与节点一起工作。

例如采取node-expose-sspi

他们说的是,这小段代码就是我们所需要的。

在上面的代码中,我们没有指定使用哪个 AD 服务器或任何 auth url,包如何知道该怎么做?

另一个例子:activedirectory

好的,所以我们在这里有一个配置,但是这个库需要用户的用户名和密码。但是,如果应用程序要求用户提供用户名和密码,则这不是 SSO。或者是 Active Directory 中的某个用户有权在 AD 中列出我们的用户,如果是,那么节点服务器在拥有所有用户列表时如何知道要查找哪个用户?

也许我无法正确理解流程。有人可以帮我吗?谢谢 :)

0 投票
1 回答
332 浏览

node.js - 如何获取我已绑定为使用 ldapjs 的用户的个人资料

我正在使用ldapjs包。我正在使用此代码,它允许我使用readonly凭据绑定到 ldap 服务器并从中提取一个用户配置文件ou=people

现在,我将用户名和密码更改为受限用户的用户名和密码,我通过readonly凭据提取并执行相同的代码:

我可以绑定到ldap服务器,没问题。但是当我尝试获取自己的个人资料时,它返回给我 NoSuchObjectError: No such Object 错误

所以,问题是:我怎样openldap 才能获得我绑定的用户的个人资料?比如,我怎样才能发出whoami命令?

0 投票
0 回答
47 浏览

node.js - 如果不搜索,Ldapjs 不会返回错误

我正在尝试实现可以​​使用 openldap 登录的功能。为此,我正在使用 ldapjs 客户端 API - http://ldapjs.org/

以下是我的登录步骤

  1. 从 Web 表单 (ejs) 获取用户名和密码
  2. 使用 ldapjs 的搜索 API 查找用户:http: //ldapjs.org/client.html#search
  3. 如果找到用户,则使用绑定 API 进行身份验证: http: //ldapjs.org/client.html#bind

这工作正常,但如果在第 2 步搜索失败,即如果找不到用户,我还需要添加异常

如何在我知道搜索是否失败并且在 ldap 中不存在的地方添加异常?

下面是我的登录控制器功能

0 投票
1 回答
94 浏览

javascript - ldapjs 在子树上的高级搜索

我正在为我的项目使用 ldapjs 库和标准 LDAP 服务器,并且我正在尝试使用 search()。在我想返回结果之前,它可以正常工作。

所以我相信这更多的是我对 javascript 如何工作而不是库的误解,因为它工作正常 console.log

其次,我不确定我是否正确有效地使用了嵌套搜索()。

任何帮助,将不胜感激

更新1:如果我尝试按照建议使用:

在这里我无法访问电话阵列,或者没有任何东西被推入其中,所以我必须这样做:

但在这里我无法访问 entry2 :-(

现在失去理智

0 投票
0 回答
10 浏览

ldap - 有没有办法剖析 LDAP 消息以将用户名/密码传递给 API?

所以我目前的问题是:我正在使用一个网站,而不是使用它自己的数据库,它可以配置为与外部 LDAP 服务器通信,但我需要让它与一个与 Amazon Cognito 通信的 API 通信。此 API 只能接受用户名和密码,并返回 true 或 false。

我使用 ldapjs 创建了一个 LDAP 服务器以获取 LDAP 消息,但是当我得到它时,我找不到用户名/密码的存储位置。最重要的是,我需要做到这一点,以便当 API 返回 true 时,它​​可以让用户登录,目前使用 ldapjs 我的印象是,只要把res.end()它放好就应该返回成功并允许用户通过,但它没有. 我不知道那是因为服务器是空的,除了 root 用户还是什么。

做这样的事情真的可能吗?

0 投票
1 回答
39 浏览

javascript - 从另一个 Promise 调用 Promise 方法

希望你们每个人都做得很好。我遇到了一些问题。任何帮助将不胜感激。

我正在使用 ldapJS,我想从 LDAPJS 的 searchEntry 方法中调用另一个承诺。当我编写与下面相同的代码时。它抛出一个错误

错误:

请帮忙!如何从一个承诺中调用另一个承诺。虽然该方法是异步的,但为什么会显示此消息?我究竟做错了什么?

编辑

async按照建议添加关键字后@Punth。还修改了一些代码。我的新代码如下。

通过运行上面的代码,它不会向我显示任何内容。res.on('end' ....)之前调用res.on("searchEntry"....)因此数组adUsersList为空。

现在我的问题是如何resp.send最终的arraylist???

0 投票
0 回答
436 浏览

javascript - 如何解决 ldapjs 中的 ECONNRESET 错误?

我正在使用 LDAP JS。我ECONNRESET一次又一次地收到错误,我也尝试浏览它但没有成功。尝试添加reconnect: true限定符但没有成功。我的代码和错误如下。

我收到的错误如下:

0 投票
0 回答
28 浏览

node.js - ldapjs是否支持windows ldap浏览器

我在 windows 中使用 ldap 浏览器,它总是返回 no tree found: 。,但服务器端没有显示任何错误。LDAPResult 不是不支持windwos 吗?

0 投票
1 回答
25 浏览

node.js - 在 GCP 云功能中将 Nodejs 与 LDAP 连接时出错

在 GCP 云功能中使用 nodejs 连接到 LDAP 时出现以下错误

错误:TypeError:Object.createClient 所需的选项(对象)

索引.js

包.json