Я пытаюсь запустить веб-сайт django, который подключается к SQL Server, используя IIS с проверкой подлинности Windows.
Сервер IIS и сервер SQL находятся на разных машинах в одном домене, т. Е. iis_machine.example.com и sql_machine.example.com
Чего я пытаюсь достичь:
Что я пробовал до сих пор:
Добавил это в мой файл web.config для выдачи себя за другое лицо
<system.web>
<identity impersonate="true" />
</system.web>
Включена проверка подлинности Windows и настроен пул приложений (django_web) для сайта django, как показано ниже
Добавлено ПРИЛОЖЕНИЕ IIS \ django_web к SQL Server Безопасность \ Логины
Результат:
Если пользователь пытается получить доступ к SQL Server после входа в систему
Случай а. IIS и SQL Server находятся на разных машинах: проверка подлинности SQL-сервера не выполняется с "Не удалось войти в домен пользователя \ MACHINENAME $'
Случай б. IIS и SQL Server находятся на одном компьютере, проверка подлинности SQL-сервера прошла успешно, но используются учетные данные для проверки подлинности. ПРИЛОЖЕНИЕ IIS \ django_web не домен \ удаленный_пользователь
Я понимаю, что с этой настройкой связаны некоторые уловки Kerberos. К сожалению, я всего лишь программист и не очень хорошо знаком с принципом работы Kerberos. Если бы кто-то, имеющий опыт в этой области, мог бы пролить свет на то, как эта установка будет работать, это было бы очень признательно. Спасибо!
Я использую:
Вам необходимо настроить django_web
учетная запись, которой разрешено делегировать серверу SQL. Я думаю, так как это IIS APPPOOL\django_web
вам действительно нужно настроить его на учетной записи компьютера в Active Directory. В качестве альтернативы вы можете создать для него собственную учетную запись службы.