此命令有效,并返回大量有关用户 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 功能,我不会依赖它。)