Registro de SPN para uma instância do Analysis Services

Aplica-se a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Um SPN (Nome da Entidade de Serviço) identifica exclusivamente uma instância de serviço em um domínio do Active Directory quando Kerberos é usado para autenticar mutuamente identidades de cliente e serviço. Um SPN é associado à conta de logon na qual a instância de serviço é executada.

Para aplicativos cliente que se conectam ao Analysis Services por meio da autenticação Kerberos, as bibliotecas de clientes do Analysis Services constroem um SPN usando o nome do host da cadeia de conexão e outras variáveis conhecidas, como a classe de serviço, que são fixas em qualquer versão do Analysis Services.

Para que a autenticação mútua ocorra, os SPNs construídos pelo cliente devem corresponder a um objeto SPN correspondente em um CONTROLADOR de Domínio do Active Directory (DC). Isso significa que talvez seja necessário registrar vários SPNs para uma única instância do Analysis Services para abranger todas as maneiras pelas quais um usuário pode especificar o nome do host em uma cadeia de conexão. Por exemplo, você provavelmente precisa de dois SPNs para lidar com o FQDN (nome de domínio totalmente qualificado) de um servidor, bem como o nome curto do computador. Registrar corretamente o SPN do Analysis Services é essencial para uma conexão bem-sucedida. Se o SPN for inexistente, malformado ou duplicado, a conexão falhará.

O registro de SPN é uma tarefa manual executada pelo administrador do Analysis Services. Ao contrário do mecanismo de banco de dados do SQL Server, o Analysis Services nunca registra automaticamente seu SPN na inicialização do serviço. O registro manual é necessário quando o Analysis Services é executado sob a conta virtual padrão, uma conta de usuário de domínio ou uma conta interna, incluindo um SID por serviço.

O registro de SPN não será necessário se o serviço for executado em uma conta de serviço gerenciada predefinida criada por um administrador de domínio. Observe que, dependendo do nível funcional do seu domínio, o registro de um SPN pode exigir permissões de administrador de domínio.

Dica

Microsoft Kerberos Configuration Manager for SQL Server é uma ferramenta de diagnóstico que ajuda a solucionar problemas de Kerberos relativos à conectividade com SQL Server. Para obter mais informações, consulte Microsoft Kerberos Configuration Manager for SQL Server.

Este tópico contém as seguintes seções:

Quando o registro de SPN é necessário

Formato SPN para Analysis Services

Registro de SPN para uma conta virtual

Registro de SPN para uma conta de domínio

Registro de SPN para uma conta incorporada

Registro de SPN para uma instância nomeada

Registro de SPN para um cluster SSAS

Registro de SPN para instâncias do SSAS configuradas para acesso HTTP

Registro de SPN para instâncias do SSAS que operam em portas fixas

Quando o registro de SPN é necessário

Qualquer conexão de cliente que especifica "SSPI=Kerberos" na cadeia de conexão introduzirá requisitos de registro de SPN para uma instância do Analysis Services.

O registro de SPN é necessário nas circunstâncias a seguir. Para obter informações mais detalhadas, consulte Configurar a delegação restrita do Analysis Services para Kerberos.

  • A delegação de identidade é necessária para transferir a identidade do usuário do aplicativo cliente ou do serviço de camada intermediária para o Analysis Services. A delegação de identidade normalmente é usada quando permissões ou filtros por usuário são definidos em objetos específicos.

    Um cenário comum que envolve a delegação de identidade é configurar serviços de camada intermediária, como Serviços do Excel ou Reporting Services, para delegação restrita com a finalidade de representar uma identidade de usuário ao recuperar dados no Analysis Services. Para dar suporte a esse comportamento, você deve fornecer um SPN do Analysis Services como o serviço de destino ao configurar os Serviços do Excel ou o Reporting Services para delegação restrita.

  • O Analysis Services delega uma identidade de usuário ao recuperar dados de um banco de dados relacional do SQL Server para bancos de dados tabulares usando o modo DirectQuery. Esse é o único cenário em que o Analysis Services delegará a identidade do usuário a outro serviço.

Formato SPN para Analysis Services

