SPN registration for an Analysis Services instance

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 o Kerberos é usado para autenticar mutuamente identidades de cliente e serviço. Um SPN é associado à conta de logon na qual a instância do serviço é executada.

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

Para que a autenticação mútua ocorra, os SPNs construídos pelo cliente devem corresponder a um objeto SPN em um controlador de domínio do Active Directory. Isso significa que talvez você precise registrar vários SPNs de uma única instância do Analysis Services para dar conta de todas as situações em que um usuário especificará o nome do host em uma cadeia de conexão. Por exemplo, você provavelmente precisará de dois SPNs para tratar o nome de domínio totalmente qualificado (FQDN) de um servidor e o nome abreviado do computador. Registrar corretamente o SPN do Analysis Services é essencial para uma conexão bem-sucedida. Se o SPN for inexistente, estiver com o formato incorreto ou estiver duplicado, a conexão falhará.

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

O registro de SPN não será exigido se o serviço for executado em uma conta de serviço gerenciado pré-definido criado por um administrador de domínio. Observe que, dependendo do nível funcional do domínio, o registro de um SPN pode solicitar 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 do SPN do Analysis Services

Registro de SPN de uma conta virtual

Registro de SPN de uma conta de domínio

Registro de SPN de uma conta interna

Registro de SPN de uma instância nomeada

Registro de SPN de um cluster SSAS

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

Registro de SPN das instâncias do SSAS que realizam a escuta em portas fixas

Quando o registro de SPN é necessário

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

O registro de SPN é necessário nas seguintes circunstâncias. Para obter informações mais detalhadas, consulte Configure Analysis Services for Kerberos constrained delegation.

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

    Um cenário comum envolvendo a delegação de identidade é configurar serviços de camada intermediária, como os Serviços do Excel ou o Reporting Services, para a 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 um serviço de destino ao configurar os Serviços de Excel ou 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 de tabela usando o modo DirectQuery. Esse é o único cenário em que o Analysis Services delegará a identidade de usuário para outro serviço.

Formato do SPN do Analysis Services

Use setspn para registrar um SPN. Nos 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 Descrição
Classe de serviço O MSOLAPSvc.3 identifica o serviço como uma instância do Analysis Services. O .3 é uma referência à versão do protocolo XMLA sobre TCP/IP usado nas transmissões do Analysis Services. Não está relacionado à versão do produto. Dessa forma, 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 próprio protocolo seja revisado.
Nome do host Identifica o computador no qual o serviço está sendo executado. 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 de NetBIOS de um servidor, use SetupSPN -S para verificar se há registro duplicado. Não há garantia de que os nomes NetBIOS sejam exclusivos em uma floresta e ter um registro de SPN duplicado fará com que a conexão falhe.

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

Nunca crie um SPN usando o endereço IP. O Kerberos usa os recursos de resolução DNS do domínio. A especificação de um endereço IP fará com que esse recurso seja ignorado.
Número da porta Embora o número da porta faça parte da sintaxe do SPN, você nunca especifica um número de porta ao registrar um SPN do Analysis Services. O caractere de dois-pontos (:), normalmente usado para fornecer um número de porta na sintaxe padrão do SPN, é usado pelo Analysis Services para especificar o nome da instância. Para uma instância do Analysis Services, a porta será considerada a 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 através do nome da instância.

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

Observe que a sintaxe para especificar uma instância nomeada do Analysis Services será diferente da usada por outras instâncias do SQL Server. Outros serviços usam uma barra invertida (\) para anexar o nome da instância a um SPN.
Conta do serviço Esta é a conta de inicialização do serviço do Windows MSSQLServerOLAPService . Ela pode ser uma conta de usuário de domínio do Windows, uma conta virtual, uma conta de serviço gerenciado (MSA) 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 usuário@domínio.

Registro de SPN de uma conta virtual

As contas virtuais são o tipo de conta padrão para os 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 implica, essas contas não existem no Active Directory. Uma conta virtual existe somente no computador local. Ao conectar a serviços externos, aplicativos ou dispositivos, a conexão é feita usando a conta da máquina local. Por essa razão, um registro de SPN para o Analysis Services executado em uma conta virtual é na verdade um registro de SPN para a conta do computador.

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

