Configurar o Kerberos para usar relatórios do Power BIConfigure Kerberos to use Power BI reports

Saiba como configurar seu servidor de relatório para a autenticação Kerberos para fontes de dados usadas em relatórios do Power BI para um ambiente distribuído.Learn how to configure your report server for Kerberos authentication to data sources used within your Power BI reports for a distributed environment.

O Servidor de Relatório do Power BI inclui a capacidade de hospedar relatórios do Power BI.Power BI Report Server includes the ability to host Power BI reports. Várias fontes de dados são compatíveis com o servidor de relatório.Many data sources are supported by your report server. Embora este artigo concentre-se especificamente no SQL Server Analysis Services, você pode usar os conceitos e aplicá-los a outras fontes de dados, como o SQL Server.While this article focuses specificly on SQL Server Analysis Services, you can use the concepts and apply that to other data sources such as SQL Server.

É possível instalar o Servidor de Relatório do Power BI, SQL Server e o Analysis Services em um único computador e tudo deve funcionar sem configuração adicional.You can install Power BI Report Server, SQL Server and Analysis Services on a single machine and everything should work without additional configuration. Isso é ótimo para um ambiente de teste.This is great for a test environment. Talvez ocorram erros se esses serviços estiverem instalados em computadores separados, o que é chamado ambiente distribuído.You may hit errors if you have these services installed on separate machines which is called a distributed environment. Nesse ambiente, é necessário usar a autenticação Kerberos.In this environment, you are required to use Kerberos authentication. Há uma configuração necessária para implementar isso.There is configuration required to implement this.

Especificamente, será necessário configurar a delegação restrita.Specifically, you will need to configure constrained delegation. O Kerberos pode estar configurado em seu ambiente, mas ele não pode ser configurado para a delegação restrita.You may have Kerberos configured in your environment but it may not be configured for constrained delegation.

Erro ao executar o relatórioError running report

Se seu servidor de relatório não estiver configurado corretamente, você receberá o seguinte erro.If your report server is not configured properly, you may receive the following error.

Something went wrong.

We couldn’t run the report because we couldn’t connect to its data source. The report or data source might not be configured correctly. 

Nos detalhes técnicos, você verá a seguinte mensagem.Within Technical details, you will see the following message.

We couldn’t connect to the Analysis Services server. The server forcibly closed the connection. To connect as the user viewing the report, your organization must have configured Kerberos constrained delegation.

Configurando a delegação restrita de KerberosConfiguring Kerberos constrained delegation

Há vários itens que precisam ser configurados para que a delegação restrita de Kerberos funcione.There are several items that need to be configured in order for Kerberos constrained delegation to work. Isso inclui o SPN (Nomes de Entidade de Serviço) e configurações de delegação em contas de serviço.This includes Service Principal Names (SPN) and delegation settings on service accounts.

Observação

Para definir configurar SPNs e definir configurações de delegação, é necessário ser um administrador de domínio.In order to configure SPNs and delegation settings, you need to be a domain administrator.

Será necessário configurar ou validar o seguinte.We will need to configure, or validate, the following.

  1. Tipo de autenticação na configuração do Servidor de Relatório.Authentication type within Report Server config.
  2. SPNs para a conta de serviço do servidor de relatório.SPNs for the report server service account.
  3. SPNs para o serviço do Analysis Services.SPNs for the Analysis Services service.
  4. SPNs para o serviço do SQL Browser no computador do Analysis Services.SPNs for the SQL Browser service on the Analysis Services machine. Isso é apenas para instâncias nomeadas.This is for named instances only.
  5. Configurações de delegação na conta de serviço do servidor de relatório.Delegation settings on the report server service account.

Tipo de autenticação na configuração do Servidor de RelatórioAuthentication type within Report Server configuration

É necessário configurar o tipo de autenticação para que o servidor de relatório possibilite a delegação restrita de Kerberos.We need to configure the authentication type for the report server to allow for Kerberos constrained delegation. Isso é feito dentro do arquivo rsreportserver.config.This is done within the rsreportserver.config file. O local padrão desse arquivo é C:\Program Files\Microsoft Power BI Report Server\PBIRS\ReportServer.The default location for this file is C:\Program Files\Microsoft Power BI Report Server\PBIRS\ReportServer.

No arquivo rsreportserver.config, você encontrará a seção Authentication/AuthenticationTypes.Within the rsreportserver.config file, you will want to fine the Authentication/AuthenticationTypes section.

