无法从 Linux 主机使用 Kerberos 查询 AD

无法从 Linux 主机使用 Kerberos 查询 AD
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

也很好用

常规的谷歌搜索并没有发现任何有趣的东西。(通常会有关于时间偏差和使用userPrincipalNamevs 组件名称的评论-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

相关内容