Autenticação Kerberos x CNAME

Estou trabalhando na configuração de um ambiente que requer autenticação Kerberos e me deparei com uma situação interessante.

Precisava configurar um ambiente com relatórios do SSRS acessando dados do SSAS, onde estes estariam em servidores diferentes, utilizando autenticação windows.

Nesse tipo de situação precisamos utilizar o protocolo Kerberos, pois é preciso enviar as credenciais de um servidor para outro, fazendo o “famoso” double hop (vou explicar isso melhor em um post que estou preparando).

Para o ambiente do SSRS havia um Host Header configurado e, como é necessário, também um DNS apontando para esse Host Header.

Feito isso configurei todos os SPNs, contas de serviço, mas o acesso teimava em falhar. O interessante é que o acesso direto pelo nome da máquina funcionava sem problemas, só falhava pelo Host Header.

Após muita pesquisa descobri que há um bug do IE (não tive como testar o ambiente com outros navegadores, apenas com o Chrome, mas esse já não acessava o ambiente corretamente antes) onde o mesmo enfrenta problemas para formar o SPN na requisição Kerberos quando utilizado um CNAME record.

A solução para isso foi criar um A Record, que basicamente é um registro DNS para máquinas (ou seja, registrei o Host Header http://www.caminho.dominio.com, como se fosse uma máquina no meu domínio), ao invés de um CNAME.

Um problema bem “complicado”, pois não há nada que indique o uso de A Records nas documentações (pelo menos não nas que eu havia encontrado) e a mensagem de erro também não indica isso. Mesmo o monitoramento dos pacotes de rede do protocolo Kerberos não ajudam muito, pois apenas mostram que há uma requisição errada, sem maiores detalhes.

About these ads
Esse post foi publicado em Artigos, Segurança, Virtual PASS BR. Bookmark o link permanente.

Uma resposta para Autenticação Kerberos x CNAME

  1. Artigo muito interessante!!! Uma possível explicação para o mistério: Service Principal Name é determinado a partir da resolução reversa do nome, ou seja, a partir de um registro PTR. Normalmente esse registro é implicitamente criado junto com um registro A. Uma forma de determinar é usando o PING -A. Legal essa documentação sobre SPN, porque é um material bem difícil de ser encontrado na Internet.
    Abraços, Fabricio

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s