Queremos garantir que o RSWindowsNegotiate esteja listado e seja o primeiro na lista de tipos de autenticação.We want to make sure that RSWindowsNegotiate is listed and the first in the list of authentication types. Ela deve ser semelhante à seguinte.It should look similar to the following.

<AuthenticationTypes>
    <RSWindowsNegotiate/>
    <RSWindowsNTLM/>
</AuthenticationTypes>

Se fosse necessário alterar o arquivo de configuração, você teria que parar e iniciar o servidor de relatório para garantir que as alterações entrem em vigor.If you had to change the configuration file, you will want to stop and start the report server to make sure the changes take effect.

Para obter mais informações, consulte Configurar a Autenticação do Windows no servidor de relatório.For more information, see Configure Windows Authentication on the Report Server.

SPNs para a conta de serviço do servidor de relatórioSPNs for the report server service account

Em seguida, é necessário garantir que o servidor de relatório tenha SPNs válidos disponíveis.Next, we need to make sure that the report server has valid SPNs available. Isso se baseia na conta de serviço configurada para o servidor de relatório.This is based on the service account that is configured for the report server.

Conta de serviço virtual ou de Serviço de RedeVirtual Service Account or Network Service

Se seu servidor de relatório estiver configurado para a conta Serviço de Rede ou Conta de Serviço Virtual, você não deverá fazer nada.If your report server is configured for the Virtual Service Account or Network Service account, you should not have to do anything. Elas estão no contexto da conta de computador.These are in the context of the machine account. A conta de computador terá SPNs HOST por padrão.The machine account will have HOST SPNs by default. Elas abordarão o serviço HTTP e serão usadas pelo servidor de relatório.These will cover the HTTP service and will be used by the report server.

Se você estiver usando um nome do servidor virtual, que não seja o mesmo que a conta de computador, as entradas HOST não abrangerão você e será necessário adicionar manualmente os SPNs para o nome de host do servidor virtual.If you are using a virtual server name, one that is not same as the machine account, the HOST entries will not cover you and you will need to manually add the SPNs for the virtual server host name.

Conta de usuário de domínioDomain user account

Se seu servidor de relatório estiver configurado para usar uma conta de usuário de domínio, será necessário criar manualmente os SPNs HTTP nessa conta.If your report server is configured to use a domain user account, you will have to manually create HTTP SPNs on that account. Isso pode ser feito usando a ferramenta setspn que vem com o Windows.This can be done using the setspn tool that comes with Windows.

Observação

Será necessário ter direitos de administrador de domínio para criar o SPN.You will need domain admin rights in order to create the SPN.

É recomendável criar dois SPNs.It is recommended to create two SPNs. Um com o nome NetBIOS e outro com o FQDN (nome de domínio totalmente qualificado).One with the NetBIOS name and the other with the fully qualified domain name (FQDN). O SPN deve estar no seguinte formato.The SPN will be in the following format.

<Service>/<Host>:<port>

O Servidor de Relatório do Power BI usará um Serviço de HTTP.Power BI Report Server will use a Service of HTTP. Para SPNs HTTP, você não listará uma porta.For HTTP SPNs you will not list a port. O serviço que estamos interessados aqui é HTTP.The service we are interested in here is HTTP. O host do SPN será o nome usado em uma URL.The host of the SPN will be the name you use in a URL. Normalmente, esse é o nome do computador.Typically, this is the machine name. Se você estiver atrás de um balanceador de carga, isso pode ser um nome virtual.If you are behind a load balancer, this may be a virtual name.

Observação

É possível verificar a URL examinando o que você digitar na barra de endereços do navegador ou é possível procurar no Gerenciador de Configurações do Servidor de Relatório na guia URL do Portal da Web.You can verify the URL by either looking at what you enter into the address bar of the browser, or you can look in the Report Server Configuration Manager on the Web Portal URL tab.

Se o nome do computador for ContosoRS, seus SPNs serão o seguinte.If your machine name is ContosoRS, your SPNs would be the following.

Tipo de SPNSPN Type SPNSPN
FQDN (nome de domínio totalmente qualificado)Fully Qualified Domain Name (FQDN) HTTP/ContosoRS.contoso.comHTTP/ContosoRS.contoso.com
NetBIOSNetBIOS HTTP/ContosoRSHTTP/ContosoRS

