源码:

#!/usr/bin/python

# -*- coding: utf-8 -*-

# filename: ldap_test.py

import ldap,ldap.sasl

import socket

'''

实现LDAP用户登录验证SAAL

'''

ldap.sasl._trace_level=0

ldap.set_option(ldap.OPT_REFERRALS,0)

ipaddr = "demo"

ldapPath = "ldap://" + socket.gethostbyname(ipaddr) + ":389"

method = "DIGEST-MD5"

username = 'test1'.encode('utf-8')

password = '0'

sasl_dict = {ldap.sasl.CB_AUTHNAME:username, ldap.sasl.CB_PASS:password}

try:

l = ldap.initialize(ldapPath,trace_level=0)

l.protocol_version = 3

sasl_auth = ldap.sasl.sasl(sasl_dict, method)

print 20*'*',sasl_auth.mech,20*'*'

print sasl_auth

l.sasl_interactive_bind_s('', sasl_auth)

#print 'OPT_X_SASL_USERNAME',repr(l.get_option(ldap.OPT_X_SASL_USERNAME))

except ldap.INVALID_CREDENTIALS, e:

print e

finally:

l.unbind()

在linux下运行,提示:

{'info': "80090303: LdapErr: DSID-0C0904B3, comment: The digest-uri does not match any LDAP SPN's registered for this server., data 0, v1772", 'desc': 'Invalid credentials'}

simple-bind没有这个问题

python sasl_python用sasl的方式连接ldap提示相关推荐

  1. 使用python模拟Simple方式连接ldap

    #!/usr/bin/python # -*- coding: utf-8 -*- # filename: ldap_test.py import ldap''' 实现LDAP用户登录验证,首先获取用 ...

  2. python处理teradata数据库_Python脚本连接Teradata数据库

    Connect Teradata from python Base on Linux Ubuntu with python2.7 参考网络搜索结果,具体出处不记得了,结合自身实践总结.以下操作为Lin ...

  3. python邮件发送哪个好_最全总结!聊聊 Python 发送邮件的几种方式

    1. 前言 邮件,作为最正式规范的沟通方式,在日常办公过程中经常被用到 我们都知道 Python内置了对 SMTP 的支持,可以发送纯文本.富文本.HTML 等格式的邮件 本文将聊聊利用 Python ...

  4. Oracle通过SSL方式连接AD服务器

    因公司业务需要,希望能将HR上的部门公司以及员工信息同步到AD服务器,以为其他应用系统做统一的域认证管理,因为用Java来实现比较麻烦,还要弄个web容器啥的,因此就决定直接在HR的数据库上写过程来同 ...

  5. python运行程序-用Python执行程序的4种方式,编程必备

    在编写代码中,经常会遇到在 Python程序中打开外部程序的需求,那么在Python里如何打开外部程序呢?今天我们来介绍四种不同的方式,供大家参考收藏. 使用 os.system() os.syste ...

  6. python连数据库课程设计_python 连接操作 各类数据库

    摘要: 用Python写脚本也有一段时间了,经常操作数据库(MySQL),现在就整理下对各类数据库的操作,如后面有新的参数会补进来,慢慢完善. 一,python 操作 MySQL:详情见:这里 mac ...

  7. Python字符串拼接的十种方式

    转载自BLOG:Python字符串拼接的十种方式 原作者:Python碎片 Python字符串拼接的十种方式 字符串是所有编程语言中都有的基本变量的类型,程序员基本每天都在和字符串打交道. 本篇文章我 ...

  8. python程序设计语言的执行方式_编程语言用Python执行程序的4种方式

    在编写代码中,经常会遇到在 Python程序中打开外部程序的需求,那么在Python里如何打开外部程序呢?今天我们来介绍四种不同的方式,供大家参考收藏. 使用 os.system() os.syste ...

  9. 最全总结!聊聊 Python 发送邮件的几种方式

    1. 前言 邮件,作为最正式规范的沟通方式,在日常办公过程中经常被用到 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例 ...

最新文章

  1. 获取手机当前显示的ViewController
  2. 用 Go 语言实现 Raft 选主
  3. SAP销项税多科目配置
  4. 类模板static成员的使用
  5. InstallShield LaunchAppAndWait运行另一个程序并等待该程序终止。
  6. 王道考研 计算机网络17 IP数据报 最大传送单元MTU IP地址 IPv4 子网划分 ARP协议 ICMP协议 移动IP
  7. php开发神器,PHP开发神器vim
  8. python 函数参数多个逗号不报错_python笔记7-多线程threading之函数式
  9. 干货来袭!几行代码实现pdf添加水印和去除水印
  10. 《数字电子技术基础》5.1 触发器概述、5.2 SR锁存器
  11. 【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(运行/调试篇)
  12. HTML+CSS学习笔记
  13. 第1章 Pandas基础
  14. 华硕笔记本进bios按哪个键 华硕手提电脑怎么进bios设置
  15. python制作简单网页_怎么用python简单的制作一个网页
  16. 前端JavaScript-面向对象
  17. 大数据工程师和数据分析师有什么区别
  18. 抖音三农号创作者具体应该如何做?
  19. VS2008+VP5开发环境配置
  20. Office Web App

热门文章

  1. 感受野-Receptive Field的理解
  2. 【论文阅读】Stroke Controllable Fast Style Transfer with Adaptive Receptive Fields
  3. flink报错:The types of the interface org.apache.flink.util.OutputTag could not be inferred.
  4. oracle sqlplus 退格,Oraclesqlplus中方向键、退格键的使用
  5. Windows双开或者多开微信的简单做法
  6. ysdk应用宝渠道接入问题记录
  7. Python Pandas 列数据筛选方法汇总
  8. dede mysql x_mysql 插入数据时中文变x87xE7xA7x91xE7x82这种?
  9. phpwind9.0 read.php 修改,phpwind9.0模板制作教程——制作论坛风格
  10. Linux下用脚本命令打开文档、表格、PPT