Esse exemplo mostra a sintaxe setspn para a instância padrão do Analysis Services executada na conta virtual padrão. Neste exemplo, o nome do host do computador é AW-SRV01. Conforme observado, o registro de 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 de SPN, um para o nome de host de NetBIOS e um segundo para um nome de domínio totalmente qualificado do host. Diferentes aplicativos clientes usam convenções de nome de host diferentes ao se conectarem ao Analysis Services. Ter dois registros de SPN garante que as duas versões do nome de host sejam consideradas.

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

Esse exemplo mostra a sintaxe setspn para uma instância nomeada executada na conta virtual padrão. Nesse 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 da conta virtual NT Service\MSOLAP$<instance-name>.

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

Registro de SPN de uma conta de domínio

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

Para as instâncias do Analysis Services que são executadas em uma rede ou cluster com carga balanceada de hardware, uma conta de domínio é necessária, com cada instância no cluster executada na mesma conta de domínio.

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

Esse exemplo mostra a sintaxe setspn para a instância padrão do Analysis Services executada na conta do 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ê deverá ver MSOLAPSVC.3/<hostname> na lista.

Registro de SPN de uma conta interna

Embora essa prática não seja recomendada, instalações antigas do Analysis Services são muitas vezes configuradas para serem executadas em contas internas como Network Service, Local Service ou Local System.

Exemplo de sintaxe para uma instância padrão em execução em uma conta interna

O registro de SPN para um serviço que é executado em uma conta interna ou SID por serviço é equivalente à sintaxe do SPN usada para a conta virtual. Em vez do nome da conta, use a conta da máquina:

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

Registro de SPN de uma instância nomeada

Por padrão, as instâncias nomeadas do Analysis Services usam atribuições de porta dinâmica detectadas pelo serviço navegador SQL Server. Você só precisa criar um SPNs NetBIOS e FQDN para a instância nomeada para habilitar 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 para a setspn instância AW-FINANCE nomeada do Analysis Services em execução em uma 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 no 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 navegador SQL Server.

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.

Microsoft Kerberos Configuration Manager for SQL Server é uma ferramenta de diagnóstico que ajuda a solucionar problemas de Kerberos relativos à conectividade com 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 de um cluster SSAS

Para clusters de failover do Analysis Services, o nome de 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 na parte superior de um WSFC existente. Você pode encontrar esse nome no Active Directory. Você também pode encontrá-lo na guiaRecursos de Função do Gerenciador de Cluster | | de Failover. O nome do servidor na guia Recursos é o que deve ser usado como o "nome virtual" no comando SPN.

A sintaxe de 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 são necessários para usar a porta padrão (TCP 2383) e a executar na mesma conta de usuário de domínio de modo que cada nó tenha o mesmo SID. Consulte Como criar clusters de SQL Server Analysis Services para obter mais informações.

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

Dependendo dos requisitos da solução, talvez você tenha configurado o Analysis Services para acesso HTTP. Se a 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 o IIS. Para obter mais informações, consulte "Definir as configurações no computador que executa o IIS" em Como configurar o SQL Server 2008 Analysis Services e o SQL Server 2005 Analysis Services para usar a autenticação Kerberos.

Para fins de registro de SPN da instância do Analysis Services, não há nenhuma diferença entre uma instância configurada para TCP ou HTTP. A conexão ao Analysis Services no IIS, por meio da extensão MSMDPUMP ISAPI, é sempre TCP.

Isso significa que você pode usar as instruções das seções anteriores para que a instância padrão ou nomeada registre o SPN. Ao especificar o nome do host, não deixe de usar o nome do host especificado no arquivo msmdpump.ini ao configurar 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 das instâncias do SSAS que realizam a escuta em portas fixas

Você não pode especificar um número de porta em um registro de 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 o configurou para escutar em uma porta não padrão, não será possível se conectar a essa instância usando Kerberos. Você deve configurá-lo para escutar na porta padrão (TCP 2383) para habilitar conexões Kerberos com essa instância. Uma instância padrão do Analysis Services escutando na porta não padrão só pode aceitar conexões NTLM. Para instâncias nomeadas, você precisa iniciar SQL Server serviço Navegador 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 realizar a escuta 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 Configure the Windows Firewall to Allow Analysis Services Access.

Consulte Também

Autenticação e delegação de identidade do Microsoft BI
Autenticação mútua usando Kerberos
Sintaxe SetSPN (Setspn.exe) de SPNs (nomes de entidade de serviço)
Setspn
Guia passo a passo de contas de serviço
Configurar contas de serviço e permissões do Windows
Como usar os SPNs quando você configura aplicativos Web hospedados em 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)