繁体   English   中英

使用ldap库的python中的LDAP身份验证问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM