IIS e autenticação do SQL Server Windows em um aplicativo django

2

Estou tentando executar um site do django que se conecta a um SQL Server, usando o 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.example.com e sql_machine.example.com

O que estou tentando alcançar :

  1. Representar o usuário remoto que acessa o site do django hospedado no IIS, para que suas credenciais do Windows sejam passadas para o SQL Server para autenticação.

O que tentei até agora :

  1. Adicionei isto ao meu arquivo web.config para representação.

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

  2. Habilitou a autenticação do Windows e configurou o Pool de Aplicativos ( django_web ) para site django como mostrado abaixo

    É assim que meu site de Autenticação para django se parece no IIS

    É assim que meu Pool de Aplicativos para o site do django se parece no IIS

  3. Adicionou o IIS APPPOOL \ django_web ao SQL Server Segurança \ Logins

Resultado :

  1. Quando eu acesso o site do django, o IIS solicita ao usuário que ele Credenciais do Windows e eu posso fazer login com sucesso
  2. Se o usuário tentar acessar o SQL Server depois de efetuar login

    Caso um . IIS, SQL Server estão nas máquinas diferentes: autenticação do servidor SQL falha com " O login falhou para o usuário 'domain \ MACHINENAME $ '

    Caso b . IIS, SQL Server estão na mesma máquina, a autenticação do SQL Server é bem-sucedida, mas as credenciais de autenticação usadas são IIS APPPOOL \ django_web não domain \ remote_user

Eu entendo que há alguns truques do Kerberos envolvidos nessa configuração. Infelizmente, sou apenas um programador e não estou muito familiarizado com o funcionamento do Kerberos. Se alguém experiente neste domínio, poderia lançar alguma luz sobre como esta configuração funcionaria, isso seria muito apreciado. Obrigado!

Estou usando:

  • IIS 10
  • SQL Server 2014
  • django 2.0.7
  • Python 3.6.5
  • Windows 8/10
por notarobot 23.08.2018 / 15:51

1 resposta

0

Você precisa configurar a conta django_web para poder delegar para o servidor SQL. Eu acho que como isso é 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 ela.

    
por 24.08.2018 / 23:41