如何在python3中使用ldap3绑定(验证)用户

2024-02-10

我正在尝试将一些代码更新为 python3,使用ldap3 http://ldap3.readthedocs.org/en/latest/quicktour.html版本“0.9.7.4”。 (https://pypi.python.org/pypi/ldap3 https://pypi.python.org/pypi/ldap3)

以前,我使用 python-ldap 和 python2 来验证用户身份,如下所示:

import ldap
address = "ldap://HOST:389"
con = ldap.initialize(address)
base_dn = "ourDN=jjj"
con.protocol_version = ldap.VERSION3
search_filter = "(uid=USERNAME)"
result = con.search_s(base_dn, ldap.SCOPE_SUBTREE, search_filter, None)  
user_dn = result[0][0]  # get the user DN
con.simple_bind_s(user_dn, "PASSWORD")

这正确返回(97, [], 2, [])密码正确,并引发ldap.INVALID_CREDENTIALS尝试使用不正确的密码进行绑定。

Using ldap3在 python3 中我正在执行以下操作:

from ldap3 import Server, Connection, AUTH_SIMPLE, STRATEGY_SYNC, ALL
s = Server(HOST, port=389, get_info=ALL)
c = Connection(s, authentication=AUTH_SIMPLE, user=user_dn, password=PASSWORD, check_names=True, lazy=False, client_strategy=STRATEGY_SYNC, raise_exceptions=True)
c.open()
c.bind()

它引发了以下异常:

ldap3.core.exceptions.LDAPInvalidCredentialsResult: LDAPInvalidCredentialsResult - 49 - invalidCredentials - [{'dn': '', 'message': '', 'type': 'bindResponse', 'result': 0, 'saslCreds': 'None', 'description': 'success', 'referrals': None}]

我正在使用user_dnpython2 的 ldap 搜索返回的值,因为这似乎在 python2 中工作。

如何在 python3 中使用 ldap3 正确绑定它?

(我注意到一件奇怪的事情是 ldap3 的 LDAPInvalidCredentialsResult 包括'description': 'success'。我猜这只是意味着成功收到响应......)


我是ldap3的作者,请设置raise_exceptions=False在连接定义中并检查connection.result绑定后。你应该明白你的原因bind()不成功。

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

