Configurar Kerberos para usar relatórios do Power BI
Saiba como configurar seu servidor de relatório para autenticação Kerberos em fontes de dados usadas em seus relatórios do Power BI para um ambiente distribuído.
O Servidor de Relatórios do Power BI inclui a capacidade de hospedar relatórios do Power BI. Muitas fontes de dados são suportadas pelo servidor de relatório. Embora este artigo se concentre especificamente no SQL Server Analysis Services, você pode usar os conceitos e aplicá-los a outras fontes de dados, como o SQL Server.
Você pode instalar o Servidor de Relatório do Power BI, o SQL Server e o Analysis Services em uma única máquina e tudo deve funcionar sem configuração adicional. Isso é ótimo para um ambiente de teste. Você pode cometer erros se tiver esses serviços instalados em máquinas separadas, o que é chamado de ambiente distribuído. Nesse ambiente, é necessário usar a autenticação Kerberos. Há uma configuração necessária para implementar isso.
Especificamente, você precisará configurar a delegação restrita. Você pode ter o Kerberos configurado em seu ambiente, mas ele pode não estar configurado para delegação restrita.
Relatório de erro ao executar
Se o servidor de relatório não estiver configurado corretamente, você poderá receber o seguinte erro.
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.
Em Detalhes técnicos, você verá a seguinte mensagem.
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 Kerberos
Há vários itens que precisam ser configurados para que a delegação restrita de Kerberos funcione. Isso inclui SPN (Nomes da Entidade de Serviço) e configurações de delegação em contas de serviço.
Nota
Para definir SPNs e configurações de delegação, você precisa ser um administrador de domínio.
Precisaremos configurar, ou validar, o seguinte.
- Tipo de autenticação na configuração do Servidor de Relatório.
- SPNs para a conta de serviço do servidor de relatório.
- SPNs para o serviço Analysis Services.
- SPNs para o serviço Navegador SQL na máquina do Analysis Services. Isso é apenas para instâncias nomeadas.
- Configurações de delegação na conta de serviço do servidor de relatório.
Tipo de autenticação na configuração do Servidor de Relatório
Precisamos configurar o tipo de autenticação para o servidor de relatório para permitir a delegação restrita de Kerberos. Isso é feito dentro do arquivo rsreportserver.config . O local padrão para este arquivo é C:\Program Files\Microsoft Power BI Report Server\PBIRS\ReportServer
.
Dentro do arquivo rsreportserver.config, você desejará multar a seção Authentication/AuthenticationTypes .
Queremos ter certeza de que RSWindowsNegotiate está listado e é o primeiro na lista de tipos de autenticação. Deve ter um aspeto semelhante ao seguinte.
<AuthenticationTypes>
<RSWindowsNegotiate/>
<RSWindowsNTLM/>
</AuthenticationTypes>
Se você tiver que alterar o arquivo de configuração, convém parar e iniciar o servidor de relatório para garantir que as alterações entrem em vigor.
Para obter mais informações, consulte Configurar a autenticação do Windows no servidor de relatório.
SPNs para a conta de serviço do servidor de relatório
Em seguida, precisamos verificar se o servidor de relatório tem SPNs válidos disponíveis. Isso se baseia na conta de serviço configurada para o servidor de relatório.
Conta de Serviço Virtual ou Serviço de Rede
Se o servidor de relatório estiver configurado para a Conta de Serviço Virtual ou a conta de Serviço de Rede, não será necessário fazer nada. Estes estão no contexto da conta da máquina. A conta da máquina terá SPNs HOST por padrão. Eles cobrirão o serviço HTTP e serão usados pelo servidor de relatório.
Se você estiver usando um nome de servidor virtual, que não seja o mesmo que a conta da máquina, as entradas HOST não cobrirão você e você precisará adicionar manualmente os SPNs para o nome do host do servidor virtual.
Conta de utilizador de domínio
Se o servidor de relatório estiver configurado para usar uma conta de usuário de domínio, será necessário criar manualmente SPNs HTTP nessa conta. Isso pode ser feito usando a ferramenta setspn que vem com o Windows.
Nota
Você precisará de direitos de administrador de domínio para criar o SPN.
Recomenda-se a criação de dois SPNs. Um com o nome NetBIOS e outro com o nome de domínio totalmente qualificado (FQDN). O SPN terá o seguinte formato.
<Service>/<Host>:<port>
O Servidor de Relatório do Power BI usará um Serviço de HTTP. Para SPNs HTTP, você não listará uma porta. O serviço que nos interessa aqui é HTTP. O host do SPN será o nome que você usa em uma URL. Normalmente, este é o nome da máquina. Se você estiver atrás de um balanceador de carga, esse pode ser um nome virtual.
Nota
Você pode verificar a URL observando o que você insere na barra de endereço do navegador ou pode procurar no Gerenciador de Configuração do Servidor de Relatório na guia URL do Portal da Web.
Se o nome da sua máquina for ContosoRS, seus SPNs serão os seguintes.
Tipo SPN | SPN |
---|---|
Nome de Domínio Completamente Qualificado (FQDN) | HTTP/ContosoRS.contoso.com |
NetBIOS | HTTP/ContosoRS |
Localização do SPN
Então, onde você coloca o SPN? O SPN será colocado no que você estiver usando para sua conta de serviço. Se estiver a utilizar a Conta de Serviço Virtual ou o Serviço de Rede, esta será a conta da máquina. Embora tenhamos mencionado antes, você só precisa fazer isso para uma URL virtual. Se você estiver usando um usuário de domínio para a conta de serviço do servidor de relatório, colocará o SPN nessa conta de usuário de domínio.
Por exemplo, se estivermos usando a conta do Serviço de Rede e nosso nome de máquina for ContosoRS, colocaremos o SPN em ContosoRS.
Se estivermos usando uma conta de usuário de domínio de RSService, colocaremos o SPN em RSService.
Usando SetSPN para adicionar o SPN
Podemos usar a ferramenta SetSPN para adicionar o SPN. Seguiremos o mesmo exemplo acima com a conta de máquina e a conta de usuário de domínio.
Colocar o SPN em uma conta de máquina, tanto para o FQDN quanto para o SPN NetBIOS, seria semelhante ao seguinte se estivéssemos usando uma URL virtual de 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, tanto para o FQDN quanto para o SPN NetBIOS, seria semelhante ao seguinte se você estivesse usando o nome da máquina para o host do SPN.
Setspn -S HTTP/ContosoRS.contoso.com RSService
Setspn -S HTTP/ContosoRS RSService
SPNs para o serviço Analysis Services
Os SPNs do Analysis Services são semelhantes ao que fizemos com o Servidor de Relatório do Power BI. O formato do SPN é um pouco diferente se você tiver uma instância nomeada.
Para o Analysis Services, usamos um Serviço do MSOLAPSvc.3. Especificaremos o nome da instância para o local da porta no SPN. A parte do host do SPN será o nome da máquina ou o nome virtual do cluster.
Um exemplo de um SPN do Analysis Services seria semelhante ao seguinte.
Tipo | Formato |
---|---|
Instância predefinida | MSOLAPSvc.3/ContosoAS.contoso.com MSOLAPSvc.3/ContosoAS |
Instância com nome | MSOLAPSvc.3/ContosoAS.contoso.com:INSTANCENAME MSOLAPSvc.3/ContosoAS:INSTANCENAME |
O posicionamento do SPN também é semelhante ao que foi mencionado com o Servidor de Relatório do Power BI. Baseia-se na conta de serviço. Se você estiver usando o Sistema Local ou o Serviço de Rede, estará no contexto da conta da máquina. Se você estiver usando uma conta de usuário de domínio para a instância do Analysis Services, colocará o SPN na conta de usuário do domínio.
Usando SetSPN para adicionar o SPN
Podemos usar a ferramenta SetSPN para adicionar o SPN. Neste exemplo, o nome da máquina será ContosoAS.
Colocar o SPN em uma conta de máquina, tanto para o FQDN quanto para o NetBIOS SPN, seria semelhante ao seguinte.
Setspn -S MSOLAPSvc.3/ContosoAS.contoso.com ContosoAS
Setspn -S MSOLAPSvc.3/ContosoAS ContosoAS
Colocar o SPN em uma conta de usuário de domínio, tanto para o FQDN quanto para o NetBIOS SPN, seria semelhante ao seguinte.
Setspn -S MSOLAPSvc.3/ContosoAS.contoso.com OLAPService
Setspn -S MSOLAPSvc.3/ContosoAS OLAPService
SPNs para o serviço Navegador SQL
Se você tiver uma instância nomeada do Analysis Services, também precisará certificar-se de que tem um SPN para o serviço de navegador. Isso é exclusivo do Analysis Services.
Os SPNs para o Navegador SQL são semelhantes ao que fizemos com o Servidor de Relatório do Power BI.
Para o Navegador SQL, usamos um Serviço de MSOLAPDisco.3. Especificaremos o nome da instância para o local da porta no SPN. A parte do host do SPN será o nome da máquina ou o nome virtual do cluster. Não é necessário especificar nada para o nome da instância ou porta.
Um exemplo de um SPN do Analysis Services seria semelhante ao seguinte.
MSOLAPDisco.3/ContosoAS.contoso.com
MSOLAPDisco.3/ContosoAS
O posicionamento do SPN também é semelhante ao que foi mencionado com o Servidor de Relatório do Power BI. A diferença aqui é que o Navegador SQL sempre é executado na conta Sistema Local. Isso significa que os SPNs sempre irão para a conta da máquina.
Usando SetSPN para adicionar o SPN
Podemos usar a ferramenta SetSPN para adicionar o SPN. Neste exemplo, o nome da máquina será ContosoAS.
Colocar o SPN na conta da máquina, tanto para o FQDN quanto para o NetBIOS SPN, seria semelhante ao seguinte.
Setspn -S MSOLAPDisco.3/ContosoAS.contoso.com ContosoAS
Setspn -S MSOLAPDisco.3/ContosoAS ContosoAS
Para obter mais informações, consulte É necessário um SPN para o serviço Navegador do SQL Server.
Configurações de delegação na conta de serviço do servidor de relatório
A última parte que precisamos configurar são as configurações de delegação na conta de serviço do servidor de relatório. Há diferentes ferramentas que você pode usar para executar essas etapas. Para os fins deste documento, ficaremos com Usuários e Computadores do Ative Directory.
Você precisará começar indo para as propriedades da conta de serviço do servidor de relatório em Usuários e Computadores do Ative Directory. Esta será a conta da máquina, se você usou a Conta de Serviço Virtual ou Serviço de Rede, ou será uma conta de usuário de domínio.
Desejaremos configurar a delegação restrita com o protocolo de trânsito. Com a delegação restrita, você precisa ser explícito com quais serviços queremos delegar. Adicionaremos o SPN de serviço do Analysis Services e o SPN do Navegador SQL à lista à qual o Servidor de Relatório do Power BI pode delegar.
Clique com o botão direito do mouse na conta de serviço do servidor de relatório e selecione Propriedades.
Selecione a guia Delegação .
Selecione Confiar neste computador para delegação apenas a serviços especificados.
Selecione Usar qualquer protocolo de autenticação.
Em Serviços aos quais esta conta pode apresentar credenciais delegadas: selecione Adicionar.
Na nova caixa de diálogo, selecione Usuários ou Computadores.
Insira a conta de serviço para o serviço Analysis Services e selecione Ok.
Selecione o SPN que você criou. Começará com
MSOLAPSvc.3
. Se você adicionou o FQDN e o SPN NetBIOS, ele selecionará ambos. Você só pode ver um.Selecione OK. Você deve ver o SPN na lista agora.
Opcionalmente, você pode selecionar Expandido para mostrar o FQDN e o SPN NetBIOS na lista.
Selecione Adicionar novamente. Vamos adicionar o SPN do navegador SQL agora.
Na nova caixa de diálogo, selecione Usuários ou Computadores.
Digite o nome da máquina para a máquina em que o serviço Navegador SQL está e selecione Ok.
Selecione o SPN que você criou. Começará com
MSOLAPDisco.3
. Se você adicionou o FQDN e o SPN NetBIOS, ele selecionará ambos. Você só pode ver um.Selecione OK. A caixa de diálogo deve ser semelhante à seguinte se você marcou Expandido.
Selecione OK.
Reinicialize o Servidor de Relatório do Power BI.
Executando um relatório do Power BI
Depois que toda a configuração acima estiver em vigor, seu relatório deverá ser exibido corretamente.
Embora essa configuração deva funcionar na maioria dos casos, com Kerberos, pode haver configurações diferentes dependendo do seu ambiente. Se o relatório ainda não for carregado, entre em contato com o administrador do domínio para investigar mais ou entre em contato com o suporte.
Conteúdos relacionados
Tem dúvidas? Tente perguntar à Comunidade do Power BI