Kerberos Double Hop - PullRequest
       13

Kerberos Double Hop

0 голосов
/ 26 апреля 2018

У нас есть печально известная проблема двойного прыжка Kerberos.

Это совершенно новый домен, перенесенный из другого провайдера, где ранее работали олицетворение и делегирование. Мы обновили ОС и до последней версии SQL-сервера (2017).

Приложение WPF (с использованием кредитов домена) -> Веб-служба (приложение WCF на IIS 10) -> SQL 2017 (именованный экземпляр)

Веб-служба работает под учетной записью домена. В веб-сервисе зарегистрирован spn, анонимная аутентификация отключена, как и аутентификация форм, ASP.NET Impersonation и аутентификация Windows включены. Поставщики: «Согласовать и NTLM», «Режим Kernal» отключен, «Использовать учетные данные пула приложений» включен. SPN создано:

HTTP/<url of web service> <AppPool Creds> 

Мы можем войти в веб-службу через браузер на удаленном компьютере, ввести учетные данные домена и получить ожидаемый ответ (отображается веб-страница). Журнал IIS показывает кредиты пользователей домена, как и ожидалось.

Сервер SQL является именованным экземпляром, работающим с правами доступа к домену. Создано SPN:

MSSQLSvc/<fqdn>:<Instance> <SQL Domain Creds>

MSSQLSvc/<sql server netbios>:<Instance> <SQL Domain Creds>

MSSQLSvc/<fqdn>:<port> <SQL Domain Creds>

MSSQLSvc/<sql server netbios>:<port> <SQL Domain Creds>

Учетная запись пользователя пула приложений IIS в AD настроена для ограниченного делегирования на сервер SQL как для порта, так и для именованного экземпляра.

При входе с помощью программного обеспечения в веб-службу (WPF вызывает службу WCF без вызова базы данных) отображается нормальный ответ.

При входе через программное обеспечение в веб-сервис с помощью вызова базы данных, в SQL Server Profiler отображается Anonymous Logon. При включенном ведении журнала Kerberos на IIS появляется следующая ошибка:

Error Code: 0xd KDC_ERR_BADOPTION

Extended Error: 0xc0000225 KLIN(0)

Server Name: MSSQLSvc/<sql server fqdn>:49942

Target Name: MSSQLSvc/<sql server fqdn>:49942@<domain.com>

Мы также пробовали неограниченное делегирование, но получили тот же результат.

SETSPN -X не показывает дубликатов.

Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 27 апреля 2018

Когда все остальное терпит неудачу, и вы буквально потратили дни и дни, работая над проблемой и читая каждую статью в Интернете:

REBOOT

Да. Это было исправление. Перезагрузка сервера IIS, который был сервером, делегирующим разрешения, исправила проблему.

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

С наилучшими пожеланиями.

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