如何在python3中使用ldap3绑定(验证)用户 的相关文章

  • Python 中的 Lanczos 插值与 2D 图像

    我尝试重新缩放 2D 图像 灰度 图像大小为 256x256 所需输出为 224x224 像素值范围从 0 到 1300 我尝试了两种使用 Lanczos 插值来重新调整它们的方法 首先使用PIL图像 import numpy as np
  • 在 python 程序中合并第三方库的最佳实践是什么?

    下午好 我正在为我的工作编写一个中小型Python程序 该任务需要我使用 Excel 库xlwt and xlrd 以及一个用于查询 Oracle 数据库的库 称为CX Oracle 我正在通过版本控制系统 即CVS 开发该项目 我想知道围
  • Django 管理员在模型编辑时间歇性返回 404

    我们使用 Django Admin 来维护导出到我们的一些站点的一些数据 有时 当单击标准更改列表视图来获取模型编辑表单而不是路由到正确的页面时 我们会得到 Django 404 页面 模板 它是偶尔发生的 我们可以通过重新加载三次来重现它
  • 将 Matplotlib 误差线放置在不位于条形中心的位置

    我正在 Matplotlib 中生成带有错误栏的堆积条形图 不幸的是 某些层相对较小且数据多样 因此多个层的错误条可能重叠 从而使它们难以或无法读取 Example 有没有办法设置每个误差条的位置 即沿 x 轴移动它 以便重叠的线显示在彼此
  • Python(Selenium):如何通过登录重定向/组织登录登录网站

    我不是专业程序员 所以请原谅任何愚蠢的错误 我正在做一些研究 我正在尝试使用 Selenium 登录数据库来搜索大约 1000 个术语 我有两个问题 1 重定向到组织登录页面后如何使用 Selenium 登录 2 如何检索数据库 在我解决
  • 从字符串中删除识别的日期

    作为输入 我有几个包含不同格式日期的字符串 例如 彼得在16 45 我的生日是1990年7月8日 On 7 月 11 日星期六我会回家 I use dateutil parser parse识别字符串中的日期 在下一步中 我想从字符串中删除
  • 使用 on_bad_lines 将 pandas.read_csv 中的无效行写入文件

    我有一个 CSV 文件 我正在使用 Python 来解析该文件 我发现文件中的某些行具有不同的列数 001 Snow Jon 19801201 002 Crom Jake 19920103 003 Wise Frank 19880303 l
  • 根据列值突出显示数据框中的行?

    假设我有这样的数据框 col1 col2 col3 col4 0 A A 1 pass 2 1 A A 2 pass 4 2 A A 1 fail 4 3 A A 1 fail 5 4 A A 1 pass 3 5 A A 2 fail 2
  • 是否可以忽略一行的pyright检查?

    我需要忽略一行的pyright 检查 有什么特别的评论吗 def create slog group SLogGroup data Optional dict None SLog insert one SLog group group da
  • 以编程方式停止Python脚本的执行? [复制]

    这个问题在这里已经有答案了 是否可以使用命令在任意行停止执行 python 脚本 Like some code quit quit at this point some more code that s not executed sys e
  • OpenCV 无法从 MacBook Pro iSight 捕获

    几天后 我无法再从 opencv 应用程序内部打开我的 iSight 相机 cap cv2 VideoCapture 0 返回 并且cap isOpened 回报true 然而 cap grab 刚刚返回false 有任何想法吗 示例代码
  • 从 Flask 访问 Heroku 变量

    我已经使用以下命令在 Heroku 配置中设置了数据库变量 heroku config add server xxx xxx xxx xxx heroku config add user userName heroku config add
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • Pandas:merge_asof() 对多行求和/不重复

    我正在处理两个数据集 每个数据集具有不同的关联日期 我想合并它们 但因为日期不完全匹配 我相信merge asof 是最好的方法 然而 有两件事发生merge asof 不理想的 数字重复 数字丢失 以下代码是一个示例 df a pd Da
  • 解释 Python 中的数字范围

    在 Pylons Web 应用程序中 我需要获取一个字符串 例如 关于如何做到这一点有什么建议吗 我是 Python 新手 我还没有找到任何可以帮助解决此类问题的东西 该列表将是 1 2 3 45 46 48 49 50 51 77 使用
  • 有没有办法检测正在运行的代码是否正在上下文管理器内执行?

    正如标题所述 有没有办法做到这样的事情 def call back if called inside context print running in context else print called outside context 这将
  • 使用其构造函数初始化 OrderedDict 以便保留初始数据的顺序的正确方法?

    初始化有序字典 OD 以使其保留初始数据的顺序的正确方法是什么 from collections import OrderedDict Obviously wrong because regular dict loses order d O
  • 发送用户注册密码,django-allauth

    我在 django 应用程序上使用 django alluth 进行身份验证 注册 我需要创建一个自定义注册表单 其中只有一个字段 电子邮件 密码将在服务器上生成 这是我创建的表格 from django import forms from
  • 从列表指向字典变量

    假设你有一个清单 a 3 4 1 我想用这些信息来指向字典 b 3 4 1 现在 我需要的是一个常规 看到该值后 在 b 的位置内读写一个值 我不喜欢复制变量 我想直接改变变量b的内容 假设b是一个嵌套字典 你可以这样做 reduce di
  • 如何将输入读取为数字?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 Why are x and y下面的代码中使用字符串而不是整数 注意 在Python 2

