LDAP:如何通过系统 ID/密码绑定,然后通过用户 ID/密码进行授权?

LDAP:如何通过系统 ID/密码绑定,然后通过用户 ID/密码进行授权?

此命令有效,并返回大量有关用户 ID 为 XXXXXXX 的用户的各种信息。

ldapsearch -D 'uid=<system ID>,ou=system,ou=users,dc=<domain>,dc=com' -x -H '<ldap server address>' -w '<system ID password> -b 'ou=users,dc=<domain>,dc=com' 'uid=XXXXXXX'

然而,我被告知要先绑定系统 ID,然后“重新绑定”用户的 UID/密码来检查该用户是否可以被授权。

使用 ldapsearch 命令可以实现这一点吗?也许可以只使用用户的 ID/密码进行绑定,而不是使用系统 ID/密码进行初始绑定?

编辑:我认为部分2.4.3.3这就是我想要表达的。

答案1

没有内置ldapsearch功能可以一步完成此操作。您描述的是特定于应用程序的逻辑;它在各种使用 LDAP 的软件中非常常见,但需要 ldapsearch如果您尝试通过 CLI 执行相同操作,则需要调用,就像它需要通过 API 创建两个 LDAP 会话一样。

如果你已经知道用户的完整 LDAP DN,那么是的,您可以在参数中使用它-D

但是,如果你只知道 uid,但不知道整个 DN,那么你将要需要先搜索它(就像您现在所做的那样),然后从搜索输出中手动复制“dn”并ldapsearch再次调用,并将用户的 DN 指定为-D


(一个例外:如果 LDAP 服务器运行 Active Directory,那么它将接受“user@domain”UPN 以及“DOMAIN\user”代替 DN,因此您可以使用-D 'XXXXXXX@<domain>.com'。但这不是一般的 LDAP 功能,我不会依赖它。)

相关内容