Use o Kerberos para SSO (logon único) do Power BI para fontes de dados locaisUse Kerberos for SSO (single sign-on) from Power BI to on-premises data sources

Ao configurar o gateway de dados local com o Kerberos, você obterá conectividade ininterrupta de logon único para atualizar os relatórios e os dashboards do Power BI com base em dados locais.You can get seamless single sign-on connectivity, enabling Power BI reports and dashboards to update from on-premises data, by configuring your on-premises data gateway with Kerberos. O gateway de dados local facilita o SSO (logon único) com o DirectQuery, que é usado para a conexão às fontes de dados locais.The on-premises data gateway facilitates single sign-on (SSO) using DirectQuery, which it uses to connect to on-premises data sources.

No momento, as seguintes fontes de dados são compatíveis: SQL Server, SAP HANA e Teradata. Todas elas são baseadas na delegação restrita de Kerberos.The following data sources are currently supported, SQL Server, SAP HANA, and Teradata, all based on Kerberos Constrained Delegation.

  • SQL ServerSQL Server
  • SAP HANASAP HANA
  • TeradataTeradata

Quando um usuário interage com um relatório do DirectQuery no serviço do Power BI, cada operação de filtro cruzado, de fatia, de classificação e de edição de relatório pode resultar em consultas de execução dinâmica com relação à fonte de dados local subjacente.When a user interacts with a DirectQuery report in the Power BI Service, each cross-filter, slice, sorting, and report editing operation can result in queries executing live against the underlying on-premises data source. Quando o logon único é configurado para a fonte de dados, as consultas são executadas na identidade do usuário que interage com o Power BI (isto é, por meio da experiência na Web ou de aplicativos móveis do Power BI).When single sign-on is configured for the data source, queries execute under the identity of the user interacting with Power BI (that is, through the web experience or Power BI mobile apps). Dessa forma, cada usuário vê precisamente os dados para os quais têm permissões na fonte de dados subjacente. Com o logon único configurado, não há cache de dados compartilhados entre usuários diferentes.Thereby, each user sees precisely the data for which they have permissions in the underlying data source – with single sign-on configured, there is no shared data caching across different users.

Executando uma consulta com SSO: etapas em que isso ocorreRunning a query with SSO - steps that occur

Uma consulta executada com SSO é formada por três etapas, conforme mostrado no diagrama a seguir.A query that runs with SSO consists of three steps, as shown in the following diagram.

Observação

SSO para Oracle ainda não está habilitado, mas está em desenvolvimento e será lançado em breve.SSO for Oracle is not enabled yet, but is under development and coming soon.

Veja abaixo mais detalhes sobre essas etapas:Here are additional details about those steps:

  1. Para cada consulta, o serviço do Power BI inclui o nome UPN ao enviar uma solicitação de consulta ao gateway configurado.For each query, the Power BI service includes the user principal name (UPN) when sending a query request to the configured gateway.
  2. O gateway precisa mapear o UPN do Azure Active Directory para uma identidade do Active Directory local.The gateway needs to map the Azure Active Directory UPN to a local Active Directory identity.

    a.a. Se AAD DirSync (também conhecido como AAD Connect) for configurado, o mapeamento funcionará automaticamente no gateway.If AAD DirSync (also known as AAD Connect) is configured, then the mapping works automatically in the gateway.

    b.b. Caso contrário, o gateway pode pesquisar e mapear o UPN do Azure AD para um usuário local ao executar uma pesquisa em relação ao domínio do Active Directory local.Otherwise, the gateway can look up and map the Azure AD UPN to a local user by performing a lookup against the local Active Directory domain.

  3. O processo do serviço do gateway representa o usuário local mapeado, abre a conexão ao banco de dados subjacente e envia a consulta.The gateway service process impersonates the mapped local user, opens the connection to the underlying database and sends the query. O gateway não precisa estar instalado no mesmo computador que o banco de dados.The gateway does not need to be installed on the same machine as the database.

    • A representação e a conexão do usuário ao banco de dados só serão bem-sucedidas se a conta de serviço do gateway for uma conta de domínio (ou SID de serviço), e se a delegação restrita do Kerberos foi configurada para o banco de dados Aceitar tíquetes do Kerberos da conta de serviço do gateway.The user impersonation and connection to the database is only successful if the gateway service account is a domain account (or service SID), and if Kerberos constrained delegation was configured for the database to accept Kerberos tickets from the gateway service account.

    Observação

    Em relação ao sid de serviço, se o AAD DirSync/Connect estiver configurado e as contas de usuário sincronizadas, o serviço de gateway não precisará realizar pesquisas AD adicionais no tempo de execução e você poderá usar o SID de serviço local (em vez de uma conta de domínio) para o serviço de gateway.Regarding the service sid, if AAD DirSync / Connect is configured and user accounts are synchronized, the gateway service does not need perform local AD lookups at runtime, and you can use the local Service SID (instead of requiring a domain account) for the gateway service. As etapas de configuração de delegação restrita de Kerberos descritas neste documento são as mesmas (são simplesmente aplicadas com base no SID do serviço, em vez da conta de domínio).The Kerberos constrained delegation configuration steps outlined in this document are the same (just applied based on the service SID, instead of domain account).