随机推荐

  • JavaScript 中的内存泄漏 (Chrome)

    我每秒调用一个函数 50 次 它会执行一些昂贵的操作 因为它会在
  • 学习 QML 的资源? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 您能否建议学习 QML Qt 标记语言 的资源 这是一个老问题 但如果有人仍然想知道同样的问题 我会回答这个问题作为之前答案的更新 上面
  • 如何在活动的特定片段中禁用抽屉选项

    我有一个包含 5 个片段的活动 我在活动中使用抽屉布局作为抽屉 但我想仅在片段 2 中使用 启用 抽屉 并且我想在其余片段中禁用抽屉选项 任何人都可以帮助我如何做到这一点吗 将两个方法放入您的activity 一个禁用drawer以及再次启
  • Zend Framework:在我的表单中插入 DIV 和图像

    我需要在我的 zend 表单中插入这样的 html 代码 div class myClass1 style display none img src images myImage jpg div 上述 html 代码在 zend 框架中的代
  • Git 只推送一个文件

    我们有一个每个人都在推动的公共仓库 我们有时想要拉动和推送单个文件 而不需要拉动整个远程文件并推送整个合并的本地文件 我知道推送必须是快进 我们可以只快进单个文件吗 这可能吗 如果不是 为什么 故意设计的 首先 您滥用了 Git 术语 Ar
  • 在 ruby​​ 中使用选项哈希和默认值作为参数有什么好的干净方法

    假设我想要一个这样调用的方法 tiger create tiger num stripes gt 12 max speed gt 43 2 tiger num stripes will be 12 其中一些选项具有默认值 tiger cre
  • 大表情符号在 Chrome 和移动浏览器上被截断

    我正在尝试在 HTML 或 CSS 中使用 unicode 显示一些大表情符号 然而 在Chrome中 一些表情符号的下半部分被切断 而另一些表情符号则显示得很好 它也无法在 Android 上的移动 Firefox 中呈现 工作表情符号示
  • 在 ng 构建期间修改 javascript 脚本标签的 src 位置

    我的 index html 文件在 ng 构建后包含以下文件 例如 如何使 Angular cli 在 src 文件夹位置添加 app src app vendor bundle js 我需
  • 自定义 Toast 取消不起作用

    我看到很多关于取消吐司的问题 他们都没有工作 我有一个定制的吐司 其代码除了一行之外都与http developer android com guide topics ui notifiers toasts html CustomToast
  • Android,如何取消闹钟? AlarmManager.cancel 不起作用

    我有一个应用程序 您可以在其中创建 5 个警报 其中要创建的警报显示在 ListView 中 并假设当 listView 的元素播放警报时 但应从列表视图中删除该项目 但警报会被删除以始终达到预定时间声音 我已经查看了很多有关如何删除警报的
  • 如何更改 GCC 的默认搜索目录 crti.o?

    我想指定 GCC 的搜索目录startfile and endfile crt1 o crti o and crtn o 通过 B在命令行上 GCC 驱动程序可以工作 但不方便 如何修改规格 文件 lib gcc x86 64 unknow
  • Sails v1.0:在 mongo 中使用自定义主键时出错

    我正在尝试 SailsJS v1 0 0 32 的测试版 但在配置自定义 ID 时遇到了一些问题 下面你会找到我当前的配置 The modelExample js module exports attributes id type stri
  • iOS 8.1 下 UIPopoverController 出现之前出现不可预测的延迟

    SDK 8 1 在 iOS 8 1 下运行时会出现此问题 但在 iOS 7 下运行时不会出现此问题 它仅适用于 iPad 该问题在模拟器和硬件设备上都会出现 下面的代码演示了一个视图控制器 其中包含一个具有 1 行的 UITableView
  • 未解析的外部符号 C++ 与汇编器

    我正在尝试在汇编器中创建函数以在 C 中使用它 我的问题是我无法编译我的代码 我正在使用 Visual studio 2012 我在构建定制中添加了 masm 所以我不知道出了什么问题 C include
  • Visual Studio 2019 错误 - 无法加载文件或程序集或其依赖项之一

    我在运行我的项目时遇到一些问题 当我尝试运行时 出现以下错误 FileNotFoundException 无法加载文件或程序集 Dapper Version 2 0 0 0 Culture neutral PublicKeyToken nu
  • 删除c中数组的重复名称

    这就是我要做的 c 应该可以删除具有指定名称的动物 如果存在更多同名动物 则应删除所有同名动物 这是我的代码 void deleteAnimalByName char animalName int nrOfAnimals ANIMAL an
  • 执行代码块一定次数

    所以我想执行一些代码N次 N 是文本框的值 例如 12 我不知道如何实现这一点 但我的脑海里浮现出这样的事情 For Each i as 1 in textbox1 text some code Next or dim num1 as in
  • asciidoc宏

    我使用 asciidoc 来渲染文本 我很难理解宏 我的目标是进行简单的宏处理 就像在 LaTeX 中一样 我想写两个宏 FOO应替换为 bar MYTEXT xyz 应替换为 This is my text xyz 也许用不同的方式传递参
  • 如何从 Android 版 Google+ API 获取当前位置?

    我需要从 Android 版 Google API 获取当前位置 我已经在 Google API 控制台中完成了所有操作 并将我的应用程序与带有 SHA1 和包名称的客户端 ID 链接起来 我成功获取了有关用户名 个人资料图片 封面图片 电
  • 如何在python3中使用ldap3绑定(验证)用户

    我正在尝试将一些代码更新为 python3 使用ldap3 http ldap3 readthedocs org en latest quicktour html版本 0 9 7 4 https pypi python org pypi l