问题标签 [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 回答
181 浏览

node.js - LdapJS exop 请求超时

我有一个 LdapJS 服务器,它实现标准操作和扩展操作来检查运行状况:

然后我写了一个简单的客户端脚本来 ping 健康检查服务:

问题是exop服务器正确接收了 (我可以在其回调中看到日志),但客户端总是记录:ERROR: request timeout (client interrupt)

为什么请求没有正确终止?

编辑

我为 exop 写了一个 mocha 测试,它可以工作。似乎问题与运行状况检查脚本中的独立调用有关。

0 投票
1 回答
1620 浏览

react-native - 使用 React Native 和 Firebase 自定义令牌在 LDAP 服务器上进行身份验证

我正在尝试通过 LDAP 服务器对我的用户(来自我的 RN 应用程序)进行身份验证(我已经在这里找到了一个尝试进行身份验证的用户,并且它有效!)。每次收到用户的凭据(用户名和密码)时,我都可以使用 Firebase 创建一个自定义令牌,并将其保存在 Firebase 实时数据库中。

主要问题是我不知道如何将我的应用程序与 LDAP 服务器连接,我调查并发现我必须安装openLDAPldapjs 之类的东西,但我不明白如何进行身份验证我的猜测是:

  1. 用户登录我的 RN 应用程序
  2. RN 应用程序将凭据发送到 Firebase
  3. Firebase 创建自定义令牌(使用 Firebase 函数生成自定义令牌)
  4. Firebase 将自定义令牌返回给 RN 应用程序
  5. RN 应用程序将令牌发送到 LDAP 服务器(服务器有预先确定的用户和密码用于测试)
  6. LDAP 服务器验证令牌,因此,身份验证
  7. LDAP 服务器向 RN 应用程序返回属性或“未找到”
  8. RN App 授予/拒绝对应用程序的访问权限

任何帮助或建议都会受到好评,谢谢 :) 抱歉我的英语不好。

0 投票
2 回答
284 浏览

javascript - 如何翻译 Powershell -> JavaScript for LDAP (dn -> canonicalName) 转换功能

我发现了一个很棒的函数,它采用有效的 Active Directory LDAP distinctName (DN) 字符串并将其转换为用 PowerShell 编写的格式正确的 canonicalName(不是 CN)字符串。

因为我在 Node.js 中使用 ldapjs 并且需要检索 AD 对象的 canonicalName 属性(使用任何 Node/AD/LDAP 库本机都无法使用该属性,因为所讨论的属性是“构造的”),所以最好我将此函数转换为纯 JavaScript。

我怎么能刺破它?可以在此处找到引用此代码(在下面插入)的原始帖子: https ://gallery.technet.microsoft.com/scriptcenter/Get-CanonicalName-Convert-a2aa82e5

示例输入值:

预期结果:

(提示:结果 JS 函数应该能够处理深度 OU 嵌套的对象!另外我猜测 RegEx 表达式可能有助于很好地处理其中的某些部分,但没有最微弱的线索如何实现它。)

提前向任何可以帮助解决我的问题的人表示最热烈的感谢!

0 投票
1 回答
727 浏览

node.js - Active Directory/Ldap 获取 NodeJS 中特定属性的 DataType 或 Syntax

我能够查询活动目录/ldap 以获取用户信息以及自定义属性。但是,我想知道返回的每个属性的基础 DataType/attributeSyntax。另一个问题是,如果它不包含任何值,查询将不会返回属性本身。因此,如果可以获取属性及其各自的 DataType,那么它为我提供了在准备最终输出对象时基于 DataType 设置默认值的灵活性。

例如: 1. 我查询 AD 以查找具有, , ,foo属性的用户givenNamemailmyCustom1myCustom2

但可能不包含myCustom2,因为它不包含 AD 中的值。

  1. 获取属性的语法givenName, mail, myCustom1,myCustom2
  1. 使用上面我可以映射第一个结果并将最终对象准备为
0 投票
0 回答
362 浏览

active-directory - PassportJS 错误:当绑定间歇性未完成时,不能对连接执行其他操作

TLDR:passportjspassport-ldapauth 是否存在竞争条件问题?

我在 nodejs 应用程序中使用该koa-passport库和passport-ldapauth策略,旨在针对 AD(Active Directory)对用户进行身份验证。哇,那是一口。

这是我passport.authenticate从 LDAP 中返回的错误:

BusyError: 00002024: LdapErr: DSID-0C060810, comment: No other operations may be performed on the connection while a bind is outstanding.

