Autenticação do Windows no ASP.NET Core: logon manual vs. logon automático da intranet e grupos disponíveis

9

Eu tenho um aplicativo ASP.NET Core 3.0 que funciona com a autenticação local do Windows na intranet para identificar usuários conectados. Usando os comportamentos padrão de autenticação do Windows, sou capaz de capturar o usuário WindowsIdentitysem problemas.

No entanto, dependendo de como o usuário está conectado ao navegador usando o login automático do navegador da Intranet (ou seja, sem caixa de diálogo de senha) ou fazendo o login explicitamente usando a caixa de diálogo Senha do navegador, eu recebo resultados diferentes para os grupos de usuários .

A seguir, é apresentada uma solicitação de API que faz eco das informações do usuário, incluindo uma lista de membros do grupo filtrada (que exclui contas internas). O da esquerda é um login manual, o da direita, um login automático.

Para o login explícito, vejo corretamente todos os grupos personalizados dos quais o usuário faz parte. No entanto, para o login automático, esses mesmos grupos não aparecem:

diferenças de grupo para login manual vs. automático

Também examinei atentamente as instâncias de Usuário e Identidade no servidor, e ele está fazendo referência exatamente aos mesmos SIDs para o usuário, por isso parece estranho que resultados diferentes estejam sendo retornados para a Associação ao Grupo.

Alguma idéia de por que a lista de grupos é diferente quando estou recebendo a mesma conta? Observe que os grupos são locais, por isso não deve ser um problema devido ao acesso ao domínio.

Nota: Estou testando localmente no localhost mesmo e, para testar isso, defino as Configurações de Proxy do Windows aqui:

Configuração de login

Com as caixas de seleção desativadas, sou forçado a fazer login. Com eles ativados (nos navegadores Chromium de qualquer maneira), tenho que inserir explicitamente minhas credenciais na caixa de diálogo de login do navegador.

Rick Strahl
fonte

Respostas:

9

O usuário saiu do computador desde que foi adicionado a esses grupos?

Os grupos listados são mantidos no token de logon do usuário. Acho que o que pode estar acontecendo é que o logon automático envia o token de logon existente do usuário (criado quando eles efetuaram login no Windows), portanto não conteria nenhum grupo ao qual foram adicionados desde o último login.

A inserção manual do nome de usuário e da senha realiza um novo logon e, portanto, recebe um novo token com todos os grupos no momento do logon. Então novos grupos aparecerão lá.

Gabriel Luci
fonte
11
Após algumas verificações adicionais, você está absolutamente correto. Inicialmente, pensei que havia reiniciado a máquina desde que os problemas apareciam, mas, depois de realmente forçar um logoff e logon, descobri que, de fato, após o login novamente, pude ver os grupos. Obrigado - tão óbvio em retrospecto, mas ainda assim tão fácil de perder.
Rick Strahl