Observação

Para habilitar o SSO para o SAP HANA, você precisa garantir que as seguintes configurações específicas do HANA sejam atendidas para SAP:To enable SSO for SAP HANA, you need to ensure the following HANA-specific configurations are met for SAP:

  1. Certifique-se de que o servidor do SAP HANA esteja executando a versão 2.00.022* ou superior / posterior.Ensure the SAP HANA server is running version 2.00.022* or higher / later.
  2. No computador do gateway, instale o driver ODBC do HANA mais recente do SAP.On the gateway machine, install SAP’s latest HANA ODBC driver. A versão mínima é o HANA ODBC versão 2.00.020.00 de agosto de 2017.The minimum version is HANA ODBC version 2.00.020.00 from August 2017.

Os links a seguir para atualizações e patches do SAP podem ser úteis.The following links to patches and upgrades from SAP may be useful. Observe que você deve fazer logon nos seguintes recursos usando sua conta de suporte do SAP e que o SAP pode alterar ou atualizar esses links.Note that you must log in to the following resources using your SAP Support account, and that SAP may change or update these links.

Erros de configuração insuficiente do KerberosErrors from an insufficient Kerberos configuration

Se o gateway e o servidor de banco de dados subjacente não forem configurados corretamente para a delegação restrita de Kerberos, você receberá a seguinte mensagem de erro:If the underlying database server and gateway are not configured properly for Kerberos Constrained Delegation, you may receive the following error message:

Além disso, os detalhes técnicos associados à mensagem de erro poderão ser parecidos com os seguintes:And the technical details associated with the error message may look like the following:

O resultado é esse porque, devido à configuração insuficiente do Kerberos, o gateway não pôde representar o usuário de origem corretamente e houve falha na tentativa da conexão de banco de dados.The result is that the because of insufficient Kerberos configuration, the gateway could not impersonate the originating user properly, and the database connection attempt failed.

Preparando-se para a delegação restrita de KerberosPreparing for Kerberos Constrained Delegation

Vários itens devem ser configurados para que a delegação restrita de Kerberos funcione corretamente, incluindo os SPNs (nomes das entidades de serviço) e as configurações de delegação nas contas de serviço.Several items must be configured in order for Kerberos Constrained Delegation to work properly, including Service Principal Names (SPN) and delegation settings on service accounts.

Pré-requisito 1: instalar e configurar o gateway de dados localPrerequisite 1: Install & configure the on-premises data gateway

Essa versão do gateway de dados local é compatível com atualização in-loco, bem como com o controle das configurações de gateway existentes.This release of the on-premises data gateway supports an in-place upgrade, as well as settings take-over of existing gateways.

