A autenticação Kerberos e resolução de problemas de delegação


Coluna de voz de suporte de programação do IIS


A autenticação Kerberos e resolução de problemas de delegação

Para personalizar esta coluna às suas necessidades, pretendemos convidá-lo para apresentar as suas ideias sobre os tópicos que interessam problemas que pretende ver e corrigida no futuro colunas de voz de suporte e artigos da Base de dados de conhecimento. Pode submeter as ideias e comentários utilizando o formulário Pedir para-lo . Existe também uma hiperligação para o formulário na parte inferior desta coluna.
O meu nome estiver Martin Silva e tenho com grupo de resolução de problemas críticos do Microsoft Internet Information Services (IIS) da Microsoft. Posso ter sido com o Microsoft nove anos e ter sido com a equipa IIS todos os nove anos. Tem a compilar informações a partir de várias localizações no
http://msdn.microsoft.com e
http://www.microsoft.com sobre Kerberos e como resolver problemas de delegação.

IIS 6.0

A seguinte documentação técnica descreve como configurar a delegação no Microsoft Windows Server 2003. A documentação técnica tem informações específicas para rede balanceamento de carga (NLB), mas inclui excelente detalhes sobre como configurar um cenário delegado sem utilizar o NLB. Para ver esta documentação técnica, visite o seguinte Web site da Microsoft:Nota Utilize nomes principais de serviço HTTP (SPN), especialmente quando utilizar o NLB.

Outro problema de Kerberos popular recentemente foi a necessidade de permitir que vários agrupamentos de aplicações para utilizar o mesmo nome DNS. Infelizmente, quando utilizar o protocolo Kerberos para delegar credenciais, não é possível ligar o mesmo nome SPN (Service Principal) para agrupamentos de aplicações diferentes. Não é possível fazê-lo devido à concepção de Kerberos. O protocolo Kerberos requer vários segredos partilhados para o protocolo funcionar correctamente. Utilizando o mesmo SPN para agrupamentos de aplicações diferentes, vamos eliminar um destes segredos partilhados. O serviço de directório do Active Directory não suporta esta configuração do protocolo Kerberos devido o problema de segurança.

Configurar os SPNs desta forma fará com que a falha da autenticação Kerberos. Uma possível solução para este problema seria utilizar protocolo em transição. A autenticação inicial entre o cliente e o servidor a executar o IIS seria processada através do protocolo de autenticação NTLM. Kerberos seria processa a autenticação entre o IIS e o servidor de back-end de recursos.

Microsoft Internet Explorer 6 ou posterior

O navegador do cliente, poderá detectar problemas, tais como pedidos de início de sessão repetidas de credenciais ou mensagens de erro "401 acesso negado" a receber do servidor a executar o IIS. Verificámos que as seguintes questões que poderão ajudar a resolver estes problemas:
  • Certifique-se de que Activar a autenticação integrada do Windows está seleccionada nas propriedades do browser. Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
    299838 não é possível negociar a autenticação Kerberos depois de actualizar para o Internet Explorer 6

  • Se a configuração de segurança avançada do Internet Explorer está activada em Adicionar/remover programas, terá de adicionar um site que utiliza a delegação para o
    Lista de sites fidedignos . Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
    815141 da configuração de segurança avançada do Internet Explorer altera a experiência de navegação

IIS 5.0 e IIS 6.0

Depois de actualizar a partir do IIS 4.0 para IIS 5.0 ou IIS 6.0, delegação poderão não funcionar correctamente ou, eventualmente, alguém ou uma aplicação tiver modificado a propriedade da metabase NTAuthenticationProviders.
Para mais informações sobre como corrigir este problema, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
248350 a autenticação Kerberos falha após a actualização do IIS 4.0 para o IIS 5.0

Uma área específica do problema pode ocorrer quando definir o SPN

Determinar o nome do servidor

Determine se está a ligar ao Web site utilizando o nome de NetBIOS real do servidor ou utilizando um nome de alias, tal como um nome DNS (por exemplo, www.microsoft.com). Se está acessando o servidor Web utilizando um nome diferente do nome real do servidor, um novo serviço de nome Principal (SPN) devem ter sido registado, utilizando a ferramenta Setspn do Windows 2000 Server Resource Kit. Uma vez que o serviço de directório do Active Directory não souber este nome de serviço, o serviço de concessão de permissão (TGS) fornece uma permissão para autenticar o utilizador. Este comportamento obriga o cliente para utilizar o seguinte método de autenticação disponíveis, que é NTLM, renegociar. Se o servidor Web está a responder a um nome DNS de www.microsoft.com, mas o servidor denominado webserver1.development.microsoft.com, tem de registar www.microsoft.com no Active Directory no servidor que está a ser executado com o IIS. Para tal, tem de transferir a ferramenta Setspn e instalá-lo no servidor que está executando o IIS.