这里的问题很明显,有一个未完成的绑定,必须先关闭它,然后我才能进行另一个绑定以验证下一个用户。 然而,解决方案不是,它可能与 LDAP 相关,也可能与 passportjs 相关。我在这里希望为后者找到解决方案。(在等待对此#multiprocessing的响应时,将探索 LDAP 的配置选项)

这是我的代码:

在我们开始之前,要知道ldapConfigs在应用程序的整个生命周期中所有内容都保持不变,这意味着我在每次查找时都使用相同的 BINDDN 和 PASSWORD

因此,如标题中所述,此错误间歇性地发生。因此,代码本身通常可以正常工作,并且我能够在大约 95% 的时间内对用户进行身份验证,并且如果它INVALID_AUTHENTICATION在密码正确时抛出错误,那就是当我BusyError在日志中获取 the 时。

当我输入虚假的用户名/密码时,这个问题更加突出并且更容易重现,理想情况下应该提示我INVALID_USERNAME_PASSWORD错误,我大约有 75% 的时间。我得到的另外 25% INVALID_AUTHENTICATION

我什至尝试使用ldapsearchtmux. 我使用相同的 binddn 同时在大约 20 个窗格中运行了一个调用,它们都恢复得很好(我应该尝试用更多来运行它吗?100 个?1000 个?)。这就是让我相信问题不在于 LDAP 或 AD 的原因,而更多的是 passportjs。

我得出的结论是,passportJS 可能存在种族条件问题,但我在互联网上找不到任何文献。有没有人遇到过这样的事情?我相信绑定可能没有关闭,因为有时passport.authenticate可能会在调用回调之前返回?这甚至可能吗?它与我如何使用 async/await 进行编码有关吗?

我的后备方案可能是完全抛弃passportjs,只尝试使用ldapjs。任何想法,意见,建议,讨论将不胜感激

如果需要,这是完整的堆栈跟踪:

0 投票
1 回答
104 浏览

javascript - ldapjs-client V0.1.0绑定方法在正常工作几天后抛出UnwillingToPerformError

我在使用 fastify V1.1.1 的 ldapjs-client V0.10.0上遇到了一个奇怪的问题

下面的代码片段可以正常工作几天。突然抛出UnwillingToPerformError。如果我们再次重新启动服务器,它工作正常,几天后错误相同。

0 投票
1 回答
2519 浏览

node.js - Nodejs ldapjs activedirectory - 在不知道当前密码的情况下重置密码

在Nodejs中如何在不知道当前密码的情况下重置活动目录密码?

我目前使用以下 2 个库。

https://www.npmjs.com/package/activedirectory

http://ldapjs.org/index.html

如果我知道当前密码,我有以下代码可以完美运行。但如果我不知道当前密码,我也想重置密码。

我试图通过传递一个虚拟的当前密码来使用上面的代码,但得到了以下错误。

0 投票
1 回答
579 浏览

javascript - NodeJS - LDAPJS 错误:events.js:160 throw er; // 未处理的“错误”事件

我是nodejs的新手,在执行我的节点文件时遇到了这个问题。我在 centos 7 上。当我尝试使用 LDAPJS 连接到 LDAP 时。当 LDAP 可用但它无法连接到服务器时它工作正常,它显示这个奇怪的错误:

events.js:160 抛出 er;// 未处理的“错误”事件 ^

错误:在 TCPConnectWrap.afterConnect [as oncomplete] (net.js: 1099:14)

我想捕捉这个错误并显示正确的错误消息。

我试过用这个:

但这并没有帮助。

我的 package.json 文件是:

这是 index.js 文件:

0 投票
1 回答
832 浏览

javascript - 在 Angular 客户端应用程序上渲染图像字节流

我有一个代理来自 Active Directory LDAP 服务器的请求的 NodeJS / Express RESTful API。我这样做是因为 LDAP 查询往往很慢。我使用 RESTful API 间歇性地缓存和刷新数据。我最近尝试添加缩略图。在研究中,我使用 ldapjs 的库似乎正在将本机 ldap 字节数组转换为字符串。

这看起来像的例子:

\ufffd\ufffd\ufffd\ufffd\u0000\u0010JFIF\u0000\u0001\u0000\u0001\u0000x\u0000x\u0000\u0000\ufffd\ufffd\u0000\u001fLEAD Technologies Inc. V1.01\u0000000ufffd\ufffd\u \ufffd\u0000\u0005\u0005\u0005\b\

由于这个事实,图像无法在 Angular 客户端应用程序上正确呈现。所以根据我的研究,这里有一些纠正这个问题的尝试:

html绑定:

控制器:

控制器的替代版本:

另一个替代版本的控制器:

我希望在角度页面上有一个渲染图像,但我得到的只是未渲染的占位符。

这是我正在使用的库的版本

  • 角 - 8.0.3
  • NodeJS - 10.15.0
  • ldapjs - 1.0.2

我确定我错过了一些东西,我只是不确定它是什么。任何援助将不胜感激。

0 投票
1 回答
618 浏览

active-directory - 使用 Javascript 将 objectGuid 转换为 UUID 字符串

我一直在寻找一种将 ObjectGuid 从 Active Directory 中转换出来的方法,它是一种特殊类型,可以转换为字符串,这看起来很奇怪,使用诸如 ldapjs 之类的库,或者使用 ping federate 将其添加为声明。这方面的一个例子如下:

下面是一个来自 ldapjs 的输出示例。当您将其添加为声明时,ping 联邦也会出现同样的情况。

但是,这等效于有效的 UUID。

我想要做的是将这个奇怪的值转换为正确的 UUID。我已经搜索并测试了一些不同的帖子和网站,但我还没有找到有效的解决方案。

以下是我研究的一些:

如果有人对此有解决方案,将不胜感激。