Путаница с Kerberos, делегированием и SPN - PullRequest
1 голос
/ 15 марта 2010

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

Так что я думаю, что, возможно, одна из конечных точек (клиент или сервер) запрещена для делегирования. Однако я не аутентифицируюсь против SPN. Только один пользователь домена против другого пользователя домена. В качестве имени участника-службы для InitializeSecurityContext() я передаю «someuser@mydomain.lan» (это учетная запись пользователя, под которой запущено приложение сервера). Как я понимаю, у пользователей домена делегирование включено по умолчанию. В любом случае, я попросил администратора проверить, и флажок «учетная запись является конфиденциальной и не может быть делегирован».

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

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

1 Ответ

2 голосов
/ 18 марта 2010

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

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

Ваше описание сценария NETWORK SERVICE является точным. Доверие к делегированию по умолчанию отключено, но NETWORK SERVICE может иметь разрешение на самостоятельную регистрацию имени участника-службы (я думаю, что это может быть определено групповой политикой).

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...