Local do SPNLocation of SPN

Então, onde colocar o SPN?So, where do you put the SPN? O SPN será colocado no que você estiver usando para sua conta de serviço.The SPN will be placed on whatever you are using for your service account. Se você estiver usando a Conta de Serviço Virtual ou o Serviço de Rede, isso será a conta do computador.If you are using Virtual Service Account or Network Service, this will be the machine account. No entanto, mencionamos antes que você só deve fazer isso para uma URL virtual.Although we mentioned before you should only need to do this for a virtual URL. Se você estiver usando um usuário de domínio para a conta de serviço do servidor de relatório, coloque o SPN nessa conta de usuário de domínio.If you are using a domain user for the report server service account, then you will place the SPN on that domain user account.

Por exemplo, se estivermos usando a conta de Serviço de Rede e o nome do computador for ContosoRS, colocaremos o SPN em ContosoRS.For example, if we are using the Network Service account and our machine name is ContosoRS, we would place the SPN on ContosoRS.

Se estivermos utilizando uma conta de usuário de domínio de RSService, colocaremos o SPN em RSService.If we are using a domain user account of RSService, we would place the SPN on RSService.

Usando o SetSPN para adicionar o SPNUsing SetSPN to add the SPN

Podemos usar a ferramenta SetSPN para adicionar o SPN.We can use the SetSPN tool to add the SPN. Vamos seguir o mesmo exemplo que o de cima com a conta do computador e a conta de usuário de domínio.We will follow the same example as above with the Machine account and the domain user account.

Colocar o SPN em uma conta de computador para o SPN FQDN e NetBIOS seria semelhante ao seguinte se estivéssemos usando uma URL virtual de contosoreports.Placing the SPN on a machine account, for both the FQDN and NetBIOS SPN, would look similar to the following if we were using a virtual URL of contosoreports.

  Setspn -a HTTP/contosoreports.contoso.com ContosoRS
  Setspn -a HTTP/contosoreports ContosoRS

Colocar o SPN em uma conta de usuário de domínio, para o SPN FQDN e NetBIOS, seria semelhante ao seguinte se estivéssemos usando um nome de computador para o host do SPN.Placing the SPN on a domain user account, for both the FQDN and NetBIOS SPN, would look similar to the following if you were using the machine name for the host of the SPN.

  Setspn -a HTTP/ContosoRS.contoso.com RSService
  Setspn -a HTTP/ContosoRS RSService

SPNs para o serviço do Analysis ServicesSPNs for the Analysis Services service

Os SPNs do Analysis Services são semelhantes ao que fizemos com o Servidor de Relatório do Power BI.The SPNs for Analysis Services are similar to what we did with Power BI Report Server. O formato do SPN será um pouco diferente se você tiver uma instância nomeada.The format of the SPN is a little different if you have a named instance.

Para o Analysis Services, podemos usar um serviço de MSOLAPSvc.3.For Analysis Services, we use a Service of MSOLAPSvc.3. Especificaremos o nome de instância do local da porta no SPN.We will specify the instance name for the port location on the SPN. A parte de host do SPN será o nome do computador ou o nome virtual do Cluster.The host part of the SPN will either be the machine name, or the Cluster virtual name.

Um exemplo de um SPN do Analysis Services teria a seguinte aparência.An example of an Analysis Services SPN would look like the following.

TypeType FormatFormat
Instância padrãoDefault instance MSOLAPSvc.3/ContosoAS.contoso.comMSOLAPSvc.3/ContosoAS.contoso.com
MSOLAPSvc.3/ContosoASMSOLAPSvc.3/ContosoAS
Instância nomeadaNamed instance MSOLAPSvc.3/ContosoAS.contoso.com:INSTANCENAMEMSOLAPSvc.3/ContosoAS.contoso.com:INSTANCENAME
MSOLAPSvc.3/ContosoAS:INSTANCENAMEMSOLAPSvc.3/ContosoAS:INSTANCENAME

A colocação do SPN também é semelhante ao que foi mencionado com o Servidor de Relatório do Power BI.Placement of the SPN is also similar to what was mentioned with Power BI Report Server. Ele se baseia na conta de serviço.It is based on the service account. Se você estiver usando o Sistema Local ou o Serviço de Rede, você estará no contexto da conta de computador.If you are using Local System or Network Service, you will be in the context of the machine account. Se você estiver usando uma conta de usuário de domínio para a instância do Analysis Services, coloque o SPN na conta de usuário de domínio.If you are using a domain user account for the Analysis Services instance, you will place the SPN on the domain user account.

