GSSAPI - функциональная совместимость Windows Active Directory - контекст принятия ошибки: неверный принципал в запросе

Мы пишем программное обеспечение для Windows и Linux и планируем использовать Windows Active Directory для аутентификации. Я борюсь с проблемами, описанными ниже, и буду признателен за любую помощь:

Доменное имя: CORP.COMPANY.COM

Тестовое программирование на одном компьютере с Linux: host1.corp.company.com

Тестовая программа взята из gss-sample из загруженных файлов krb5-1.11.3.

Сервер будет называться "gssapitest".

Основываясь на "Пошаговом руководстве по взаимодействию Kerberos 5(krb5 1.0) (от Microsoft),

Сначала создайте в AD пользователя "host1" для представления хоста host1.corp.company.com (машина linux).

Используйте ktpass для генерации ключевой таблицы (запускается из Windows): ktpass /princ host/host1.corp.company.com@CORP.COMPANY.COM /mapuser host1 /pass hostpassword /out file1.keytab

Теперь в AD создайте другого пользователя домена "gssapitest" для представления программы тестового сервера и сопоставьте пользователя аналогичным образом: ktpass /princ gssapitest/host1.corp.company.com@CORP.COMPANY.COM /mapuser gssapitest /pass gssapitestpassword /out file2.keytab

скопируйте file1.keytab и file2.keytab на компьютер Linux host1 и объедините их в /etc/krb5.keytab.

В Linux "ktutil" показывает содержимое /etc/krb5.keytab следующим образом:

слот КВНО Принципал 1 4 host/host1.corp.company.com@CORP.COMPANY.COM 2 5 gssapitest/host1.corp.company.com@CORP.COMPANY.COM

В Windows зарегистрируйте службу (используя "setspn") для программы сервера Linux, чтобы результат был похож (2 записи, одна с отображенным именем хоста, другая с фактическим именем хоста, для целей тестирования. Если только одна запись, нет Неважно, какой, результат был тот же)

Зарегистрированные ServicePrincipalNames для CN=xxxx,CN= Пользователи,DC= Корпорация,DC= Компания,DC=com: gssapitest/host1:2001 gssapitest/host1.corp.company.com:2001

Теперь я запускаю сервер так:

gss-server -port 2001 gssapitest

и запустить клиент из другого терминала следующим образом:

gss-client -port 2001 -пользователь xxxx -pass xxxxpassword host1.corp.company.com gssapitest "abcd"

Ошибка показывает на стороне сервера:

Контекст принятия ошибки GSS-API: Неуказанный сбой GSS. Незначительный код может предоставить больше информации контекст принятия ошибки GSS-API: Неправильный принципал в запросе

Что может быть вероятной причиной этого? Я хотел бы знать, если шаг, который я обрисовал в общих чертах, все необходим. и какие из них не нужны вообще или неверны.

(Примечание: я попытался войти в Linux с учетной записью локального пользователя и учетной записью домена в CORP.COMPANY.COM, результат показывает ту же ошибку. Также nslookup показывает правильный IP-адрес для сопоставления хоста для машины linux),

2 ответа

Решение

Я провел несколько тестовых прогонов, и в моем случае проблема, по-видимому, заключается в следующем: я внес изменения в своего сопоставленного пользователя, то есть в gssapitest (в разделе "Пользователи и компьютеры Active Directory" я снял флажок "Использовать типы шифрования DES для этой учетной записи"). на вкладке "Учетная запись" для этого пользователя) после запуска "ktpass" и объединения выходного файла с krb5.keytab на компьютере с Linux. Чтобы решить эту проблему, я снова проверил "Использовать типы шифрования DES для этой учетной записи" изнутри Active Directory, затем зашел на компьютер с Linux, запустил "kdestroy" перед запуском моего сервера и клиентских программ. Тогда это сработало. Если у кого-то есть подобные проблемы, вы можете рассмотреть эту возможную причину. Благодарю.

Я бы не стал указывать номер порта при использовании setspn; Я ожидаю, что gssapitest не gssapitest:2001. Кроме того, используйте gssapitest@host в качестве имени службы при вызове gss-client;

gss-client -user xxx -pass xxx -port 2001 hostname gssapitest@hostname "test message"

Вы можете использовать трассировку krb5, чтобы лучше вести журнал о происходящем:

export KRB5_TRACE=/tmp/trace.client # and run client

Похоже на сервер.

Другие вопросы по тегам