Путаница в отношении Kerberos, делегирования и SPN

Я пытаюсь написать тестовое приложение, которое выполняет делегирование Kerberos. Я написал весь код, и, похоже, он работает (я в порядке аутентификации), но в результирующем контексте безопасности не установлен флаг ISC_REQ_DELEGATE.

Поэтому я думаю, что, возможно, одну из конечных точек (клиент или сервер) запрещено делегировать. Однако я не проверяю подлинность по SPN. Только один пользователь домена против другого пользователя домена. В качестве SPN для InitializeSecurityContext() я передаю [email protected] (это учетная запись пользователя, под которой запущено серверное приложение). Насколько я понимаю, у пользователей домена по умолчанию включено делегирование. В любом случае, я попросил администратора проверить, а флажок «учетная запись является конфиденциальной и не может быть делегирован» отключен.

Я знаю, что если бы мой сервер работал как СЕТЕВАЯ СЛУЖБА, и я использовал SPN для подключения к нему, тогда мне понадобится учетная запись компьютера в AD, чтобы установить флажок «Доверять компьютеру для делегирования» (по умолчанию отключен), но ... это не так, правда? Либо это?

Также - когда установлен флажок в учетной записи компьютера, изменения вступают в силу немедленно, или я должен перезагрузить серверный компьютер или подождать некоторое время?


person Vilx-    schedule 15.03.2010    source источник
comment
Вилкс также разместил это на ServerFault. Связано здесь с пользой для других. :)   -  person Chiramisu    schedule 10.11.2012


Ответы (1)


Согласно это ISC_REQ_DELEGATE игнорируется, только если вы используете ограниченное делегирование. Я почти уверен, что ограниченное делегирование произойдет, вы должны явно указать, какие службы учетной записи разрешено делегировать в Active Directory (вкладка делегирования для пользователя или компьютера в оснастке AD).

Я не уверен в правилах использования UPN и SPN. Вы пробовали включить ведение журнала событий Kerberos и просматривать журнал событий? Сообщения часто загадочны, но обычно их можно расшифровать.

Ваше описание сценария NETWORK SERVICE является точным. Доверие для делегирования по умолчанию отключено, но СЕТЕВАЯ СЛУЖБА может иметь разрешение на самостоятельную регистрацию SPN (я думаю, это может быть определено групповой политикой).

Когда вы устанавливаете этот флажок, изменение вступает в силу немедленно, но, возможно, оно должно распространиться на все контроллеры домена в домене (я обычно тестирую в тестовом домене с одним контроллером домена). Итак, перезапуска вашего сервисного приложения достаточно, вам не нужно перезагружаться.

Билеты Curb находятся на клиентском компьютере. У них есть срок годности, и их можно очистить вручную с помощью klist или kerbtray.

person Alex Peck    schedule 18.03.2010