Pré-requisito 2: executar o serviço Windows do gateway como uma conta de domínioPrerequisite 2: Run the gateway Windows service as a domain account

Em uma instalação padrão, o gateway é executado como uma conta de serviço de computador local (especificamente, NT Service\PBIEgwService), conforme mostrado na imagem a seguir:In a standard installation, the gateway runs as a machine-local service account (specifically, NT Service\PBIEgwService) such as what's shown in the following image:

Para habilitar a delegação restrita de Kerberos, o gateway deve ser executado como uma conta de domínio, a menos que o AAD já esteja sincronizado com o Active Directory local (usando o DirSync/Connect do AAD).To enable Kerberos Constrained Delegation, the gateway must run as a domain account, unless your AAD is already synchronized with your local Active Directory (using AAD DirSync/Connect). Para que a alteração de conta funcione corretamente, você tem duas opções:For this account change to work correctly, you have two options:

  • Se você iniciar com uma versão anterior do gateway de dados local, siga precisamente todas as cinco etapas em sequência (incluindo a execução do configurador do gateway na etapa 3), conforme descrito no seguinte artigo:If you started with a previous version of the on-premises data gateway, follow precisely all five steps in sequence (including running the gateway configurator in step 3) described in the following article:

    • Alterando a conta de serviço do gateway para um usuário de domínioChanging the gateway service account to a domain user
    • Caso já tenha instalado a versão prévia do gateway de dados local, há uma nova abordagem guiada por interface do usuário para mudar as contas de serviço diretamente no configurador do gateway.If you already installed the Preview version of the on-premises data gateway, there is a new UI-guided approach to switch service accounts directly from within the gateway’s configurator. Consulte a seção Mudando o gateway para uma conta de domínio próxima ao final deste artigo.See the Switching the gateway to a domain account section near the end of this article.

Observação

Se o AAD DirSync/Connect estiver configurado e as contas de usuário estiverem sincronizadas, o serviço do gateway não precisará executar pesquisas no AD local no tempo de execução e você poderá usar o SID de Serviço local (em vez de uma conta de domínio) para o serviço do gateway.If AAD DirSync / Connect is configured and user accounts are synchronized, the gateway service does not need to perform local AD lookups at runtime, and you can use the local Service SID (instead of requiring a domain account) for the gateway service. As etapas de configuração da delegação restrita de Kerberos descritas neste artigo são as mesmas da configuração (elas são simplesmente aplicadas com base na SID do serviço, em vez da conta de domínio).The Kerberos Constrained Delegation configuration steps outlined in this article are the same as that configuration (they are simply applied based on the service SID, instead of domain account).

Pré-requisito 3: ter direitos de administrador de domínio para configurar definições de SPNs (SetSPN) e da delegação restrita de KerberosPrerequisite 3: Have domain admin rights to configure SPNs (SetSPN) and Kerberos Constrained Delegation settings

Embora seja tecnicamente possível que um administrador de domínio conceda direitos temporários ou permanentes para alguém configurar a delegação de Kerberos e os SPNs sem exigir direitos de administrador de domínio, essa não é a abordagem recomendada.While it is technically possible for a domain administrator to temporarily or permanently allow rights to someone else to configure SPNs and Kerberos delegation, without requiring domain admin rights, that's not the recommended approach. Na seção a seguir, veja em detalhes as etapas de configuração necessárias para o Pré-requisito 3.In the following section, the configuration steps necessary for Pre-requisite 3 in detail.

Configurando a delegação restrita de Kerberos para o gateway e a fonte de dadosConfiguring Kerberos Constrained Delegation for the gateway and data source

Para configurar o sistema corretamente, é preciso configurar ou validar os dois itens a seguir:To properly configure the system, we need to configure or validate the following two items:

  1. Se necessário, configure um SPN para a conta de domínio do serviço do gateway (caso ainda não tenha sido criado).If needed, configure an SPN for the gateway service domain account (if none are created yet).
  2. Defina as configurações de delegação na conta de domínio do serviço do gateway.Configure delegation settings on the gateway service domain account.

