SSRS 2016 Native Double-Hop Windows Аутентификация
Я и еще один администратор пытались устранить проблему с двойной аутентификацией на нашем новом сервере отчетов (где отчет выполняется как аутентифицированный пользователь, но не может делегировать источнику данных и возвращает ошибку аутентификации NT Authority\Anonymous) и Кажется, мы зашли в тупик. Вот немного о нашей настройке.
У нас установлен SSRS 2016 на одном сервере, а наш источник данных для отчетов - на другом сервере. Мы сделали следующие шаги, чтобы попытаться включить аутентификацию
- Установите групповую политику на сервере отчетов, чтобы включить делегирование учетных данных
- Убедитесь, что для SSRS и MSSQLsrv на сервере отчетов задан правильный SPN для учетной записи службы, на которой запущены обе службы:
- http / NetBIOS: 80 домен \ имя_службы
- http/FQDN.contoso.com:80 домен \ имя_службы
- mssqlsvc/FQDN.contoso.com:1433 домен \ имя_службы
- Включите делегирование Kerberos для учетной записи службы и убедитесь, что "учетная запись является конфиденциальной и не может быть делегирована". коробка не отмечена
- Переключил тег на <
RSWindowsNegotiate/
> в файле RSReportServer.config - Перезапустил Сервис
Мы все еще получаем сообщение об ошибке при попытке подключиться к источникам данных на сервере отчетов и даже проблемы с подключением к веб-странице через браузер. Как ни странно, мы попытались настроить сервер ссылок на сервере отчетов, настроив безопасность для запуска под пользователем, выполняющим команду, и смогли успешно выполнить двойной переход на сервере ссылок, но все же не из SSRS.
Должен ли источник данных работать под учетной записью службы или он может работать под локальной учетной записью службы для SQL? Нужна ли учетной записи службы делегированные права на подразделение, в котором существуют серверы? Какие еще предметы я могу пропустить?
2 ответа
Мы наконец решили проблему через 6+ месяцев.
После настройки имени участника-службы для учетной записи службы SSRS (вам нужны только http/NetBIOS:80 domain\servicename и http/FQDN.contoso.com:80 domain\servicename), вам необходимо настроить вкладку "Делегирование" в учетной записи службы SSRS. "Доверяйте этого пользователя для делегирования какой-либо службе" или в "Доверяйте этого пользователя для делегирования только указанным службам..." выберите службу MSSQLSRV из источника данных, который вы пытаетесь запросить.
Мы ошибочно полагали, что это делегирование предназначалось для определения того, каким службам на сервере отчетов необходимо разрешить пропуск билета Kerberos, а не каким серверам этой учетной записи службы было разрешено отправлять их от имени пользователя.
В результате выяснилось, что не имеет значения, с какой учетной записью службы работает SQL-сервер источника данных, если он имеет правильное имя участника-службы и делегирование OU не имеет ничего общего с этим типом делегирования Kerberos.
Ключевым моментом здесь является добавление раздела реестра для включения Kerberos для нового Chromium Edge/Chrome.
HKLM\SOFTWARE\Policies\Microsoft\Edge\AuthNegotiateDelegateAllowlist HKLM\SOFTWARE\Policies\Google\Chrome\AuthNegotiateDelegateAllowlist
значением этого ключа должно быть имя сервера SSRS.
Обратите внимание, что это должно быть на компьютере конечного пользователя, а не на компьютере сервера SSRS.
См. мой полный ответ, чтобы включить двойной переход для SSRS в другом потоке по адресу /questions/62715899/ssrs-oshibka-vhoda-v-sistemu-dlya-polzovatelya-nt-authorityanonymous-logon-polzo/65965863#65965863