LDAP 问题,ldap_bind 无效 dn 语法

2023-11-22

我知道我的错误非常简单,但我试图找到问题所在,但我没有看到它,也许你可以帮助我......

我正在尝试使用 php 创建一个函数,这样我就可以连接到 LDAP 并找到所需的信息。

我的 php 代码如下:

$ldapconfig['host'] = "127.0.0.1";
$ldapconfig['port'] = NULL;
$ldapconfig['basedn'] = "dc=example,dc=com";
$ldapconfig['binddn'] = "user";
$ldapconfig['bindpw'] = "password";


function ldap_authenticate($user, $pass) {
global $ldapconfig;
ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7); 
if ($user != "" && $pass != "") {
    $ds=ldap_connect($ldapconfig['host'],$ldapconfig['port']);
    if(!ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)) {
        return NULL;
    }
    ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);
    ldap_bind( $ds, $ldapconfig['binddn'], $ldapconfig['bindpw']);
    $r = ldap_search( $ds, $ldapconfig['basedn'], 'sAMAccountName=' . $user);
    if ($r) {
        $result = ldap_get_entries( $ds, $r);
        if ($result[0]) {
            if (ldap_bind( $ds, $result[0]['dn'], $pass) ) {
                return $result[0]['mail'][0];
            }
        }
    }
}
return NULL;

当我尝试运行代码时,出现以下错误: ldap_bind 第 xxxx 行的 DN 语法无效 该行如下:

ldap_bind( $ds, $ldapconfig['binddn'], $ldapconfig['bindpw']);

如错误中所述,您的绑定 DN 格式错误。 DN 代表对象的完整路径 - 所以在你的情况下应该是这样的(看起来你在 AD 上?)

“cn=用户名,ou=域用户,dc=示例,dc=com”

根据您的 LDAP 风格(Active Directory、OpenLDAP 等),您可以might能够使用 uid(因此只需“用户名”)进行绑定,但最好假设您始终需要完整的 DN。

您可以使用 LDAP 工具,例如Apache 目录工作室帮助构建查询并找出对象的 DN。或者有ldp.exe也可以(前提是它是AD),但是directory studio 更容易使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LDAP 问题,ldap_bind 无效 dn 语法 的相关文章

