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
также отлично работает
Обычный поиск в Google ничего интересного не обнаружил. (Есть обычные комментарии относительно временного сдвига и использования userPrincipalName
vs имя компонента для -D
, но об этом следует позаботиться при использовании kinit
.)
Любые идеи?
Я обнаружил, что указание «-O maxssf = 0» в командной строке ldapsearch необходимо для правильной работы поиска GSSAPI AD. Следующая команда работает для меня для поиска в глобальном каталоге AD через SSL-соединение:
ldapsearch -LLL -O maxssf=0 -Y GSSAPI -H ldaps://ad.realm.local:3269 -b "dc=realm,dc=local" '(sAMAccountName=userid)'
Кроме того, чтобы проверка подлинности Kerberos работала с ldapsearch, DNS должен быть правильно настроен для обратного поиска IP. В противном случае вы получите ошибку «Невозможно определить область для числового адреса хоста». При необходимости вы можете поместить IP-адрес и имя хоста вашего сервера AD в файл hosts, чтобы он заработал.
Из 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