Erro Kerberos APP_MODIFIED ao usar um registro DNS CNAME

2

Eu tenho um servidor de produção, que chamarei CONTOSO\MachineA , executando o SQL Server. Eu tenho um servidor de desenvolvimento, que eu vou chamar CONTOSO\MachineB , executando o IIS. Ambos os servidores estão executando o Windows Server 2008. Eu tenho um usuário de domínio, que chamarei de CONTOSO\MyAppSvc . Eu tenho dois registros CNAME, myapp => MachineA e myappdev => MachineB .

Meu objetivo é fazer com que os clientes (de intranet) se conectem ao IIS em MachineB e autenticação via autenticação do Windows e, em seguida, que o aplicativo represente e conecte-se ao SQL em MachineA como eles próprios.

O MachineB está executando outra instância do SQL Server, para testes, e verifiquei que o SQL está configurado para a autenticação de salto duplo executando SELECT * FROM [MachineA].[My App DB].App.SomeTable via SSMS (on MyWorkstation) => SQL Server (on MachineB) => SQL Server (on Machine A) .

MyApp no IIS em MachineB é configurado com Representação e Autenticação do Windows (somente negociação) e em execução em MyAppPool , que está sendo executado como MyAppSvc . system.webServer/ security/ authentication/ windowsAuthentication @useAppPoolCredentials é verdadeiro e @useKernelMode é falso. MachineB e MyAppSvc são confiáveis para delegação sem restrições. Existem dois SPNs em MyAppSvc : HTTP/myapp e HTTP/myapp.contoso.local .

Usando o wireshark, vejo o seguinte quando tento navegar em http://myapp/aPage :

  • MyWorkstation = > MachineB
    • GET / aPage
    • Anfitrião: myapp
  • MachineB = > MyWorkstation
    • 401 Não autorizado
    • Autenticar a WWW: negociar
  • MyWorkstation = > MachineB
    • GET / aPage
    • Anfitrião: myapp
    • Autorização: ticket:
      • reino: CONTOSO.LOCAL
      • sname: HTTP / MachineB.Contoso.local
  • MachineB = > MyWorkstation
    • 401 Não autorizado
    • Autenticar-se na WWW:
      • código de erro: ERR-MODIFIED
      • reino: CONTOSO.LOCAL
      • sname: MyAppSvc
por Ethan Reesor 17.09.2015 / 00:27

1 resposta

1

O problema é que a entrada DNS é um registro CNAME não um registro A combinado ao fato de que os SPNs estão configurados para o nome do host MyApp e não o nome da máquina MachineB . A solução é alterar a entrada de DNS de MyApp para um registro A que aponta diretamente para o endereço IP de MachineB ou para adicionar os SPNs HTTP/MachineB e HTTP/MachineB.Contoso.local (os antigos provavelmente poderiam ser removidos).

    
por 25.09.2015 / 02:37