powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SSRS в режиме встроенной безопасности иногда NT AUTHORITY\АНОНИМНЫЙ ВХОД
6 сообщений из 6, страница 1 из 1
SSRS в режиме встроенной безопасности иногда NT AUTHORITY\АНОНИМНЫЙ ВХОД
    #40043315
TJ001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конфигурация следующая:
SSRS и СУБД установлены на одной машине (SQL2017)
Запуск служб SSRS и ядра производятся от имени доменной учетки (для каждой службы разные)
SPN заданы и для учетки сиквела и для учетки SSRS
Включено полное делегирование для учетных записей и для самого сервера
В общем, всё, как описано инструкции

Делегирование работает без проблем, если подключаться через SSMS в режиме "Проверка подлинности Windows"
Связанные сервера доступны. (с включенным параметром "Устанавливать с использованием текущего контекста безопасности")

Если смотреть текущие конекты с помощью
этого запроса
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
SELECT    
sys.dm_exec_connections.session_id AS SPID,

		sys.dm_exec_connections.connect_time AS Connect_Time,

		hostname,
		
		program_name,

		DB_NAME(dbid) AS DatabaseName,

		loginame AS LoginName,

		sys.dm_exec_connections.auth_scheme as Auth_Scheme,

		sys.dm_exec_connections.net_transport AS Net_Transport,

		sys.dm_exec_connections.protocol_type as Protocol_Type,

		sys.dm_exec_connections.client_net_address as Client_Net_Address,

		sys.dm_exec_connections.local_net_address as Local_Net_Address,

		sys.dm_exec_connections.local_tcp_port as Local_TCP_Port

FROM sys.sysprocesses

Right Outer JOIN sys.dm_exec_connections

ON sys.sysprocesses.spid=sys.dm_exec_connections.session_id



то показывает, что мой экземпляр SSMS подключен по Kerberos, а сам Report Server по NTLM, потому что он на той же машине, тут все ок

то, что мои права наследуются, можно убедиться и с помощью BULK INSERT, обратившись к сетевой шаре и в активных сеансах видно, что обращение идет от моего имени

теперь о чудесах (речь идет об отчетах, в которых включен параметр датасета "Войти в источник данных: Как пользователь, просматривающий отчет"):

1. запускаю IE, открываю отчет, в котором идет обращение к линку (со включенным параметром "с использованием текущего контекста") и все отрабатывает (проверяю на удаленном сервере - обращение от моего имени)

2. открываю другой отчет, где выполняется BULK INSERT из шары, тоже все отрабатывает (FileMonitor показывает что выполняется имперсонация и на машине, к которой идет обращение, в активных сеансах мое имя)

Проходит какое-то количество времени. Скажем, пару часов. Судя по всему, истекает время билета Kerberos (предположительно).
Открываю отчет 1. Говорит NT AUTHORITY\АНОНИМНЫЙ ВХОД
Открываю отчет 2. Говорит Ошибка операционной системы 5(доступ запрещен).

Ну ладно, билет кончился, но почему он (SSRS) не запрашивает новый?

Из этой ситуации есть 2 пути:

Первый: Подождать еще несколько часов (сколько точно не засекал, но часов через 5). Перезапустить IE, обратиться к отчету № 1 и вновь всё работает.

Второй:. Открыть настройки датасета, внести исправление в строку подключения, любое - точку с запятой поставить в конце (если ее не было) или удалить её (если она была). Нажимаем "Проверить соединение", затем ОК и повторно открываем отчет. О боги! Он опять работает. Пока не истечет тот самый таймаут, после которого история повторяется. Но это же бред!

И еще один момент:
Если "на холодную" запустить отчет № 2, то "Ошибка операционной системы 5(доступ запрещен).", а если предварительно запустить отчет № 1 (в котором связанный сервер используется), то и второй (в котором BULK INSERT) начинает работать (отмечу, что BULK INSERT обращается к шаре на отдельном сервере, не имеющем отношения к SQL)

Не понимаю в чем дело, месяц уже мучаюсь с этим.

Спасайте, господа!
...
Рейтинг: 0 / 0
SSRS в режиме встроенной безопасности иногда NT AUTHORITY\АНОНИМНЫЙ ВХОД
    #40043371
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TJ001,

в хроме не пробовали воспроизвести проблему?
заметил, что chrome лучше работает с отчетами, чем IE
...
Рейтинг: 0 / 0
SSRS в режиме встроенной безопасности иногда NT AUTHORITY\АНОНИМНЫЙ ВХОД
    #40043387
