Прежде всего, не уверены, какой сайт лучше всего подходит для этого вопроса, будь то SO, SF или SU, поэтому не стесняйтесь предлагать переход!
У меня есть требование ограничить делегирование между несколькими машинами, чтобы обеспечить олицетворение идентичности между различными службами.
Вот разные машины:
Machine1
- Имеет IIS 8.0 с AppPool, работающим под локальной учетной записью службы. Local System
Machine2
- Имеет SQL Server 2008 R2 с SSRS, которые работают под локальной учетной записью службы. Network Service
Machine3
- Имеет SQL Server 2008 R2 и отражает несколько баз данных из Machine2
Приложение, которое я разрабатываю, должно иметь возможность олицетворять удостоверение клиента, чтобы обеспечить доступ к серверной части SQL Server и службам Reporting Services. Также существует требование выдавать себя за пользователя, чтобы приложение могло загружать файлы в общую сетевую папку.
Все машины работают в одном домене.
Я сел с администратором домена и включил Enable this computer for delegation to any service (kerberos only)
ко всем трем машинам. Причина этого в том, что я безуспешно пытался ограничить делегирование определенных служб.
Я не вносил изменений в какие-либо имена участников-служб, так как понимаю, что SQL Sever автоматически создает необходимые имена участников-служб для выполнения этой работы.
В своем заявлении я указал в web.config
файл, чтобы включить олицетворение:
<authentication mode="Windows" />
<identity impersonate="true"/>
В IIS включена только проверка подлинности Windows.
Проблема
Делегирование, похоже, вообще не работает, так как при развертывании приложения в IIS возникают проблемы с аутентификацией (т.е. ошибка 401) при попытке доступа к службе SSRS и при попытке загрузить файл в общий сетевой ресурс.
Вопрос
Есть ли что-то еще, что мне не хватает / что мне нужно проверить, чтобы делегирование работало на машинах, и какие службы мне нужно включить, чтобы обеспечить выполнение вышеуказанных требований.
Обратите внимание, я прочитал много вопросов о делегировании, которые не помогли решить мою проблему.