ldapsearch -H <URL> -b <BASE> -s sub -D <USER> -x -w <PW>
工作正常
kinit <USER>@<REALM>
ldapsearch -H <URL> -b <BASE> -s sub
失败:
text: 000004DC: LdapErr: DSID-0C0906E8, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v1db1
kinit Administrator@<REALM>
ldapsearch -H <URL> -b <BASE> -s sub
也很好用
常规的谷歌搜索并没有发现任何有趣的东西。(通常会有关于时间偏差和使用userPrincipalName
vs 组件名称的评论-D
,但在使用时应该注意这一点kinit
。)
有任何想法吗?
答案1
我发现,为了使 GSSAPI AD 搜索正常工作,必须在 ldapsearch 命令行上指定“-O maxssf=0”。以下命令适用于我通过 SSL 连接搜索 AD 全局目录:
ldapsearch -LLL -O maxssf=0 -Y GSSAPI -H ldaps://ad.realm.local:3269 -b "dc=realm,dc=local" '(sAMAccountName=userid)'
此外,为了使 Kerberos 身份验证能够与 ldapsearch 配合使用,必须正确配置 DNS 以进行反向 IP 查找。否则,您将收到“无法确定数字主机地址的领域”错误。如有必要,您可以将 AD 服务器的 IP 和主机名放入 hosts 文件中以使其正常工作。
答案2
来自ldapsearch(1)
手册页:
-Y mech
Specify the SASL mechanism to be used for authentication. If it's not specified, the program will choose the best mechanism the server knows.
例如:
ldapsearch -Y GSSAPI -b "dc=example,dc=com" uid=user
假设你的/etc/gssapi_mech.conf
样子如下:
# grep -v ^# /etc/gssapi_mech.conf
libgssapi_krb5.so.2 mechglue_internal_krb5_init