Observe que é preciso ser administrador de domínio para executar as duas etapas de configuração.Note that you must be a domain administrator to perform those two configuration steps.

As seções a seguir descrevem essas etapas individualmente.The following sections describe these steps in turn.

Configurar um SPN para a conta de serviço do gatewayConfigure an SPN for the gateway service account

Primeiro, determine se um SPN já foi criado para a conta de domínio usada como a conta de serviço do gateway, mas seguindo estas etapas:First, determine whether an SPN was already created for the domain account used as the gateway service account, but following these steps:

  1. Como administrador de domínio, inicie os Usuários e Computadores do Active DirectoryAs a domain administrator, launch Active Directory Users and Computers
  2. Clique com o botão direito do mouse no domínio, selecione Localizar e digite o nome da conta de serviço do gatewayRight-click on the domain, select Find, and type in the account name of the gateway service account
  3. No resultado da pesquisa, clique com o botão direito do mouse na conta de serviço do gateway e selecione Propriedades.In the search result, right-click on the gateway service account and select Properties.

    • Se a guia Delegação estiver visível na caixa de diálogo Propriedades, será a indicação que um SPN já foi criado e que você poderá pular para a próxima subseção sobre como definir as configurações de Delegação.If the Delegation tab is visible on the Properties dialog, then an SPN was already created and you can jump ahead to the next subsection about configuring Delegation settings.

Se não houver nenhuma guia Delegação na caixa de diálogo Propriedades, você poderá criar manualmente um SPN nessa conta para adicionar a guia Delegação (que é a maneira mais fácil de definir as configurações de delegação).If there is no Delegation tab on the Properties dialog, you can manually create an SPN on that account which adds the Delegation tab (that is the easiest way to configure delegation settings). A criação de um SPN pode ser executada usando a ferramenta setspn fornecida com o Windows (você precisa de direitos de administrador de domínio para criar o SPN).Creating an SPN can be done using the setspn tool that comes with Windows (you need domain admin rights to create the SPN).

Por exemplo, imagine que a conta de serviço do gateway seja “PBIEgwTest\GatewaySvc” e o nome do computador com o serviço do gateway em execução tenha o nome de Machine1.For example, imagine the gateway service account is “PBIEgwTest\GatewaySvc”, and the machine name with the gateway service running is called Machine1. Para definir o SPN para a conta de serviço do gateway desse computador do exemplo, você precisará executar o seguinte comando:To set the SPN for the gateway service account for that machine in this example, you would run the following command:

Com a etapa concluída, podemos prosseguir para as configurações de delegação.With that step completed, we can move on to configuring delegation settings.

Definir as configurações de delegação na conta de serviço do gatewayConfigure delegation settings on the gateway service account

O segundo requisito de configuração são as configurações de delegação na conta de serviço do gateway.The second configuration requirement is the delegation settings on the gateway service account. Há diversas ferramentas que podem ser usadas para realizar essas etapas.There are multiple tools you can use to perform these steps. Neste artigo, usaremos os Usuários e Computadores do Active Directory, que é um snap-in do MMC (Console de Gerenciamento Microsoft) que você pode usar para administrar e publicar informações no diretório e que está disponível nos controladores de domínio por padrão.In this article, we'll use Active Directory Users and Computers, which is a Microsoft Management Console (MMC) snap-in that you can use to administer and publish information in the directory, and available on domain controllers by default. Você também pode habilitá-lo pela configuração do Recurso do Windows em outros computadores.You can also enable it through Windows Feature configuration on other machines.

Precisamos configurar a delegação restrita de Kerberos com o trânsito de protocolos.We need to configure Kerberos Constrained Delegation with protocol transiting. Com a delegação restrita, é preciso ser explícito com os serviços para os quais você deseja delegar, por exemplo, somente o SQL Server ou o servidor SAP HANA aceitará chamadas de delegação da conta de serviço do gateway.With constrained delegation, you must be explicit with which services you want to delegate to – for example, only your SQL Server or your SAP HANA server will accept delegation calls from the gateway service account.