随机推荐

  • Java 比较数组

    我有两个未知类型的数组 有没有办法检查元素是否相同 public static boolean equals Object a Object b if a instanceof int return Arrays equals int a
  • python 可以读取电子表格中单元格的值吗?

    All python 可以读取电子表格中单元格的值吗 从绘图 GIS 分析的角度来看 最简单的示例是在给定 shapefile GIS 数据集 上运行缓冲区 邻近 工具的脚本 对于缓冲区距离参数 脚本将指向电子表格单元格中的值 首选 lib
  • 如何在我的应用程序中显示谷歌语音识别设置?

    我正在开发一个 Android 应用程序 其中实现了语音识别和 TTS 因此 我正在考虑启动 Google 语音识别和 TTS 的设置屏幕 以允许用户从应用程序内更改设置 我已经使用以下代码成功实现了 TTS 设置 intent new I
  • 按优先级从 MSMQ 获取消息

    我通过设置优先级在 MSMQ 中发送消息 使用 C 我可以先从 MSMQ 获取具有高优先级的消息吗 就像我们进入优先队列一样 还有一件事 假设有三个优先级 0 高 1 中等 2 低 队列中的序列是 2001122221111100 现在 如
  • Spring-Security:升级到 Spring-Security 4.1 后,登录时用户名发送为空

    我正在开发一个基于 Spring MVC 的应用程序 其中我们使用 Spring Security 进行登录 授权 我们之前使用的是3 2 5版本 升级为4 1 1 但升级后 登录机制被破坏 因为发送的用户名为空 我不知道出了什么问题 你能
  • 放置新的以推迟到不同的构造函数

    这安全吗 我在实际实现中没有使用任何虚拟函数 但我很想相信即使我使用了 它仍然是安全的 class Foo Foo initialize things Foo int new this Foo 当您输入左大括号时Foo int 构造函数 所
  • 什么是 GIT_WORK_TREE,为什么我从来不需要设置这个 ENV var,为什么现在呢?

    我在 Ubuntu Linux 下使用 Git 来同步和部署我的项目 我的本地 Linux 工作机上有一个存储库 服务器上有两个存储库 一个是裸存储库 另一个是已部署的应用程序 它总是工作正常 但现在我为我的其他网站创建了另一个存储库 我收
  • 在 WebBrowser 控件中设置输入标记的值

    我正在尝试帮助用户使用自定义登录他们的帐户WebBrowser控制 我正在尝试使用以下命令将输入 标签的值设置为玩家用户名WebBrowser s InvokeScript功能 但是 我当前的解决方案只是渲染一个空白的白页 我当前的代码如下
  • 重写mysql select以减少时间并将tmp写入磁盘

    我有一个 mysql 查询 需要几分钟的时间 这不是很好 因为它用于创建网页 使用三个表 海报数据包含有关各个海报的信息 poster categories 列出了所有类别 电影 艺术等 而 poster prodcat 则列出了 post
  • 如何修复 org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl@779de014 已关闭问题

    我正在尝试使用 Hibernate 5 创建或更新用户 它抛出以下异常 org hibernate resource jdbc internal LogicalConnectionManagedImpl 779de014 已关闭 我正在使用
  • C++11“不可移动”类型[重复]

    这个问题在这里已经有答案了 可能的重复 为什么 C 11 删除的函数参与重载决策 我对以下 C 11 代码有两个问题 include
  • Java 小程序和网页上的文本输入控件之间的桥梁

    我一直在使用一个Java小程序 它是一个可以帮助仅使用鼠标进行编写的小程序 就我而言 我尝试将其合并到我的网站项目中 如下所示 当用户单击页面上的任何输入元素 文本框 文本区域 时 此 JAVA 小程序会加载到网页本身上 在下面看到的 JA
  • Asp.Net MVC 4 API:在 IE8 中下载 docx 失败

    我将文档存储在数据库中 并有一个用于下载文档的 api 下载docx和xlsx在IE9 Chrome和FF中工作正常 但在真正的IE8中失败 IE8模式下的IE 9也可以 我收到的错误消息如下 无法从idler2 下载393 无法打开此 I
  • Python算法计算csv中特定单词的出现次数

    我刚刚开始学习Python 我很好奇什么是计算 CSV 文件中特定单词出现次数的有效方法 而不是简单地使用 for 循环逐行遍历并读取 更具体地说 假设我有一个 CSV 文件 其中包含两列 姓名 和 成绩 包含数百万条记录 如何计算 Gra
  • 无法获取透明DialogFragment

    我有一个看起来像这样的对话框片段 AlertDialog ad builder create Drawable d new ColorDrawable Color BLACK d setAlpha 130 ad getWindow setB
  • 在 Android 教程应用程序上使图像全屏显示

    使用 Hello World Gridview 教程示例 我尝试使图像在单击时全屏显示 而不是显示图像在数组中的位置 由于我对Android不熟悉 而且这是我第一次尝试用它进行开发 所以我很茫然 我对 Java 很熟悉 并且我尝试过这样做
  • Oracle SQL:从带有嵌套表的表中选择

    我想知道如何从具有类型列的表中创建 select 语句 该列的类型定义为 create or replace TYPE MYCOL as table of MYTYPE create or replace TYPE MYTYPE as OB
  • css-sprite 是一种好技术吗? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 css sprite 是个好技术吗 我在以下位置阅读了有关其优点的信息http spriteme org 我还在 stackoverflow 中看到了很多关于 css sprites 的问
  • 将 Intellij-Idea UI 表单导出到 Eclipse

    我有一个 Java 项目要做 所以我决定使用Inltellij Idea中的Designer来帮助我快速完成表单和窗口 并有更多的时间来开发应用程序 我面临的问题是老师使用 Eclipse 所以我认为在开发结束时我可以导出我的 Intell
  • LDAP 问题,ldap_bind 无效 dn 语法

    我知道我的错误非常简单 但我试图找到问题所在 但我没有看到它 也许你可以帮助我 我正在尝试使用 php 创建一个函数 这样我就可以连接到 LDAP 并找到所需的信息 我的 php 代码如下 ldapconfig host 127 0 0 1