gpt4 book ai didi

python - 如何通过 OpenLdap 使用 Python ldap3 验证用户和密码?

转载 作者:行者123 更新时间:2023-12-04 01:14:24 25 4
gpt4 key购买 nike

对于一个 django 项目,我设计了一个不同的登录页面。这里的用户将通过 openldap 登录。
我可以使用用户的 uid id 访问用户的完整信息,但我找不到如何验证密码。
我是否需要散列用户的密码并将其与 ldap 上的密码进行比较?没有其他方法吗?谢谢

from ldap3 import Server, Connection, ALL, SUBTREE
from ldap3.core.exceptions import LDAPException, LDAPBindError, LDAPSocketOpenError
from ldap3.utils.conv import escape_filter_chars

ldap_server_uri=f"ldap://xxx:389"
ldap_base = 'dc=xx,dc=xx,dc=xx'

def ldap(uid,password):
try:
ldap_server = Server(ldap_server_uri, get_info=ALL)
ldap_connection = Connection(ldap_server, user = 'uid=admin,ou=xx,dc=xx,dc=xx',password='adminpassword')
if ldap_connection.bind() == True:
if ldap_connection.search(search_base=ldap_base, search_filter=f'(uid={uid})',search_scope = SUBTREE, attributes=['uid']) == True:
ent = ldap_connection.entries[0]
entry = {'uid': ent['uid']}
ldap_connection.unbind()
return entry
else:
return None
except LDAPSocketOpenError:
print('Unabled to connect to the LDAP server!')
return None

最佳答案

只是为了检查我使用的用户名和密码:

import ldap3
from ldap3.core.exceptions import LDAPException


def _ldap_login(username, password):
try:
with ldap3.Connection('enter_server', user=username, password=password) as conn:
print(conn.result["description"]) # "success" if bind is ok
return True
except LDAPException:
print('Unable to connect to LDAP server')
return False

_ldap_login("enter_username", "enter_password")
以下是 30 code examples用于展示如何使用 ldap3Tutorial: Introduction to ldap3 .

关于python - 如何通过 OpenLdap 使用 Python ldap3 验证用户和密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63808692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com