Usando o SetSPN para adicionar o SPNUsing SetSPN to add the SPN

Podemos usar a ferramenta SetSPN para adicionar o SPN.We can use the SetSPN tool to add the SPN. Nesse exemplo, o nome do computador será ContosoAS.For this example, the machine name will be ContosoAS.

Colocar o SPN em uma conta de computador para o SPN FQDN e NetBIOS seria semelhante ao seguinte.Placing the SPN on a machine account, for both the FQDN and NetBIOS SPN, would look similar to the following.

Setspn -a MSOLAPSvc.3/ContosoAS.contoso.com ContosoAS
Setspn -a MSOLAPSvc.3/ContosoAS ContosoAS

Colocar o SPN em uma conta de usuário de domínio, para o SPN FQDN e NetBIOS, seria semelhante ao seguinte.Placing the SPN on a domain user account, for both the FQDN and NetBIOS SPN, would look similar to the following.

Setspn -a MSOLAPSvc.3/ContosoAS.contoso.com OLAPService
Setspn -a MSOLAPSvc.3/ContosoAS OLAPService

SPNs para o serviço SQL BrowserSPNs for the SQL Browser service

Se você tiver uma instância nomeada do Analysis Services, também será necessário certificar-se de que você tem um SPN para o serviço de navegador.If you have an Analysis Services named instance, you also need to make sure you have an SPN for the browser service. Isso é exclusivo do Analysis Services.This is unique to Analysis Services.

Os SPNs do SQL Browser são semelhantes ao que fizemos com o Servidor de Relatório do Power BI.The SPNs for SQL Browser are similar to what we did with Power BI Report Server.

Para o SQL Browser, usamos um serviço de MSOLAPDisco.3.For SQL Browser, we use a Service of MSOLAPDisco.3. Especificaremos o nome de instância do local da porta no SPN.We will specify the instance name for the port location on the SPN. A parte de host do SPN será o nome do computador ou o nome virtual do Cluster.The host part of the SPN will either be the machine name, or the Cluster virtual name. Não é necessário especificar nada para a porta ou o nome da instância.You do not have to specify anything for the instance name or port.

Um exemplo de um SPN do Analysis Services teria a seguinte aparência.An example of an Analysis Services SPN would look like the following.

MSOLAPDisco.3/ContosoAS.contoso.com
MSOLAPDisco.3/ContosoAS

A colocação do SPN também é semelhante ao que foi mencionado com o Servidor de Relatório do Power BI.Placement of the SPN is also similar to what was mentioned with Power BI Report Server. A diferença é que o SQL Browser sempre é executado na conta do Sistema Local.The difference here is that SQL Browser always runs under the Local System account. Isso significa que os SPNs sempre vão na conta do computador.This means that the SPNs will always go on the machine account.

Usando o SetSPN para adicionar o SPNUsing SetSPN to add the SPN

Podemos usar a ferramenta SetSPN para adicionar o SPN.We can use the SetSPN tool to add the SPN. Nesse exemplo, o nome do computador será ContosoAS.For this example, the machine name will be ContosoAS.

Colocar o SPN na conta de computador para o SPN FQDN e NetBIOS seria semelhante ao seguinte.Placing the SPN on the machine account, for both the FQDN and NetBIOS SPN, would look similar to the following.

Setspn -a MSOLAPDisco.3/ContosoAS.contoso.com ContosoAS
Setspn -a MSOLAPDisco.3/ContosoAS ContosoAS

Para obter mais informações, consulte Um SPN do serviço SQL Server Browser é necessário.For more information, see An SPN for the SQL Server Browser service is required.

Configurações de delegação na conta de serviço do servidor de relatórioDelegation settings on the report server service account

A última parte que precisamos configurar são as configurações de delegação da conta de serviço do servidor de relatório.The last part that we have to configure are the delegation settings on the report server service account. Há diferentes ferramentas que podem ser usadas para seguir essas etapas.There are different tools you can use to perform these steps. Para os fins deste documento, continuaremos com os Usuários e Computadores do Active Directory.For the purposes of this document, we will stick with Active Directory Users and Computers.

