Inserir conteúdo do Power BI com principal de serviço e um segredo de aplicativo

A Entidade de Serviço é um método de autenticação que pode ser usado para permitir que um aplicativo Microsoft Entra acesse conteúdo e APIs do serviço Power BI.

Quando você cria um aplicativo do Microsoft Entra, um objeto da entidade de serviço é criado. O objeto de entidade de serviço, também conhecido simplesmente como entidade de serviço, permite que o Microsoft Entra ID autentique seu aplicativo. Depois de autenticado, o aplicativo poderá acessar os recursos de locatário do Microsoft Entra.

Para se autenticar, o principal de serviço usa a ID do aplicativo do Microsoft Entra e um dos seguintes:

  • Um certificado
  • Um segredo do aplicativo

Este artigo descreve a autenticação da entidade de serviço usando uma ID de aplicativo e um segredo de aplicativo.

Observação

Recomendamos que você proteja os seus serviços de back-end usando certificados, em vez de chaves secretas.

Método

Para usar um principal de serviço e uma ID do aplicativo para análise incorporada, siga estas etapas. As seções subsequentes descrevem essas etapas em detalhes.

  1. Crie um aplicativo do Microsoft Entra.

    1. Crie um segredo para seu aplicativo do Microsoft Entra.
    2. Obtenha a ID do aplicativo e o segredo do aplicativo.

    Observação

    Todas essas etapas são descritas na etapa 1. Para obter mais informações sobre como criar um aplicativo do Microsoft Entra, consulte criar um aplicativo do Microsoft Entra.

  2. Crie um grupo de segurança do Microsoft Entra.

  3. Habilite as configurações de administração do serviço do Power BI.

  4. Adicione a entidade de serviço ao seu espaço de trabalho.

  5. Insira seu conteúdo.

Importante

Um aplicativo do Microsoft Entra não requer que você configure nenhuma permissão delegada nem permissão de aplicativo no portal do Azure se tiver sido criado para uma entidade de serviço. Ao criar um aplicativo do Microsoft Entra para uma entidade de serviço acessar a API REST do Power BI, recomendamos que você evite adicionar permissões. Elas nunca são usadas e podem causar erros difíceis de solucionar.

Etapa 1 - Criar um aplicativo do Microsoft Entra

Você pode criar um aplicativo do Microsoft Entra no portal do Azure ou usando o PowerShell:

Para criar um aplicativo do Microsoft Entra e um segredo no portal do Azure, siga as instruções em Registrar seu aplicativo.

Observação

Depois de sair dessa janela, o valor do segredo do cliente fica oculto e você não pode visualizá-lo ou copiá-lo novamente.

Etapa 2 - Criar um grupo de segurança do Microsoft Entra

Sua entidade de serviço não tem acesso a nenhum conteúdo nem às APIs do Power BI. Para conceder acesso ao service principal, crie um grupo de segurança no Microsoft Entra ID. Em seguida, adicione a entidade de serviço que você criou a esse grupo de segurança.

Observação

Se você quiser habilitar o acesso à entidade de serviço para toda a organização, ignore esta etapa.

Há duas maneiras de criar um grupo de segurança do Microsoft Entra:

Criar manualmente um grupo de segurança

Para criar um grupo de segurança do Azure manualmente, siga as instruções em Criar um grupo básico. Não adicione membros ao grupo neste momento.

Criar um grupo de segurança usando o PowerShell

O script de exemplo a seguir cria um novo grupo de segurança. Ele também adiciona a entidade de serviço que você criou anteriormente ao novo grupo de segurança.

  • Antes de executar o script, substitua <app-client-ID> pela ID do cliente que você registrou anteriormente para seu novo aplicativo.
  • Depois de executar o script, anote a ID do objeto do novo grupo de segurança, que você pode encontrar na saída do script.
# Sign in as an admin.
Connect-MgGraph -Scopes "Application.ReadWrite.All"

# Get the service principal that you created earlier.
$servicePrincipal = Get-MgServicePrincipal -Filter "AppId eq '<app-client-ID>'"

# Create a Microsoft Entra security group.
$group = New-MgGroup -DisplayName "securitygroup1" -SecurityEnabled -MailEnabled:$False -MailNickName "notSet"
Write-Host "Object ID of new security group: " $($group.Id)

# Add the service principal to the group.
New-MgGroupMember -GroupId $($group.Id) -DirectoryObjectId $($servicePrincipal.Id)

Etapa 3 – Habilitar as configurações de administração do serviço do Power BI

Para um aplicativo do Microsoft Entra acessar o conteúdo e as APIs do Power BI, um administrador de Power BI precisa habilitar a seguinte configuração:

  • Inserir conteúdo em aplicativos
  • Permitir que as entidades de serviço usem APIs do Power BI

No Portal de Administração do Power BI, acesse Configurações de locatário e role para baixo até Configurações do desenvolvedor.

  • Habilite Inserir conteúdo em aplicativos para toda a organização ou para o grupo de segurança específico criado no Microsoft Entra ID.

    Captura de tela das Configurações do desenvolvedor na seção Configurações de locatário do Portal de administração. A opção para inserir conteúdo nos aplicativos está ativada.

  • Habilite Permitir que as entidades de serviço usem as APIs do Power BI para toda a organização ou para o grupo de segurança específico criado no Microsoft Entra ID. Para obter mais informações, consulte As entidades de serviço podem chamar APIs públicas do Fabric.

    Captura de tela da seção Configurações do desenvolvedor. A opção para permitir que as entidades de serviço usem APIs do Power BI está ativada para um grupo de segurança.

    Importante

    As entidades de serviço têm acesso a quaisquer configurações de locatário para as quais estejam habilitadas. Dependendo das configurações de administrador, isso inclui grupos de segurança específicos ou de toda a organização.

    Para restringir o acesso da entidade de serviço a configurações de locatário específicas, permita o acesso apenas a grupos de segurança específicos. Como alternativa, você pode criar um grupo de segurança dedicado para entidades de serviço e excluí-lo das configurações de locatário desejadas.