Esta seção considera que você já configurou SPNs para as fontes de dados subjacentes (como SQL Server, SAP HANA, Teradata e assim por diante).This section assumes you have already configured SPNs for your underlying data sources (such as SQL Server, SAP HANA, Teradata, so on). Para saber como configurar os SPNs do servidor da fonte de dados, consulte a documentação técnica do respectivo servidor de banco de dados.To learn how to configure those data source server SPNs, please refer to technical documentation for the respective database server. Você também pode conferir a postagem no blog que descreve Qual SPN seu aplicativo exige?You can also look at the blog post that describes What SPN does your app require?

Nas etapas a seguir, vamos considerar um ambiente local com dois computadores: um computador do gateway e um servidor de banco de dados (banco de dados do SQL Server) e, para este exemplo, também consideraremos as seguintes configurações e nomes:In the following steps we assume an on-premises environment with two machines: a gateway machine and a database server (SQL Server database), and for the sake of this example we'll also assume the following settings and names:

  • Nome do computador do gateway: PBIEgwTestGWGateway machine name: PBIEgwTestGW
  • Conta de serviço do gateway: PBIEgwTest\GatewaySvc (nome de exibição da conta: Conector do Gateway)Gateway service account: PBIEgwTest\GatewaySvc (account display name: Gateway Connector)
  • Nome do computador da fonte de dados do SQL Server: PBIEgwTestSQLSQL Server data source machine name: PBIEgwTestSQL
  • Conta de serviço da fonte de dados do SQL Server: PBIEgwTest\SQLServiceSQL Server data source service account: PBIEgwTest\SQLService

Considerando os nomes e as configurações do exemplo, as etapas de configuração serão as seguintes:Given those example names and settings, the configuration steps are the following:

  1. Com direitos de administrador de domínio, inicie os Usuários e Computadores do Active Directory.With domain administrator rights, launch Active Directory Users and Computers.
  2. Clique com o botão direito do mouse na conta de serviço do gateway (PBIEgwTest\GatewaySvc) e selecione Propriedades.Right-click on the gateway service account (PBIEgwTest\GatewaySvc) and select Properties.
  3. Selecione a guia Delegação.Select the Delegation tab.
  4. Selecione Confiar no computador para delegação apenas a serviços especificados.Select Trust this computer for delegation to specified services only.
  5. Selecione Usar qualquer protocolo de autenticação.Select Use any authentication protocol.
  6. Em 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.
  7. Na caixa de diálogo, selecione Usuários ou computadores.In the new dialog, select Users or Computers.
  8. Insira a conta de serviço do Banco de Dados do SQL Server (PBIEgwTest\SQLService) e selecione OK.Enter the service account for the SQL Server Database service (PBIEgwTest\SQLService) and select OK.
  9. Selecione o SPN que você criou para o servidor de banco de dados.Select the SPN that you created for the database server. Em nosso exemplo, o SPN começará com MSSQLSvc.In our example, the SPN will begin with MSSQLSvc. Se você tiver adicionado o SPN NetBIOS e o FQDN para o serviço de banco de dados, selecione ambos.If you added both the FQDN and the NetBIOS SPN for your database service, select both. Você pode ver apenas um.You may only see one.
  10. Selecione OK.Select OK. Agora você verá o SPN na lista.You should see the SPN in the list now.
  11. Como opção, é possível selecionar Expandido para mostrar o SPN NetBIOS e FQDNOptionally, you can select Expanded to show both the FQDN and NetBIOS SPN in
  12. Se você marcar Expandido, a caixa de diálogo terá aparência semelhante à seguinte.The dialog will look similar to the following if you checked Expanded.

  13. Selecione OK.Select OK.

    Por fim, no computador que executa o serviço do gateway (PBIEgwTestGW em nosso exemplo), a conta de serviço do gateway deverá receber a política local “Representar um cliente após autenticação”.Finally, on the machine running the gateway service (PBIEgwTestGW in our example), the gateway service account must be granted the local policy “Impersonate a client after authentication”. Você poderá executar/verificar isso com o Editor de Política de Grupo Local (gpedit).You can perform/verify this with the Local Group Policy Editor (gpedit).

  14. No computador do gateway, execute: gpedit.mscOn the gateway machine, run: gpedit.msc
  15. Navegue até Política de Computador Local > Configuração do Computador > Configurações do Windows > Configurações de Segurança > Políticas Locais > Atribuição de Direitos de Usuário, conforme mostrado na imagem a seguir.Navigate to Local Computer Policy > Computer Configuration > Windows Settings > Security Settings > Local Policies > User Rights Assignment, as shown in the following image.

  16. Na lista de políticas em Atribuição de Direitos de Usuário, selecione Representar um cliente após autenticação.From the list of policies under User Rights Assignment, select Impersonate a client after authentication.

    Clique com o botão direito do mouse e abra as Propriedades para Representar um cliente após autenticação e verifique a lista de contas.Right-click and open the Properties for Impersonate a client after authentication and check the list of accounts. A conta de serviço do gateway (PBIEgwTest\GatewaySvc) deverá estar incluída nela.It must include the gateway service account (PBIEgwTest\GatewaySvc).

  17. Na lista de políticas em Atribuição de Direitos de Usuário, selecione Atuar como parte do sistema operacional (SeTcbPrivilege).From the list of policies under User Rights Assignment, select Act as part of the operating system (SeTcbPrivilege). Verifique se a conta de serviço do gateway também está incluída na lista de contas.Ensure that the gateway service account is included in the list of accounts as well.
  18. Reinicie o processo do serviço do gateway de dados local.Restart the on-premises data gateway service process.

