[英]LDAP authentication issue in python using ldap library
我正在尝试连接到LDAP服务器进行身份验证。 我们的LDAP服务器使用SSL,但是我们不使用任何SSL证书。
以下是我的代码:
我有两个由系统管理员提供的网址。 内容如下:
url1 = "ldap://100.x.x.x:389"
url2 = "ldaps://10.x.x.x:636"
我的第一个问题是我应该使用哪个网址? ldap://和ldaps://有什么区别
LDAP身份验证代码如下,我尝试同时使用(url1和url2):
conn = ldap.initialize(url)
ldap.TLS_AVAIL
1
conn.simple_bind_s(
'CN={0},ou=users,DC=compnay,DC=com'.format(myemail),
mypassword
)
conn.simple_bind(
'CN={0},ou=users,DC=compnay,DC=com'.format(myemail),
mypassword
)
如果我将第一个URL(url1)与simple_bind_s一起使用,则以下是错误:
INVALID_CREDENTIALS:{'信息':u'80090308:LdapErr:DSID-0C0903D9,评论:AcceptSecurityContext错误,数据52e,v2580,'desc':u'无效的凭据'}
但是当我与simple_bind一起使用时,即使密码或用户名错误,它也会为我提供int。
simple_bind_s和simple_bind之间有什么区别。 如何使用simple_bind进行身份验证?
之间的差simple_bind()
和simple_bind_s()
是simple_bind()
是异步的 , simple_bind_s()
是同步的 。
同步版本使您的程序等待其完成,然后返回结果,异步版本使程序立即返回ID代码,并在后台继续工作,然后,您稍后使用ID代码调用result()
以获取结果。
因此,您对simple_bind()
调用可能确实失败了; 您只是不知道,因为您尚未获取结果。
大多数ldap函数具有异步和同步版本,例如add()
和add_s()
, delete()
和delete_s()
, search()
和search_s()
等。某些ldap操作(尤其是搜索)可能需要很长时间才能完成完整,因此如果您不想让程序长时间停顿,则可以使用异步版本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.