Etapa 4 – Adicione a entidade de serviço ao seu workspace

Seu aplicativo Microsoft Entra pode acessar seus relatórios, dashboards e modelos semânticos do Power BI somente quando tiver acesso ao seu espaço de trabalho do Power BI como membro ou administrador. Você fornece esse acesso adicionando a entidade de serviço do aplicativo ou seu grupo de segurança ao seu workspace.

Há três maneiras de adicionar uma entidade de serviço ou seu grupo de segurança ao seu espaço de trabalho:

Adicionar uma entidade de serviço ou um grupo de segurança manualmente

  1. No serviço do Power BI, role até o workspace para o qual você deseja habilitar o acesso. Em seu menu Mais, selecione Acesso do workspace.

    Captura de tela que mostra o menu Mais expandido de um espaço de trabalho. Nesse menu, Acesso ao espaço de trabalho está realçado.

  2. No painel Acesso, em Adicionar administradores, membros ou colaboradores, adicione um dos seguintes:

    • Sua entidade de serviço. O nome da entidade de serviço é o nome de exibição do seu aplicativo Microsoft Entra, como ele aparece na guia Visão geral do seu aplicativo Microsoft Entra.
    • O grupo de segurança que inclui sua entidade de serviço.
  3. No menu suspenso, selecione Membro ou Administrador.

  4. Selecione Adicionar.

Adicionar uma entidade de serviço ou um grupo de segurança usando o PowerShell

As seções a seguir fornecem scripts de exemplo em PowerShell para adicionar uma entidade de serviço e um grupo de segurança como membro de um espaço de trabalho do Power BI.

Adicionar uma entidade de serviço como membro do workspace usando o PowerShell

O script abaixo adiciona um principal de serviço como membro do espaço de trabalho. Antes de executar o script:

  • Substitua <service-principal-object-ID> pela ID de objeto que você registrou anteriormente para sua nova entidade de serviço.
  • Substitua <workspace-name> pelo nome do espaço de trabalho ao qual deseja conceder acesso ao principal de serviço.
# Sign in to Power BI.
Login-PowerBI

# Set up the service principal ID.
$SPObjectID = "<service-principal-object-ID>"

# Get the workspace.
$pbiWorkspace = Get-PowerBIWorkspace -Filter "name eq '<workspace-name>'"

# Add the service principal to the workspace.
Add-PowerBIWorkspaceUser -Id $($pbiWorkspace.Id) -AccessRight Member -PrincipalType App -Identifier $($SPObjectID)

Adicionar um grupo de segurança como um membro do workspace usando o PowerShell

O script a seguir adiciona um grupo de segurança como um membro do workspace. Antes de executar o script:

  • Substitua <security-group-object-ID> pela ID de objeto que você registrou anteriormente para seu novo grupo de segurança.
  • Substitua <workspace-name> pelo nome do workspace ao qual você gostaria de conceder acesso ao grupo de segurança.
# Sign in to Power BI.
Login-PowerBI

# Set up the security group object ID.
$SGObjectID = "<security-group-object-ID>"

# Get the workspace.
$pbiWorkspace = Get-PowerBIWorkspace -Filter "name eq '<workspace-name>'"

# Add the security group to the workspace.
Add-PowerBIWorkspaceUser -Id $($pbiWorkspace.Id) -AccessRight Member -PrincipalType Group -Identifier $($SGObjectID)

Etapa 5 – Inserir seu conteúdo

Você pode inserir o conteúdo em um aplicativo de exemplo ou no próprio aplicativo.

Depois de inserir o conteúdo, você estará pronto para passar para a produção.

Observação

Para proteger seu conteúdo usando um certificado, siga as etapas descritas em Inserir conteúdo do Power BI com a entidade de serviço e um certificado.

Considerações e limitações

  • Meu Espaço de Trabalho não é compatível com o uso de service principal.
  • É necessário ter capacidade na migração para produção.
  • Você não pode fazer login no portal do Power BI usando um service principal.
  • Permissões de administrador do Power BI são necessárias para habilitar o service principal nas configurações de desenvolvedor no portal de administração do Power BI.
  • Os aplicativos de Inserção para sua organização não podem usar a entidade de serviço principal.
  • Não há suporte para gerenciamento de fluxos de dados.
  • Nem todas as APIs somente de leitura têm suporte para uso com uma entidade de serviço. Para habilitar o suporte a service principal para APIs administrativas somente leitura, habilite as configurações de administrador do serviço do Power BI no seu locatário. Para obter mais informações, confira Habilitar a autenticação de entidade de serviço para APIs de administração somente leitura.
  • Quando você usa uma entidade de serviço com uma fonte de dados do Azure Analysis Services, a própria entidade de serviço precisa ter permissões de uma instância do Azure Analysis Services. O uso de um grupo de segurança que contenha a entidade de serviço para essa finalidade não funciona.