IIS 8.5 Autenticação do Windows com falha para alguns usuários

3

Eu tenho um aplicativo que foi instalado exigindo a Autenticação do Windows no Windows 2012, IIS 8.5. Quando determinados usuários usam o aplicativo, eles recebem um erro 401 após o desafio / resposta. Outros podem usar o site sem problemas. Todos os usuários estão no mesmo grupo do AD, mas isso pode ser uma coincidência.

Aqui está a solicitação e as respostas processadas (o site é interno para nós, link - este é um registro A, não um CNAME) :

Solicitação:

Resposta:

No log de segurança, isso é típico do que está sendo exibido:

An account failed to log on.

Subject:
    Security ID:        NULL SID
    Account Name:       -
    Account Domain:     -
    Logon ID:       0x0

Logon Type:         3

Account For Which Logon Failed:
    Security ID:        NULL SID
    Account Name:       test1
    Account Domain:     CORP

Failure Information:
    Failure Reason:     Account locked out.
    Status:         0xC0000234
    Sub Status:     0x0

Process Information:
    Caller Process ID:  0x0
    Caller Process Name:    -

Network Information:
    Workstation Name:   1N14SW1-PC
    Source Network Address: -
    Source Port:        -

Detailed Authentication Information:
    Logon Process:      NtLmSsp 
    Authentication Package: NTLM
    Transited Services: -
    Package Name (NTLM only):   -
    Key Length:     0

A conta fornecida ("test1") não está bloqueada no Active Directory para falhas de login, etc. Acho que o bloqueio aqui deve ser do IIS.

No log do IIS, esta é uma entrada relevante:

2015-04-06 13:41:27 10.0.150.6 GET /Loss - 80 CORP\test1 10.0.20.28 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.1;+WOW64;+Trident/6.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+Media+Center+PC+6.0;+.NET4.0C;+.NET4.0E;+InfoPath.3;+EIE10;ENUSWOL) - 401 0 0 15

Para o site:

  • Apenas a Autenticação do Windows está ativada, todas as outras estão desativadas.
  • Autenticação do Windows, a Proteção Estendida está desativada e a Autenticação do Modo do Kernel está ativada.
  • Os provedores estão negociando e NTLM. (Os cabeçalhos acima confirmam isso.)
  • As regras de autorização estão definidas para Permitir todos os usuários

Eu também tentei vários navegadores. De fato, trocar usuários na mesma máquina produz resultados diferentes. (O usuário A na Máquina A está bem, o Usuário B na Máquina A não.) As máquinas estão na mesma intranet.

Editar: adicionei um arquivo "test.html" de nível superior para simplificar as coisas. Eu liguei o log de falha e este é o meu resultado. Alguém pode ler essas runas?

EDITAR

  • Lockoutstatus.exe mostra "Not Locked" em todos os 12 DCs deste domínio.

  • Um login bem-sucedido:

    An account was successfully logged on.
    
    Subject:
        Security ID:        NULL SID
        Account Name:       -
        Account Domain:     -
        Logon ID:       0x0
    
    Logon Type:         3
    
    Impersonation Level:        Impersonation
    
    New Logon:
        Security ID:        CORP\xxxx1
        Account Name:       xxxx1
        Account Domain:     CORP
        Logon ID:       0x12E1355
        Logon GUID:     {00000000-0000-0000-0000-000000000000}
    
    Process Information:
        Process ID:     0x0
        Process Name:       -
    
    Network Information:
        Workstation Name:   1N14SW1-PC
        Source Network Address: -
        Source Port:        -
    
    Detailed Authentication Information:
        Logon Process:      NtLmSsp 
        Authentication Package: NTLM
        Transited Services: -
        Package Name (NTLM only):   NTLM V2
        Key Length:     0
    

Eu meio que estou no final do meu Google-fu e corda. Alguma sugestão?

    
por Clinton Pierce 06.04.2015 / 17:47

1 resposta

1

O fato de os usuários bloqueados estarem todos no mesmo grupo AD provavelmente não é uma coincidência. Esses usuários podem não ter permissões de NTFS para acessar a pasta do aplicativo. Para evitar esse problema, fiz o seguinte, que deve garantir que a conta de identidade do pool de aplicativos seja usada para todo o acesso a arquivos, e que nunca haja qualquer tipo de falsificação de identidade.

Abra o Gerenciador do IIS. Selecione o aplicativo em Sites. Clique duas vezes no ícone "Editor de configuração". Na lista suspensa "Seção", localize system.webServer/serverRuntime . Defina como UseWorkerProcessUser .

A mesma coisa pode ser feita usando arquivos appcmd.exe ou .config.

É um pouco surpreendente que esse não seja o comportamento padrão. Aparentemente, ao usar a autenticação do Windows e a configuração padrão ( UseAuthenticatedUser ), algum acesso ao arquivo é executado usando as permissões do usuário que está navegando no site e algum acesso ao arquivo é executado usando as permissões da identidade do pool de aplicativos. Pessoalmente, eu sempre quero usar somente as permissões da identidade do pool de aplicativos, por isso tenho que lembrar de ajustar as configurações descritas acima.

    
por 14.02.2017 / 15:36