Назад | Перейти на главную страницу

IIS и SQL Server проверка подлинности Windows в приложении django

Я пытаюсь запустить веб-сайт django, который подключается к SQL Server, используя IIS с проверкой подлинности Windows.

Сервер IIS и сервер SQL находятся на разных машинах в одном домене, т. Е. iis_machine.example.com и sql_machine.example.com

Чего я пытаюсь достичь:

  1. Выдайте себя за удаленного пользователя, обращающегося к веб-сайту django, размещенному в IIS, чтобы его учетные данные Windows передавались на SQL Server для аутентификации.

Что я пробовал до сих пор:

  1. Добавил это в мой файл web.config для выдачи себя за другое лицо

    <system.web> <identity impersonate="true" /> </system.web>

  2. Включена проверка подлинности Windows и настроен пул приложений (django_web) для сайта django, как показано ниже

    Так выглядит моя аутентификация для сайта django в IIS

    Вот как мой пул приложений для сайта django выглядит в IIS

  3. Добавлено ПРИЛОЖЕНИЕ IIS \ django_web к SQL Server Безопасность \ Логины

Результат:

  1. Когда я захожу на сайт django, IIS запрашивает у пользователя его учетные данные Windows, и я могу успешно войти в систему.
  2. Если пользователь пытается получить доступ к 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. В качестве альтернативы вы можете создать для него собственную учетную запись службы.