Será necessário iniciar indo para as propriedades de conta de serviço do servidor de relatório nos Usuários e Computadores do Active Directory.You will need to start by going to the properties of the report server service account within Active Directory Users and Computers. Essa será a conta do computador, se você usou a Conta de Serviço Virtual ou o Serviço de Rede ou será uma conta de usuário de domínio.This will either be the machine account, if you used Virtual Service Account or Network Service, or it will be a domain user account.

Configure a delegação restrita com o trânsito de protocolos.We will want to configure constrained delegation with protocol transiting. Com a delegação restrita, é necessário ser explícito com relação a quais serviços queremos delegar.With constrained delegation, you need to be explicit with which services we want to delegate to. Adicionaremos o SPN de serviço do Analysis Services e o SPN do SQL Browser à lista à qual o Servidor de Relatório do Power BI pode delegar.We will go and add both the Analysis Services service SPN and the SQL Browser SPN to the list that Power BI Report Server can delegate to.

  1. Clique com o botão direito do mouse na conta de serviço do servidor de relatório e selecione Propriedades.Right click on the report server service account and select Properties.
  2. Selecione a guia Delegação.Select the Delegation tab.
  3. Selecione Confiar no computador para delegação apenas a serviços especificados.Select Trust this computer for delegation to specified services only.
  4. Selecione Usar qualquer protocolo de autenticação.Select Use any authentication protocol.
  5. Nos Serviços aos quais esta conta pode apresentar credenciais delegadas: selecione Adicionar.Under the Services to which this account can present delegated credentials: select Add.
  6. Na caixa de diálogo, selecione Usuários ou computadores.In the new dialog, select Users or Computers.
  7. Insira a conta de serviço para o serviço do Analysis Services e selecione Ok.Enter the service account for the Analysis Services service and select Ok.
  8. Selecione o SPN criado.Select the SPN that you created. Ele começará com MSOLAPSvc.3.It will begin with MSOLAPSvc.3. Se você adicionou o FQDN e o SPN NetBIOS, ele selecionará ambos.If you added both the FQDN and the NetBIOS SPN, it will select both. Você pode ver apenas um.You may only see one.
  9. Selecione OK.Select OK. Agora você verá o SPN na lista.You should see the SPN in the list now.
  10. Ou é possível selecionar Expandido para mostrar o SPN FQDN e NetBIOS na lista.Optionally, you can select Expanded to show both the FQDN and NetBIOS SPN in the list.
  11. Selecione Adicionar novamente.Select Add again. Agora, adicionaremos o SPN do SQL Browser.We will add the SQL Browser SPN now.
  12. Na caixa de diálogo, selecione Usuários ou computadores.In the new dialog, select Users or Computers.
  13. Insira o nome do computador para o computador no qual o serviço SQL Browser está e selecione Ok.Enter the Machine name for the machine the SQL Browser service is on and select Ok.
  14. Selecione o SPN criado.Select the SPN that you created. Ele começará com MSOLAPDisco.3.It will begin with MSOLAPDisco.3. Se você adicionou o FQDN e o SPN NetBIOS, ele selecionará ambos.If you added both the FQDN and the NetBIOS SPN, it will select both. Você pode ver apenas um.You may only see one.
  15. Selecione OK.Select Ok. A caixa de diálogo deverá ter aparência semelhante à seguinte, se você tiver marcado Expandido.The dialog should look similar to the following if you checked Expanded.

  16. Selecione OK.Select Ok.
  17. Reinicializar o Servidor de Relatório do Power BI.Reboot the Power BI Report Server.

Executando um Relatório do Power BIRunning a Power BI Report

Depois que todas as configurações acima estiverem em vigor, o relatório deverá ser exibido corretamente.After all of the above configuration is in place, your report should display properly.

Embora essa configuração deva funcionar na maioria dos casos, com Kerberos, pode haver configurações diferentes dependendo do seu ambiente.While this configuration should work in most cases, with Kerberos, there can be different configuration depending on your environment. Se o relatório ainda não for carregado, contate o suporte ou o seu administrador de domínio para investigar mais.If the report will still not load, you will want to reach out to your domain administrator to investigate further or contact support.

Próximas etapasNext steps

Manual do administradorAdministrator handbook
Início rápido: instalar o Servidor de Relatório do Power BIQuickstart: Install Power BI Report Server

Mais perguntas?More questions? Experimente perguntar à Comunidade do Power BITry asking the Power BI Community