Conteúdo inserido do Power BI com a entidade de serviço e um segredo do aplicativo
A entidade de serviço é um método de autenticação que pode ser usado para permitir que o aplicativo Microsoft Entra acesse o conteúdo e as APIs do serviço do Power BI.
Quando você cria um aplicativo do Microsoft Entra, um objeto da entidade de serviço é criado. O objeto da entidade de serviço, também conhecida 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 fazer a autenticação, a entidade de serviço usa a ID do Aplicativo no Microsoft Entra e uma das opções a seguir:
- 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.
- Saiba mais sobre como obter tokens de acesso do Microsoft Entra ID usando chaves secretas ou certificados.
- Para proteger sua solução usando um certificado, siga as instruções neste artigo e as etapas descritas em Inserir conteúdo do Power BI com a entidade de serviço e um certificado.
Método
A fim de usar a entidade de serviço e uma ID de aplicativo para uma análise integrada, siga as etapas a seguir. As seções subsequentes descrevem essas etapas em detalhes.
Crie um aplicativo do Microsoft Entra.
- Crie um segredo para seu aplicativo do Microsoft Entra.
- 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.
Crie um grupo de segurança do Microsoft Entra.
Habilite as configurações de administração do serviço do Power BI.
Adicione a entidade de serviço ao seu espaço de trabalho.
Insira seu conteúdo.
Importante
Um aplicativo do Microsoft Entra não exige que você configure nenhuma permissão delegada ou de aplicativo no portal do Azure quando ele foi 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
Crie um aplicativo do Microsoft Entra usando um destes métodos:
Criar um aplicativo do Microsoft Entra no portal do Azure
Entre no portal do Azure.
Localize e selecione Registros de aplicativo.
Selecione Novo registro.
Preencha as informações obrigatórias:
- Nome – digite um nome para seu aplicativo.
- Tipos de conta com suporte – selecione os tipos de conta com suporte.
- (Opcional) URI de redirecionamento – insira um URI, se necessário.
Selecione Registrar.
Após registrar seu aplicativo, a ID do Aplicativo estará disponível na guia Visão geral. Copie e salve a ID do Aplicativo para uso posterior.
Selecione Certificados e segredos.
Selecione Novo segredo do cliente.
Na janela Adicionar um segredo do cliente, insira uma descrição, especifique quando deseja que o segredo do cliente expire e selecione Adicionar.
Copie e salve o valor do segredo do cliente.
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.
Crie um aplicativo do Microsoft Entra usando o PowerShell
O exemplo de script do PowerShell a seguir cria um novo aplicativo do Microsoft Entra e uma entidade de serviço. Antes de executar este script:
- Instalar a versão mais recente do PowerShell.
- Instalar o SDK do PowerShell do Microsoft Graph.
Após a execução do script, anote as seguintes informações na saída do script:
- A ID do cliente do novo aplicativo
- A ID do objeto da nova entidade de serviço
- O valor do segredo da entidade de serviço
# Sign in as a user who's allowed to create an app.
Connect-MgGraph -Scopes "Application.ReadWrite.All"
# Create a new Azure AD web application.
$web = @{
RedirectUris = "https://localhost:44322"
HomePageUrl = "https://localhost:44322"
}
$params = @{
DisplayName = "myAzureADApp"
Web = $($web)
}
$app = New-MgApplication @params
Write-Host "Client ID of new app: " $($app.AppId)
# Create a service principal.
$ServicePrincipalID=@{
"AppId" = $($app.AppId)
}
$sp = New-MgServicePrincipal -BodyParameter $($ServicePrincipalId)
Write-Host "Object ID of new service principal: " $($sp.Id)
# Create a key for the service principal.
$credential = Add-MgServicePrincipalPassword -ServicePrincipalId $($sp.Id)
Write-Host "Credential of new service principal: " $($credential.SecretText)
Etapa 2 - Criar um grupo de segurança do Microsoft Entra
Sua entidade de serviço não tem acesso a nenhum de seus conteúdo e APIs do Power BI. Para conceder acesso à entidade de serviço, 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
Caso queira habilitar o acesso à entidade de serviço para toda a organização, ignore essa etapa.
Há duas maneiras de criar um grupo de segurança do Microsoft Entra:
Criar manualmente um grupo de segurança
Para criar manualmente um grupo de segurança no Azure, siga as instruções em Criar um grupo básico e adicionar membros.
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 an Azure AD 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.
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.
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 somente 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 do Microsoft Entra pode acessar seus relatórios, painéis e modelos semânticos do Power BI somente quando tiver acesso ao espaço de trabalho do Power BI. Você fornece esse acesso adicionando a entidade de serviço do aplicativo ou seu grupo de segurança ao seu workspace como membro ou administrador.
Há três maneiras de adicionar uma entidade de serviço ou grupo de segurança ao seu workspace:
Adicionar uma entidade de serviço ou um grupo de segurança manualmente
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.
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 de seu aplicativo do Microsoft Entra como ele aparece na guia de visão geral do aplicativo do Microsoft Entra.
- O grupo de segurança que inclui sua entidade de serviço.
No menu suspenso, selecione Membro ou Administrador.
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 do PowerShell para adicionar uma entidade de serviço e um grupo de segurança a um workspace do Power BI como membro.
Adicionar uma entidade de serviço como um membro do workspace usando o PowerShell
O script a seguir adiciona uma entidade de serviço como um membro do workspace. 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 workspace ao qual você gostaria de conceder acesso à entidade 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
- Não há suporte para Meu Workspace ao usar a entidade de serviço.
- É necessária capacidade ao passar para produção.
- Você não pode entrar no portal do Power BI usando a entidade de serviço.
- Direitos de administrador do Power BI são necessários para habilitar a entidade de serviço nas configurações do desenvolvedor no Portal de Administração do Power BI.
- Os aplicativos inseridos para sua organização não podem usar a entidade de serviço.
- Não há suporte para gerenciamento de fluxos de dados.
- A entidade de serviço dá suporte apenas a algumas APIs de administração somente leitura. Para habilitar o suporte da entidade de serviço para APIs de administração somente leitura, habilite as configurações de administrador do serviço do Power BI em 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.