如何正确验证 LDAP?
How to authenticate LDAP properly?
我正在处理一个必须使用 LDAP 身份验证的项目。在添加到我的 Flask 应用程序之前,在 Stack Overflow 上找到 link 之后,我正在使用位于 ldap.forumsys.com 的服务器进行练习。
如果我在 python 代码中 运行 ldapsearch bash 命令,我会得到一大堆用户名(Tesla 等...)及其相关数据(有虽然没有密码哈希)。我能够提取 usernames/user-data,如下所示:
username = request.form['username']
password = request.form['password']
cmd = "ldapsearch -h ldap.forumsys.com -D cn=read-only-admin,dc=example,dc=com -w" + os.environ['LDAP_PWD'] + " -b dc=example,dc=com"
ldap_query = os.popen(cmd).read()
user_str = re.sub("\n", "", ldap_query)
users = user_str.split("#")
user_data = ""
for line in users:
if username in line:
user_data = line
break
但后来我意识到我的LDAP和数据库不一样。我希望找到可用于验证用户登录信息的密码哈希值。
然后我尝试了 python-ldap3 模块:
>>> conn = Connection(server, 'uid=tesla,dc=example,dc=com', 'password', auto_bind=True)
>>> conn.bound
True
>>> conn.entries
[]
不幸的是,在调用 conn.entries 后,我似乎无法在列表中返回任何数据。
我可以看到 ldap3 模块绑定了连接。 ldapsearch 命令是否也绑定?如果没有密码哈希,我应该如何验证用户在客户端输入的 username/password ?
非常感谢大家
如果声明...
conn.bound == True
然后连接已通过 LDAP 验证
我正在处理一个必须使用 LDAP 身份验证的项目。在添加到我的 Flask 应用程序之前,在 Stack Overflow 上找到 link 之后,我正在使用位于 ldap.forumsys.com 的服务器进行练习。
如果我在 python 代码中 运行 ldapsearch bash 命令,我会得到一大堆用户名(Tesla 等...)及其相关数据(有虽然没有密码哈希)。我能够提取 usernames/user-data,如下所示:
username = request.form['username']
password = request.form['password']
cmd = "ldapsearch -h ldap.forumsys.com -D cn=read-only-admin,dc=example,dc=com -w" + os.environ['LDAP_PWD'] + " -b dc=example,dc=com"
ldap_query = os.popen(cmd).read()
user_str = re.sub("\n", "", ldap_query)
users = user_str.split("#")
user_data = ""
for line in users:
if username in line:
user_data = line
break
但后来我意识到我的LDAP和数据库不一样。我希望找到可用于验证用户登录信息的密码哈希值。
然后我尝试了 python-ldap3 模块:
>>> conn = Connection(server, 'uid=tesla,dc=example,dc=com', 'password', auto_bind=True)
>>> conn.bound
True
>>> conn.entries
[]
不幸的是,在调用 conn.entries 后,我似乎无法在列表中返回任何数据。
我可以看到 ldap3 模块绑定了连接。 ldapsearch 命令是否也绑定?如果没有密码哈希,我应该如何验证用户在客户端输入的 username/password ?
非常感谢大家
如果声明...
conn.bound == True
然后连接已通过 LDAP 验证