Executando um relatório do Power BIRunning a Power BI report

Após concluir todas as etapas de configuração descritas neste artigo, você poderá usar a página Gerenciar Gateway no Power BI para configurar a fonte de dados e, nas Configurações Avançadas, habilitar o SSO e publicar relatórios e conjuntos de dados associados à fonte de dados.After all the configuration steps outlined earlier in this article have been completed, you can use the Manage Gateway page in Power BI to configure the data source, and under its Advanced Settings, enable SSO, then publish reports and datasets binding to that data source.

Essa configuração funcionará na maioria dos casos.This configuration will work in most cases. No entanto, dependendo do ambiente, pode haver configurações diferentes com o Kerberos.However, with Kerberos there can be different configurations depending on your environment. Se ainda não for possível carregar o relatório, você precisará contatar o administrador de domínio para investigar o caso.If the report still won't load, you'll need to contact your domain administrator to investigate further.

Mudando o gateway para uma conta de domínioSwitching the gateway to a domain account

Neste artigo, abordaremos como mudar o gateway de uma conta de serviço local para ser executado como uma conta de domínio usando a interface do usuário do gateway de dados local.Earlier in this article, we discussed switching the gateway from a local service account to run as a domain account, using the on-premises data gateway user interface. Veja abaixo as etapas necessárias para fazer isso.Here are the steps necessary to do so.

  1. Inicie a ferramenta de configuração do gateway de dados local.Launch the on-premises data gateway configuration tool.

  2. Selecione o botão Entrar na página principal e entre usando sua conta do Power BI.Select the Sign-in button on the main page, and sign in with your Power BI account.
  3. Em seguida, selecione a guia Configurações do Serviço.After sign-in is completed, select the Service Settings tab.
  4. Clique em Alterar conta para iniciar as instruções passo a passo, conforme mostrado na figura a seguir.Click Change account to start the guided walk-through, as shown in the following figure.

Próximas etapasNext steps

Para obter mais informações sobre o gateway de dados local e o DirectQuery, confira os seguintes recursos:For more information about the on-premises data gateway and DirectQuery, check out the following resources: