
Estou tentando executar um site Django que se conecta a um SQL Server, usando IIS com autenticação do Windows.
O servidor IIS e o servidor SQL estão em máquinas diferentes no mesmo domínio, ou seja,iis_machine.exemplo.comesql_machine.exemplo.com
O que estou tentando alcançar:
- Personifique o usuário remoto que acessa o site Django hospedado no IIS, para que suas credenciais do Windows sejam passadas ao SQL Server para autenticação.
O que eu tentei até agora:
Adicionado isso ao meu arquivo web.config para representação
<system.web> <identity impersonate="true" /> </system.web>
Autenticação do Windows habilitada e configuração do pool de aplicativos (Django_web) para o site Django conforme mostrado abaixo
Esta é a aparência do meu site de autenticação para Django no IIS
Esta é a aparência do meu site de pool de aplicativos para Django no IIS
AdicionadoAPPPOOL do IIS\django_webpara SQL ServerSegurança\Logins
Resultado:
- Quando acesso o site do Django, o IIS solicita ao usuário suas credenciais do Windows e posso fazer login com sucesso
Se o usuário tentar acessar o SQL Server após efetuar login
Caso um. IIS e SQL Server estão em máquinas diferentes: a autenticação do SQL Server falha com "Falha no login do usuário 'domain\MACHINENAME$'
Caso b. IIS, SQL Server estão na mesma máquina, a autenticação do SQL Server foi bem-sucedida, mas as credenciais de autenticação usadas sãoAPPPOOL do IIS\django_webnãodomínio\usuário_remoto
Entendo que há alguns truques do Kerberos envolvidos nesta configuração. Infelizmente, sou apenas um programador e não estou muito familiarizado com o funcionamento do Kerberos. Se alguém com experiência neste domínio pudesse esclarecer como essa configuração funcionaria, ficaria muito grato. Obrigado!
Estou usando:
- IIS10
- Servidor SQL 2014
- Django2.0.7
- Pitão 3.6.5
- Janelas 8/10
Responder1
Você deve configurar a django_web
conta para poder delegar ao servidor SQL. Acho que é isso que IIS APPPOOL\django_web
você realmente precisa configurá-lo na conta da máquina no Active Directory. Como alternativa, você pode criar uma conta de serviço personalizada para ele.