Проверка подлинности Kerberos с использованием mod_auth_kerb для ActiveDirectory и нескольких областей

#active-directory #apache2 #kerberos

#active-directory #apache2 #kerberos

Вопрос:

Наша среда выглядит следующим образом:

  • у нас есть лес серверов ActiveDirectory, которые доверяют друг другу.
  • у нас есть Linux Apache с mod_auth_kerb, который аутентифицируется на «главном» сервере AD.

Для некоторых комбинаций клиентов и доменов мы получаем следующее сообщение об ошибке:

 krb5_get_init_creds_password() failed: KRB5 error code 68
  

Поиск в Google выдает эту ошибку:

 is being returned by Active Directory because your users are
attempting to obtain a Kerberos TGT for a realm that
is not hosted on the server to which they are authenticating.
  

Есть ли способ обойти это?

Ответ №1:

Вы пропустили добавление всех необходимых областей / KDC в ваш krb5.conf. GSSAPI не может получить тикет для неизвестной области. Приведенный выше пример отлично работает с gssapi в нашей лесной среде.

Чтобы упростить настройку, вы можете настроить свой krb5.conf на запрос DNS для поиска KDC. Это то, что делает Windows.

Комментарии:

1. Но у нас есть только основной AD в нашей конфигурации krb5, а многие другие области работают «из коробки». Я не могу понять, в чем разница между ними. Кроме того, поиск DNS для меня в новинку — есть ли где-нибудь хорошее введение?

2. Предоставьте общий доступ к вашему krb5.conf и ко всем именам доменов в лесу. Вы можете запутать их. Обратитесь к этой справочной странице для dns_lookup_kdc . Вот как вы можете выполнить поиск KDC для DNS вручную: host -t SRV _kerberos._tcp.DnsDomainName . Смотрите ссылку Microsoft .