此命令有效并给我返回大量响应,其中包含有关用户 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节是我要传达的内容。
没有内置
ldapsearch
功能可以一步完成此操作。您所描述的是特定于应用程序的逻辑;它在各种使用 LDAP 的软件中非常普遍地实现,但是如果您尝试通过 CLI 执行相同的操作,则需要调用两次ldapsearch
,就像它需要通过 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 功能,但是,我不会依赖它。)