Use setspn para registrar um SPN. Em sistemas operacionais mais recentes, o setspn é instalado como um utilitário do sistema. Para obter mais informações, consulte SetSPN.

A tabela a seguir descreve cada parte de um SPN do Analysis Services.

Elemento Description
Classe de serviço MSOLAPSvc.3 identifica o serviço como uma instância do Analysis Services. O .3 é uma referência à versão do protocolo XMLA-over-TCP/IP usado nas transmissões do Analysis Services. Não está relacionado ao lançamento do produto. Assim, MSOLAPSvc.3 é a classe de serviço correta para SQL Server 2005, 2008, 2008 R2, 2012 e qualquer versão futura do Analysis Services até que o protocolo em si seja revisado.
Nome de host Identifica o computador no qual o serviço está em execução. Pode ser um nome de domínio totalmente qualificado ou um nome NetBIOS. Você deve registrar um SPN para ambos.

Ao registrar um SPN para o nome NetBIOS de um servidor, certifique-se de usar SetupSPN -S para verificar se há registro duplicado. Os nomes NetBIOS não têm garantia de serem exclusivos em uma floresta e ter um registro SPN duplicado fará com que a conexão falhe.

Para clusters com balanceamento de carga do Analysis Services, o nome do host deve ser o nome virtual atribuído ao cluster.

Nunca crie um SPN usando o endereço IP. Kerberos usa os recursos de resolução DNS do domínio. Especificar um endereço IP ignora essa funcionalidade.
Número da porta Embora o número da porta faça parte da sintaxe SPN, você nunca especifica um número de porta ao registrar um SPN do Analysis Services. O caractere colon ( : ) , normalmente usado para fornecer um número de porta na sintaxe SPN padrão, é usado pelo Analysis Services para especificar o nome da instância. Para uma instância do Analysis Services, supõe-se que a porta seja a porta padrão (TCP 2383) ou uma porta atribuída pelo serviço SQL Server Browser (TCP 2382).
Nome da instância O Analysis Services é um serviço replicável que pode ser instalado várias vezes no mesmo computador. Cada instância é identificada por meio do nome da instância.

O nome da instância é prefixado com um caractere de dois-pontos ( : ) . Por exemplo, dado um computador host chamado SRV01 e uma instância nomeada do SSAS-Tabular, o SPN deve ser SRV01:SSAS-Tabular.

Observe que a sintaxe para especificar uma instância nomeada do Analysis Services difere da usada por outras instâncias do SQL Server. Outros serviços usam uma barra invertida ( \ ) para acrescentar o nome da instância em um SPN.
Conta de serviço Esta é a conta de início do serviço Windows MSSQLServerOLAPService. Pode ser uma conta de usuário de domínio do Windows, uma conta virtual, uma MSA (conta de serviço gerenciada) ou uma conta interna, como um SID por serviço, NetworkService ou LocalSystem. Uma conta de usuário de domínio do Windows pode ser formatada como domínio\usuário ou user@domain.

Registro de SPN para uma conta virtual

Contas virtuais são o tipo de conta padrão para serviços do SQL Server. A conta virtual é NT Service\MSOLAPService para uma instância padrão e NT Service\MSOLAP$<instance-name> para uma instância nomeada.

Como o nome indica, essas contas não existem no Active Directory. Existe uma conta virtual somente no computador local. Ao se conectar a serviços externos, aplicativos ou dispositivos, a conexão é feita usando a conta do computador local. Por esse motivo, um registro SPN para o Analysis Services em execução em uma conta virtual é, na verdade, um registro SPN para a conta do computador.

Sintaxe de exemplo para uma instância padrão em execução como NT Service\MSOLAPService

Este exemplo mostra a sintaxe setspn para a instância padrão do Analysis Services em execução na conta virtual padrão. Neste exemplo, o nome do host do computador é AW-SRV01. Conforme observado, o registro SPN deve especificar a conta do computador em vez da conta virtual, NT Service\MSOLAPService.

Setspn -s MSOLAPSvc.3/AW-SRV01.AdventureWorks.com AW-SRV01  

