python 中使用 ldap 库的 LDAP 身份验证问题
LDAP authentication issue in python using ldap library
我正在尝试连接到 LDAP 服务器进行身份验证。我们的 LDAP 服务器使用 SSL,但我们不使用任何 SSL 证书。
以下是我的代码:
我有两个 url 由系统管理员提供。有如下:
url1 = "ldap://100.x.x.x:389"
url2 = "ldaps://10.x.x.x:636"
我的第一个问题是 url 我应该使用哪个? 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: {'info': u'80090308: LdapErr: DSID-0C0903D9, comment: AcceptSecurityContext error, data 52e, v2580', 'desc': u'Invalid credentials'}
但是当我使用 simple_bind 时,即使密码或用户名错误,它也会给我 int。
simple_bind_s 和 simple_bind 有什么区别。如何使用 simple_bind 进行身份验证?
simple_bind()
和simple_bind_s()
的区别在于simple_bind()
是异步而simple_bind_s()
是同步.
同步版本让你的程序等到它完成然后 returns 结果,异步版本 returns 一个 id 代码立即并继续在后台工作,然后你稍后使用 ID 代码调用 result()
以获取结果。
所以您对 simple_bind()
的调用可能确实失败了;你只是不知道,因为你还没有获取结果。
大部分ldap函数都有异步和同步版本,例如add()
和add_s()
、delete()
和delete_s()
、search()
和search_s()
] 等。某些 ldap 操作(尤其是搜索)可能需要很长时间才能完成,因此如果您不希望程序有长时间停顿,则可以使用异步版本。
我正在尝试连接到 LDAP 服务器进行身份验证。我们的 LDAP 服务器使用 SSL,但我们不使用任何 SSL 证书。
以下是我的代码:
我有两个 url 由系统管理员提供。有如下:
url1 = "ldap://100.x.x.x:389"
url2 = "ldaps://10.x.x.x:636"
我的第一个问题是 url 我应该使用哪个? 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: {'info': u'80090308: LdapErr: DSID-0C0903D9, comment: AcceptSecurityContext error, data 52e, v2580', 'desc': u'Invalid credentials'}
但是当我使用 simple_bind 时,即使密码或用户名错误,它也会给我 int。
simple_bind_s 和 simple_bind 有什么区别。如何使用 simple_bind 进行身份验证?
simple_bind()
和simple_bind_s()
的区别在于simple_bind()
是异步而simple_bind_s()
是同步.
同步版本让你的程序等到它完成然后 returns 结果,异步版本 returns 一个 id 代码立即并继续在后台工作,然后你稍后使用 ID 代码调用 result()
以获取结果。
所以您对 simple_bind()
的调用可能确实失败了;你只是不知道,因为你还没有获取结果。
大部分ldap函数都有异步和同步版本,例如add()
和add_s()
、delete()
和delete_s()
、search()
和search_s()
] 等。某些 ldap 操作(尤其是搜索)可能需要很长时间才能完成,因此如果您不希望程序有长时间停顿,则可以使用异步版本。