Peço desculpas se esta pergunta fugir do assunto; estou tentando solucionar algo que foge da minha área de especialização.
Recentemente, migrei um aplicativo da web interno para o IIS. Também habilitei a Autenticação do Windows (IWA), que eu não estava usando antes. O problema que estou vendo é que minha conta de usuário (e, evidentemente, apenas minha conta de usuário) às vezes (não em todos os lugares) é identificada incorretamente pelo processo de autenticação.
Aqui estão os detalhes da configuração de autenticação do IIS para meu site:
- Tenho a Autenticação do Windows habilitada e todo o resto (incluindo a Autenticação Anônima) desabilitado.
- A autenticação do Windows está usando a autenticação no modo Kernel e o
Negotiate
provedor.
Em relação à identificação errônea a que aludi:
- Tenho duas contas de usuário no mesmo domínio do AD. Chamo-as de
acct1
eacct2
. Normalmente, entro comoacct1
, alternando paraacct2
quando preciso de privilégios elevados. - Fiz login na VM que está executando o IIS
acct2
para configurar o site. - Quando volto ao meu PC local para acessar o site, o site me identifica como
acct2
, mesmo que eu esteja conectado ao meu PC comoacct1
. - Todos os outros que acessaram o site foram devidamente identificados, mesmo aqueles que têm mais de uma conta, como eu.
- Se eu acessar o site de um PC diferente enquanto estiver conectado como
acct1
, serei identificado corretamente pelo site comoacct1
. - Perversamente, se eu acessar o site da própria máquina do servidor, onde estou logado como
acct2
, ele me identifica comoacct1
. - Pelo que vale,
acct2
ele tem privilégios de administrador no meu PC local, mas não no outro PC de onde acessei o site. - Isso vem acontecendo há mais de uma semana e persiste mesmo depois de reiniciar meu PC local. Também acontece em diferentes navegadores.
Se eu mudar o provedor IWA de Negotiate
para NTLM
, aqui está o que vejo:
- Sou devidamente identificado
acct1
quando acesso o site do meu PC local. - Sou solicitado a inserir credenciais quando acesso o site da máquina do servidor web. No entanto, ele não aceita credenciais para
acct1
ouacct2
.
Não estou muito preocupado em acessar o site do servidor, mas preciso ser identificado corretamente ao acessá-lo do meu PC. Gostaria de usar Negotiate
em vez de NTLM
.
Sou um desenvolvedor e não um administrador de sistema, mas estou tentando encontrar pistas que possam me ajudar a restringir o que está acontecendo e potencialmente apontar nossa equipe de infraestrutura na direção certa. Isso parece um problema de configuração do Active Directory ou do Kerberos?
O site é um aplicativo Python Flask rodando como um aplicativo FastCGI no IIS por meio da wfastcgi
biblioteca Python. O site lê o valor da REMOTE_USER
variável request para obter o resultado do processo de autenticação IWA.