Observação

Lembre-se de criar dois registros SPN, um para o nome do host NetBIOS e um segundo para um nome de domínio totalmente qualificado do host. Diferentes aplicativos cliente usam convenções de nome de host diferentes ao se conectarem ao Analysis Services. Ter dois registros SPN garante que ambas as versões do nome do host sejam contabilizadas.

Sintaxe de exemplo para uma instância nomeada em execução como NT Service\MSOLAP$<instance-name>

Este exemplo mostra a sintaxe setspn para uma instância nomeada em execução na conta virtual padrão. Neste exemplo, o nome do host do computador é AW-SRV02 e o nome da instância é AW-FINANCE. Novamente, é a conta do computador especificada para o SPN, em vez do NT Service\MSOLAP$<instance-name> da conta virtual.

Setspn -s MSOLAPSvc.3/AW-SRV02.AdventureWorks.com:AW-FINANCE AW-SRV02  

Registro de SPN para uma conta de domínio

Usar uma conta de domínio para executar uma instância do Analysis Services é uma prática comum.

Para instâncias do Analysis Services executadas em um cluster com balanceamento de carga de rede ou hardware, uma conta de domínio é necessária, com cada instância no cluster em execução na mesma conta de domínio.

Sintaxe de exemplo para uma instância padrão em execução como um usuário de domínio

Este exemplo mostra a sintaxe setspn para a instância padrão do Analysis Services em execução em uma conta de usuário de domínio, SSAS-Service, no domínio AdventureWorks.

Setspn -s msolapsvc.3/AW-SRV01.Adventureworks.com AdventureWorks\SSAS-Service  

Dica

Verifique se o SPN foi criado para o servidor do Analysis Services executando Setspn -L <domain account> ou Setspn -L <machinename>, dependendo de como o SPN foi registrado. Você deve ver MSOLAPSVC.3/<hostname> na lista.

Registro de SPN para uma conta integrada

Embora essa prática não seja recomendada, as instalações mais antigas do Analysis Services às vezes são configuradas para serem executadas em contas internas, como Serviço de Rede, Serviço Local ou Sistema Local.

Sintaxe de exemplo para uma instância padrão em execução sob uma conta integrada

O registro SPN para um serviço em execução em uma conta interna ou SID por serviço é equivalente à sintaxe SPN usada para a conta virtual. Em vez do nome da conta, use a conta do computador:

Setspn -s MSOLAPSvc.3/AW-SRV01.AdventureWorks.com AW-SRV01  

Registro de SPN para uma instância nomeada

Por padrão, instâncias nomeadas do Analysis Services usam atribuições de porta dinâmica detectadas pelo serviço SQL Server Browser. ** Você só precisa criar SPNs de NetBIOS e FQDN para a instância nomeada para ativar as conexões Kerberos.

Sintaxe de exemplo para uma instância nomeada em execução como um usuário de domínio

O exemplo a seguir mostra a sintaxe setspn da instância nomeada AW-FINANCE do Analysis Services que está sendo executada sob a conta de usuário de domínio SSAS-Service, no domínio AdventureWorks. Neste exemplo, o nome do host do computador é AW-SRV01.

FQDN SPN: Setspn -s MSOLAPSvc.3/AW-SRV01.AdventureWorks.com:AW-FINANCE AdventureWorks\SSAS-Service 

NetBIOS SPN: Setspn -s MSOLAPSvc.3/AW-SRV01:AW-FINANCE AdventureWorks\SSAS-Service 

Observação

Se você configurou sua instância nomeada para escutar em uma porta fixa, execute as seguintes etapas para usar conexões Kerberos do aplicativo cliente:

  1. Iniciar o serviço de Navegador do SQL Server.
  2. Se você estiver usando um número de porta na cadeia de conexão, remova o número da porta, adicione o nome da instância e permita que o aplicativo receba o número da porta por meio do serviço SQL Server Browser.

Dica

Verifique se o SPN foi criado para a instância nomeada do SQL executando o Setspn -L <domain account> comando ou Setspn -L <machinename> , dependendo de como o SPN foi registrado.

