Сбой привязки Kerberos LDAP из-за неправильного имени хоста (аутентификация GSSAPI) - PullRequest
0 голосов
/ 01 июля 2019

Я имею дело с проблемой, когда я подключаюсь к предоставленному пользователем серверу LDAP, но иногда имя хоста недоступно для сервера. У меня либо есть IP-адрес, либо имя хоста в данный момент времени.

Я могу получить IP-адрес с заданного имени хоста, но в моем / etc / hosts нет сопоставления DNS, чтобы я мог получить имя хоста с IP-адреса

Я не смог найти какой-либо метод, позволяющий избежать использования имени хоста в процессе аутентификации и просто перейти к IP-адресу. Хотели проверить, возможно ли это?

Могу ли я дать Kerberos пропустить имя хоста и проходить аутентификацию только по IP-адресу?

Я попробовал большинство параметров, представленных в https://web.mit.edu/kerberos/krb5-1.12/doc/admin/conf_files/krb5_conf.html#domain-realm, но ничего не помогло мне пропустить проверку имени хоста.

context = LDAPConnectionPtr(new LDAPConnection(authSrv.getIP(), authSrv.getPort()));
context->saslInteractiveBind("GSSAPI", LDAP_SASL_INTERACTIVE, new Sasl());

Ниже приведена ошибка, с которой сталкивается

SASL/GSSAPI authentication started
Sasl::handleInteractions()
SASL Prompt: Please enter your authorization name
Caught LDAP Bind exception: Error -2: Local error

1 Ответ

1 голос
/ 01 июля 2019

Вы не можете использовать IP-адреса с Kerberos, это должны быть имена хостов. Более того, вы не делаете интерактивное связывание в скриптах, если человек не использует его постоянно. Используйте неинтерактивную привязку (следовательно, вы видите ошибку).

Это прекрасно работает в Python:

url = 'ldap://ad.company.com'
directory = ldap.initialize(url)
directory.set_option(ldap.OPT_PROTOCOL_VERSION, ldap.VERSION3)
...