问题标签 [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 投票
1 回答
874 浏览

javascript - 如何与公司 LDAP 服务器成功绑定

我正在为我的团队使用 MEAN 堆栈(MongoDB、Express、Angular 和 Node)创建的网站设置 LDAP 身份验证。但是,我的绑定不成功。

这项工作已在 Windows 10 上完成。我无法按照ldap.js 文档进行客户端集成,但发现了一个看起来很有希望的Github 问题。我相信我的问题在于绑定 API。我的理解是我需要在服务器中给它一些东西(我使用我的 mailNickname,虽然我也尝试过我的 userPrincipalName)和一些私人的东西(我的密码)。我使用了 AD Explorer,它允许我使用我的 userPrincipalName (first.last@company.com) 和密码连接到公司服务器。我能够使用 mailNickname 和 userPrincipalName 等多个属性在服务器中搜索自己,所以我不确定是什么导致了我的绑定错误。

今年夏天早些时候,我们在为 Hygieia 仪表板建立身份验证时使用了同一台服务器(使用 Active Directory),并且 AD Explorer 运行良好,因此我确信我拥有正确的服务器。

当我从命令行运行 npm start 时,我希望终端上的输出是四行,告诉我我的名字、我的 DN、搜索参考和“结束”。但是,我实际上得到的是

AssertionError [ERR_ASSERTION]:ifError 出现不需要的异常:80090308:>LdapErr:DSID-0C09042F,注释:AcceptSecurityContext 错误,数据 52e,>v2580

根据我发现的另一个页面,问题可能出在我的密码上,但我使用的正是我用来通过 ADExplorer 访问我的计算机和服务器的东西。有一个特殊字符,但我尝试同时使用 CHARACTER 和 \CHARACTER 均无济于事。

0 投票
0 回答
145 浏览

ldap - 使用 ldapjs 节点库在 LDAP 中控制和分页 ldap_search

我们正在寻找 ldap_search 参数来直接从特定页面获取结果,而不是一个接一个地依次加载页面。例如,通过跳过第 1 到第 9 页直接从第 10 页加载 LDAP 条目。

我们要求用户应该控制从 LDAP 服务器加载的页面。因此,我们正在寻找在分页模式下使用 ldap_search 时直接带来用户请求页面的参数。

我们正在寻找直接加载特定页面的参数,而不是从 LDAP 服务器加载所有页面以读取第 10 页或第 15 页。

0 投票
0 回答
131 浏览

javascript - NodeJS + ldapsj-client:保存 thumbnailPhoto 的问题

使用ldapsj-client模块,我正在尝试将 thumbnailPhoto 保存到文件中

console.log() 输出类似 '����JFIF ��C...'

我不知道如何将此二进制文件保存到文件中。当我尝试几种方法时,如此所述,不起作用。似乎来自 AD 的数据不是相同的“格式”。

我尝试将其转换为缓冲区,然后转换为 base64

但输出不是有效的 base64。

0 投票
0 回答
98 浏览

node.js - ldap 套接字选项 - ldapjs

我正在尝试使用 ldapjs 模块从我的 node.js 应用程序连接到 LDAP 服务器。我正在关注文档

我想更多地了解该socketPath选项以及何时必须使用它。我也想知道如何添加socketPathcreateClient选项。网上几乎没有这方面的信息。

我认为服务器在 UNIX 域套接字上。不确定,想测试一下。

另外,请帮助我如何将端口号构造为单个字符串的套接字路径。

0 投票
1 回答
1598 浏览

ldap - 使用 ldap 进行身份验证,无需用户密码

我正在尝试使用 ldap js 创建登录身份验证。我设置了所有凭据,一切正常,但问题是我可以只用他的 Uid(用户 id 又名用户名)绑定用户,它没有要求输入密码,我不知道如何解决这个问题必须要求提供 Uid 和 userPAssword 才能连接

我尝试使用包括 userPassword 在内的相同凭据进行连接,但它对我不起作用

ldapConfig.js 在这个文件中我设置了所有的 ldap 配置

这个文件中的 login.js 我试图连接到 ldap 服务器,它工作得很好,然后我想通过 uid 获取用户

我希望很清楚。谢谢

0 投票
1 回答
79 浏览

node.js - 我需要有关使用 ldapjs 连接到 Windows 服务器 DC 和更改用户密码的信息

他们是否有任何使用 ldapjs 连接到 Windows AD 的文档?我正在尝试使用此代码更改密码,但我无法弄清楚问题所在。绑定有效,但现在我得到了一个 npm ERR!代码生命周期...

`var change = new ldap.Change({ operation: 'add', modify: { userPassword: 'MyPassword1234' } });

client.modify('robert@rob.com', change, function(err) { assert.ifError(err); });`

0 投票
1 回答
67 浏览

ldap - LdapJS 服务器 exop 处理失败

我正在使用 Node.js 模块ldapjs版本 1.0.2 的 LDAP 服务器功能。我想处理 LDAP 1.3.6.1.4.1.4203.1.11.1 扩展操作(请参阅RFC 3062 = LDAP 密码修改)。

我的服务器配置...

调用命令ldappasswd(来自 debian 包 ldap-utils)有效,处理程序方法以正确的方式调用。

使用“old”作为旧密码和“new”使用新密码的命令中的数据ldappasswd ... uid=user -A -S会产生以下十六进制值:

0x80 标记属性的开头,0x81 标记旧密码的开头,0x82 标记新密码的开头。这个字节后面的值是长度,后面是信息本身。

问题:
在处理程序方法中,requestValue 是一个带有无效分隔符的字符串。

将字符串转换为缓冲区 ( Buffer.from(req.reuqestValue) 会导致:

分隔符字节 0x80、0x81 和 0x82 被转换为ef bf bd,因此解析信息失败,因为类型丢失。

知道如何从requestValue属性中获取信息值吗?

0 投票
0 回答
596 浏览

node.js - ldapjs 什么都不返回,但 ldapsearch 工作并且调试日志显示返回了`SearchEntry`

我有一个类似于Ldapsearch to ldapjs conversion的问题,除了我认为我已经scope正确使用了。

我的代码是这样的:

整个 ldapjs 调试日志可在https://gist.github.com/davidpodhola/b8c851ca3e7c4cf0c66d8981cd250028#file-log-txt-L25访问;最重要的部分是它包含像

我认为SearchEntry应该返回平均值。

ldapsearch使用like执行相同的搜索

正常工作。

问题是'end'事件被立即触发并且没有searchEntry被触发。

我想我忽略了一些非常简单的事情。请帮忙,谢谢!

0 投票
1 回答
133 浏览

node.js - 在 nodejs 上使用 ldapjs 重试连接到备份 ldap 服务器的逻辑

我有一个主要的 ldap 服务器 url,比如 urlA 和一个列表中的多个备份服务器 url。如果无法连接到主 ldap 服务器,则会按照它们在列表中出现的顺序尝试备份服务器。我正在使用 ldapjs createClient 函数来创建客户端。ldapjs.createClient({ url: urlA })

如何处理连接错误并在备份服务器上重试,直到我连接到其中一个?

0 投票
1 回答
645 浏览

javascript - 如何通过 ldapjs 修改 memberOf 字段

当我尝试在创建成员期间传递 JS dict 中的 memberOf 字段时,甚至在通过之后对其进行编辑时

它只是抛出一个错误

(节点:5136)UnhandledPromiseRejectionWarning:0000209A:SvcErr:DSID-031A107A,问题5003(WILL_NOT_PERFORM),数据0

那么,我如何更改 AD 中的成员资格?

作为一个附带问题,我在哪里可以找到使用 ldapjs 和好的文档的示例?官方网站有点乏善可陈