Como registrar SPN (Nome da Entidade de Serviço) para um servidor de relatório

Se estiver implantando o Reporting Services em uma rede que use o protocolo Kerberos para autenticação mútua, você deverá criar um SPN (Nome da Entidade de Serviço) para o serviço Servidor de Relatório se configurá-lo para execução como uma conta de usuário do domínio. Além disso, quando você configura um usuário do domínio como a conta de serviço, o servidor de relatório deve ser configurado para usar a autenticação NTLM.

Sobre SPNs

Um SPN é um identificador exclusivo para um serviço em uma rede que usa autenticação Kerberos. Consiste em uma classe de serviço, um nome de host e uma porta. Em uma rede que usa autenticação Kerberos, deve ser registrado um SPN para o servidor em uma conta interna do computador (como NetworkService ou LocalSystem) ou uma conta de usuário. Os SPNs são automaticamente registrados para contas internas. Entretanto, quando executar um serviço em uma conta de usuário do domínio, você deverá registrar manualmente o SPN para a conta que deseja usar.

Para criar um SPN, você pode usar o utilitário de linha de comando SetSPN. Para obter mais informações, consulte Setspn Overview (em inglês) no TechCenter do Microsoft Windows Server.

Você deve ser um administrador de domínio para executar o utilitário no controlador de domínio.

Sintaxe

A sintaxe de comando para usar o utilitário SetSPN e criar um SPN para o servidor de relatório se assemelha ao seguinte:

Setspn -a http/<computername>.<domainname>:<port> <domain-user-account>

SetSPN está disponível com o pacote de ferramentas de suporte do Windows Server 2003 Service Pack 1, que deve ser baixado separadamente. O argumento -a é usado para registrar um nome de entidade de serviço em uma determinada conta.

HTTP é a classe de serviço. O serviço Web Servidor de Relatórios é executado em HTTP.SYS. Uma criação por produto de um SPN para HTTP significa que todos os aplicativos Web no mesmo computador que são executados em HTTP.SYS (incluindo aplicativos hospedados no IIS) receberão tíquetes com base na conta de usuário do domínio. Se esses serviços forem executados em uma conta diferente, ocorrerá falha nas solicitações de autenticação. Para evitar esse problema, configure todos os aplicativos HTTP para que sejam executados na mesma conta ou considere a criação de cabeçalhos de host para cada aplicativo e, depois, a criação de SPNs separados para cada cabeçalho de host. Quando você configura cabeçalhos de host, é necessário fazer alterações de DNS, independentemente da configuração do Reporting Services.

Os valores especificados para <nome_do_computador>, <nome_do_domínio> e <porta> identificam o endereço de rede exclusivo do computador que hospeda o servidor de relatório. Pode ser um nome de host local ou um nome de domínio totalmente qualificado (FQDN). Se você tiver apenas um domínio e estiver usando a porta 80, poderá omitir <domainname> e <port> na linha de comando. A <domain-user-account> é a conta de usuário com a qual o serviço Servidor de Relatório é executado e na qual o SPN deve ser registrado.

ObservaçãoObservação

OBSERVAÇÃO: se estiver usando o Internet Explorer e a autenticação Kerberos, é recomendável não especificar a porta como parte da linha de comando. Para obter mais informações, consulte Internet Explorer não pode usar o protocolo de autenticação Kerberos para se conectar a um site.

Registrar um SPN para a conta de usuário do domínio

Para registrar um SPN para um serviço Servidor de Relatório que esteja em execução como um usuário do domínio

  1. Instale o Reporting Services e configure o serviço Servidor de Relatório para ser executado como uma conta de usuário do domínio. Observe que os usuários não poderão se conectar ao servidor de relatório até que você conclua as etapas a seguir.

  2. Baixe e instale Windows Server 2003 Service Pack 1 Support Tools do Centro de Download.

  3. Faça logon no controlador de domínio como administrador de domínio.

  4. Abra uma janela do prompt de comando.

  5. Copie o seguinte comando, substituindo os valores de espaço reservado por valores reais que sejam válidos para sua rede:

    Setspn -a http/<computer-name>.<domain-name>:<port> <domain-user-account>
    
  6. Execute o comando.

  7. Abra o arquivo RsReportServer.config e localize a seção <AuthenticationTypes>. Adicione <RSWindowsNegotiate/> como a primeira entrada desta seção para habilitar NTLM.