O Microsoft Kerberos Configuration Manager para SQL Server é uma ferramenta de diagnóstico que ajuda a solucionar problemas de conectividade relacionados ao Kerberos com o SQL Server. Essa ferramenta pode ajudar a identificar possíveis problemas em SPNs e delegações e fornecer procedimentos automatizados para corrigir os problemas identificados. Para obter mais informações, consulte Microsoft Kerberos Configuration Manager for SQL Server.

Registro de SPN para um cluster SSAS

Para clusters de failover do Analysis Services, o nome do host deve ser o nome virtual atribuído ao cluster. Esse é o nome de rede do SQL Server, especificado durante a Instalação do SQL Server quando você instalou o Analysis Services em cima de um WSFC existente. Você pode encontrar esse nome no Active Directory. Você também pode encontrá-lo na guia Recursos do | Função. O nome do servidor na guia Recursos é o que deve ser usado como o "nome virtual" no comando SPN.

Sintaxe SPN para um cluster do Analysis Services

Setspn -s msolapsvc.3/<virtualname.FQDN > <domain user account>  

Lembre-se de que os nós em um cluster do Analysis Services devem usar a porta padrão (TCP 2383) e executar com a mesma conta de usuário de domínio para que cada nó tenha o mesmo SID. Consulte Como clusterizar o SQL Server Analysis Services para obter mais informações.

Registro de SPN para instâncias do SSAS configuradas para acesso HTTP

Dependendo dos requisitos da solução, você pode ter configurado o Analysis Services para acesso HTTP. Se sua solução incluir o IIS como um componente de camada intermediária e a autenticação Kerberos for um requisito de solução, talvez seja necessário registrar manualmente um SPN para IIS. Para obter mais informações, consulte "Definir as configurações no computador executando o IIS" em Como configurar o SQL Server 2008 Analysis Services e o SQL Server 2005 Analysis Services para usar a autenticação Kerberos.

Em termos de registro de SPN para a instância do Analysis Services, não há diferença entre uma instância configurada para TCP ou HTTP. A conexão com o "Analysis Services" do IIS, usando a extensão ISAPI do MSMDPUMP, é sempre TCP.

Isso significa que você pode usar as instruções das seções anteriores para a instância padrão ou nomeada para registrar o SPN. Ao especificar o nome do host, use o nome do host especificado no arquivo msmdpump.ini quando configurou o serviço para acesso HTTP.

Para obter mais informações sobre o acesso HTTP, consulte Configurar o acesso HTTP ao Analysis Services no IIS (Serviços de Informações da Internet) 8.0.

Registro de SPN para instâncias do SSAS operando em portas fixas

Não é possível especificar um número de porta em um registro SPN do Analysis Services. O registro do SPN do Analysis Services só pode usar o nome da instância. Se você instalou o Analysis Services como uma instância padrão e a configurou para escutar em uma porta não padrão, não poderá se conectar a essa instância usando Kerberos. Você deve configurá-lo para escutar na porta padrão (TCP 2383), a fim de habilitar conexões Kerberos a essa instância. Uma instância padrão do Analysis Services, quando configurada para escutar em uma porta que não seja a padrão, só pode aceitar conexões NTLM. Para instâncias nomeadas, você precisa iniciar o serviço SQL Server Browser e usar nomes de instância em suas cadeias de conexão em vez de números de porta.

Uma instância do Analysis Services só pode escutar em uma única porta. Não há suporte para o uso de várias portas. Para obter mais informações sobre a configuração da porta, consulte Configurar o Firewall do Windows para permitir o acesso ao Analysis Services.

Consulte Também

Autenticação e Delegação de Identidade do Microsoft BI
Autenticação mútua usando Kerberos
Sintaxe SetSPN (Nomes da Entidade de Serviço) (Setspn.exe)
SetSPN
Guia passo a passo das contas de serviço
Configurar contas de serviço e permissões do Windows
Como usar SPNs ao configurar aplicativos Web hospedados nos Serviços de Informações da Internet
novidades nas contas de serviço
Configurar a autenticação Kerberos para produtos do SharePoint 2010 (white paper)