首页 > 解决方案 > 我可以使用类似于使用 php 的 ldapjs 创建匿名绑定吗?

问题描述

我正在将应用程序从 php 迁移到 nodejs,但在访问我们的 ldap 服务器时遇到问题。

php 代码使用匿名绑定到 ldap 服务器:

php片段:

    $ds= ldap_connect("ldap.example.com");  
    ldap_set_option($ds, LDAP_OPT_NETWORK_TIMEOUT, 2);
    $r= ldap_bind($ds);read-only access
    

我不确定 nodejs 中用于匿名绑定的语法。到目前为止,我的代码是:

Nodejs 片段:

    var assert = require('assert');
    var ldap = require('ldapjs');
    var client = ldap.createClient({
      url: 'ldap://ldap.example.com',
      reconnect: true
    });
    console.log("after createClient");

// b ind 代码放在这里 client.bind();

由于这是一个仅用于执行查找的通用 ldap 服务器,因此我不需要经过身份验证的绑定,只需要一个匿名绑定,但是绑定语句中的括号之间应该有什么?

标签: phpnode.jsldap

解决方案


根据RFC 4513(LDAP 身份验证方法和安全机制):

5.1.1。简单绑定的匿名认证机制

LDAP 客户端可以使用简单 Bind 方法的匿名身份验证机制,通过发送名称长度为零的 Bind 请求并指定包含零长度密码值的简单身份验证选项来显式建立匿名授权状态。

...这应该工作:

client.bind('', '', callback);

推荐阅读