Se estiver a utilizar o Windows Server 2003 e IIS 6, a ferramenta Setspn para Microsoft Windows Server 2003 está disponível na seguinte localização:Para determinar se está a ligar utilizando o nome real, tente ligar ao servidor utilizando o nome real do servidor em vez do nome DNS. Se não conseguir ligar ao servidor, consulte a secção "Verificar o computador é fidedigno para delegação".

Se conseguir ligar ao servidor, siga estes passos para definir um SPN para o nome DNS estiver a utilizar para ligar ao servidor:
  1. Instale a ferramenta Setspn.
  2. No servidor a executar o IIS, abra uma linha de comandos e, em seguida, abra a pasta C:\Program Files\Resource Kit.
  3. Execute o seguinte comando para adicionar este novo SPN (www.microsoft.com) para o Active Directory para o servidor:
    Setspn - A HTTP/www.microsoft.com servidorweb1
    Nota Neste comando, servidorweb1 representa o nome de NetBIOS do servidor.
Receberá um resultado semelhante ao seguinte:
Registering ServicePrincipalNames for CN=webserver1,OU=Domain Controllers,DC=microsoft,DC=comHTTP/www.microsoft.com
Updated object

Para ver uma lista de SPNs no servidor para ver este novo valor, escreva o seguinte comando no servidor a executar o IIS:
Setspn -L NomeDoServidorWeb
Tenha em atenção que não é necessário que registar todos os serviços. Muitos tipos de serviço, tais como HTTP, W3SVC, WWW, RPC, CIFS (acesso a ficheiros), WINS e ininterrupta (UPS), de fornecimento irão mapear para um tipo de serviço predefinido que é o nome anfitrião. Por exemplo, se o software cliente utiliza um SPN de HTTP/webserver1.microsoft.com para criar uma ligação HTTP ao servidor Web no servidor webserver1.microsoft.com, mas este SPN não está registado no servidor, o controlador de domínio do Windows 2000 automaticamente mapear a ligação para HOST/webserver1.microsoft.com. Este mapeamento só se aplica se o serviço Web está em execução sob a conta de sistema local.

Certifique-se de que o computador é fidedigno para delegação

Se este servidor a executar o IIS é um membro do domínio, mas não é um controlador de domínio, o computador tem de ser fidedigno para delegação para Kerberos funcionar correctamente. Para tal, siga estes passos:
  1. No controlador de domínio, clique em Iniciar, aponte para Definiçõese, em seguida, clique em Painel de controlo.
  2. No painel de controlo, abra Ferramentas administrativas.
  3. Faça duplo clique em computadores e utilizadores do Active Directory.
  4. Nos termos do seu domínio, clique em computadores.
  5. Na lista, localize o servidor a executar o IIS, com o botão direito no nome do servidor e, em seguida, clique em Propriedades.
  6. Clique no separador Geral , clique para seleccionar o
    Fidedigno para delegação a caixa de verificação e, em seguida, clique em
    OK.
Tenha em atenção que se múltiplos Web sites forem atingidos pelo mesmo URL mas portas diferentes, delegação não funcionará. Para tornar este trabalho, tem de utilizar diferentes nomes de anfitriões e os SPNs diferentes. Quando o Internet Explorer solicita qualquer http://www. meuwebsite. com ou http://www. meuwebsite.com:81, Internet Explorer pede uma permissão para o SPN de HTTP/www.mywebsite.com. Internet Explorer não adiciona a porta ou o vdir ao pedido de SPN. Este comportamento é o mesmo para http://www. meuwebsite.com/app1 ou http://www. meuwebsite.com/app2. Neste cenário, o Internet Explorer irá pedir uma permissão de SPN http://www. .com de meuwebsitedo Key Distribution Center (KDC). Cada SPN pode ser declarada apenas para uma identidade. Por conseguinte, seria também recebe uma mensagem de erro KRB_DUPLICATE_SPN se tentar declarar este SPN para cada identidade.

Delegação e o Microsoft ASP.NET

Para mais informações sobre a configuração para delegar as credenciais quando utiliza uma aplicação do ASP.NET, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
810572 como configurar uma aplicação do ASP.NET para um cenário de delegação

Representação e delegação são dois métodos para um servidor para autenticar em nome do cliente. Decidir qual destes métodos a utilizar e a respectiva aplicação pode causar alguma confusão. Tem de rever a diferença entre estes dois métodos e examinar a que estes métodos que poderá utilizar para a aplicação. A minha recomendação seria ler a seguinte documentação técnica para obter mais detalhes:

Referências


305971 o Windows 2000 Server pede as credenciais de utilizador do domínio

262177 como activar o registo de eventos de Kerberos

326985 a resolução de problemas relacionados com Kerberos no IIS

842861 TechNet Support WebCast: a autenticação Kerberos de resolução de problemas com aplicações Web seguras e o Microsoft SQL Server

Como sempre, sensação gratuita submeter ideias sobre os tópicos que pretende no futuro corrigida colunas ou na Knowledge Base utilizando o
Pedir para este formulário.