TJ001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad,

пробовал хром и оперу (для разнообразия)
если только начинает работать в одном из браузеров, то и в других тоже работает
когда наступает час Х, то отваливается во всех
перезапуск браузера, очитка кэша, режим инкогнито (чтобы принудительно заставить запросить аутентификацию): одна фигня - анонимус!

однако эта манипуляция со строкой подключения срабатывает железно.
если просто нажать "Проверить подключение", без изменения строки, то оно успешно проходит проверку, но отчеты обзываются анонимусом
а если поменять Data Source=NetBIOS на Data Source=FQDN или наоборот, в зависимости от того, что было указано перед изменением, или добавить/удалить точку с запятой, то сразу всё начинает работать во всех браузерах

мистика какая-то

может это баг какой-то?
...
Рейтинг: 0 / 0
SSRS в режиме встроенной безопасности иногда NT AUTHORITY\АНОНИМНЫЙ ВХОД
    #40043390
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я бы еще попробовал в датасорсах прописать tcp:hostname..., чтобы форсировать подключение по TCP, вместо shared memory (локально ssrs->sql)

еще мысль: в качестве теста попробуйте исключить из работы DNS и прописать IP в коннектах. Может там проблема... Только удостоверьтесь, что и по IP у вас kerberos получается.
...
Рейтинг: 0 / 0
SSRS в режиме встроенной безопасности иногда NT AUTHORITY\АНОНИМНЫЙ ВХОД
    #40043439
TJ001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad,

теперь net_transport=TCP, но все равно аутентификация для моего сеанса (.Net SqlClient Data Provider) по NTLM

службу SSRS перезапустил
klist purge сделал

вернул на Shared memory

проблема пока не воспроизводится

попробую посмотреть через klist что там с билетами, когда опять начнется анонимус

вы мне подсказали направление, попробую поковырять его

спасибо
...
Рейтинг: 0 / 0
SSRS в режиме встроенной безопасности иногда NT AUTHORITY\АНОНИМНЫЙ ВХОД
    #40043607
TJ001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проблема решена!
дело было в том, что хром по умолчанию не запрашивает билеты Kerberos с флагом DELEGATION

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
        Клиент: username @ CORP.domain.RU
        Сервер: krbtgt/CORP.domain.RU @ CORP.domain.RU
        Тип шифрования KerbTicket: RSADSI RC4-HMAC(NT)
        флаги билета 0x60210000 -> forwardable forwarded pre_authent name_canonicalize
        Время начала: 2/9/2021 12:15:10 (локально)
        Время окончания:   2/9/2021 22:15:10 (локально)
        Время продления: 0
        Тип ключа сеанса: RSADSI RC4-HMAC(NT)
        Флаги кэша: 0x2 -> DELEGATION
        Вызванный центр распространения ключей: DC3.corp.domain.ru



а IE запрашивает


что происходило:
1. открываю IE, запускаю отчет, все работает
2. открываю следом хром, запускаю отчет, все работает
3. проходит время, билет керберос истек
4. открываю хром (ведь в нем работало в прошлый раз!), запускаю отчет, анонимус
5. открываю IE, запускаю отчет, анонимус
6. WTF?

теперь про те мистические часы ожидания (более 5 которые)
тут дело в том, что при открытии отчета создается конект к БД и живет какое-то вермя
этот конект ассоциирован с билетом керберос
керберос тоже живет какое-то время, независимо от конекта

если начинать с шага 1, то создается конект, выдается билет и хром использует этот конект, который был создан интернет эксплорером
если начинать с шага 2, то хром создает конект без соответствующего билета, получается анонимус
если следом проделать то же самое в IE, то билет будет выдан, но конект все еще живой, а SSRS подключает IE через существующий безбилетный конект, получается аононимус и в IE

чтобы исправить ситуацию здесь и сейчас, нужно грохнуть конект через SSMS или перезапустить службу и желательно почистить билеты (klist purge)
после этой операции открываем IE и сразу всё работает, без ожидания неведомых часов таймаута

чтобы заставить хром получать правильные билеты, нужно добавить в реестр ключ AuthNegotiateDelegateWhitelist и прописать в него соответствующее потребностям значение
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SSRS в режиме встроенной безопасности иногда NT AUTHORITY\АНОНИМНЫЙ ВХОД
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]