Partilhar via


Automatize tarefas de espaço de trabalho Premium e modelo semântico com entidades de serviço

As entidades de serviço são um registro de aplicativo Microsoft Entra ID que você cria em seu locatário para executar operações autônomas de nível de serviço e recursos. Eles são um tipo exclusivo de identidade de usuário com um nome de aplicativo, ID de aplicativo, ID de locatário e segredo do cliente ou certificado para uma senha.

O Power BI Premium usa a mesma funcionalidade de entidade de serviço que o Power BI Embedded. Para saber mais, consulte Incorporando conteúdo do Power BI com entidades de serviço.

No Power BI Premium, você pode usar entidades de serviço com o ponto de extremidade XMLA (XML Analysis) para automatizar tarefas de gerenciamento de modelo semântico, como provisionamento de espaços de trabalho, implantação de modelos e atualização de modelo semântico com:

  • PowerShell.
  • Automatização do Azure.
  • Azure Logic Apps.
  • Aplicativos cliente personalizados.

Somente novos espaços de trabalho oferecem suporte a conexões de ponto de extremidade XMLA usando entidades de serviço. Não há suporte para espaços de trabalho clássicos. Uma entidade de serviço tem apenas as permissões necessárias para executar tarefas em espaços de trabalho nos quais é atribuída. As permissões são atribuídas através do acesso ao espaço de trabalho, tal como as contas UPN (nome principal do utilizador) normais.

Para executar operações de gravação, a carga de trabalho de modelos semânticos da capacidade deve ter o ponto de extremidade XMLA habilitado para operações de leitura-gravação. Os modelos semânticos publicados a partir do Power BI Desktop devem ter a funcionalidade de formato de metadados melhorado ativada.

Criar um principal de serviço

As entidades de serviço são criadas como um registro de aplicativo no portal do Azure ou usando o PowerShell. Ao criar sua entidade de serviço, certifique-se de copiar e salvar separadamente o nome do aplicativo, a ID do aplicativo (cliente), a ID do diretório (locatário) e o segredo do cliente. Para conhecer as etapas sobre como criar uma entidade de serviço, consulte:

Criar um grupo de segurança do Microsoft Entra

Por padrão, as entidades de serviço têm acesso a todas as configurações de locatário para as quais estão habilitadas. Dependendo das configurações de administrador, o acesso pode incluir grupos de segurança específicos ou toda a organização.

Para restringir o acesso da entidade de serviço a configurações específicas de locatário, você pode permitir o acesso 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. Para criar um grupo de segurança e adicionar uma entidade de serviço, consulte Criar um grupo básico e adicionar membros usando a ID do Microsoft Entra.

Habilitar entidades de serviço

Antes de começar a usar entidades de serviço no Power BI, um administrador deve habilitar o acesso da entidade de serviço no portal de Administração do Power BI.

  1. Vá para o portal de Administração do Power BI e selecione Configurações do locatário.
  2. Role até Configurações do desenvolvedor e expanda Permitir que as entidades de serviço usem APIs do Power BI.
  3. Selecione Ativado.
  4. Para aplicar permissões a um grupo de segurança, selecione Grupos de segurança específicos (Recomendado).
  5. Insira o nome do grupo.
  6. Selecione Aplicar.

Acesso à área de trabalho

Para que sua entidade de serviço tenha as permissões necessárias para executar operações de modelo semântico e de espaço de trabalho Premium, você deve adicionar a entidade de serviço como Membro ou Administrador do espaço de trabalho. O uso do acesso ao espaço de trabalho no serviço do Power BI é descrito aqui, mas você também pode usar a API REST Adicionar Usuário de Grupo.

  1. No serviço Power BI para um espaço de trabalho, selecione Mais>acesso ao espaço de trabalho.

    Captura de ecrã que mostra uma lista de espaços de trabalho. Mais ícone e acesso ao espaço de trabalho são realçados.

  2. Pesquise por nome de aplicativo e adicione a entidade de serviço como Administrador ou Membro ao espaço de trabalho.

Cadeias de conexão para o ponto de extremidade XMLA

Depois de criar uma entidade de serviço, habilite entidades de serviço para seu locatário e adicione a entidade de serviço ao acesso ao espaço de trabalho, use-a como uma identidade de usuário em cadeias de conexão com o ponto de extremidade XMLA. A diferença é que, em vez dos parâmetros e password , você especifica o ID do aplicativo, o ID do locatário e o segredo do user id aplicativo.

Data Source=powerbi://api.powerbi.com/v1.0/myorg/<workspace name>; Initial Catalog=<dataset name>;User ID=app:<appId>@<tenantId>;Password=<app_secret>;

PowerShell

Abra uma sessão do PowerShell para executar o código de exemplo a seguir.

Usando o módulo SQLServer

No exemplo a seguir, AppId, TenantId, e AppSecret são usados para autenticar uma operação de atualização de modelo semântico:

Param (
        [Parameter(Mandatory=$true)] [String] $AppId,
        [Parameter(Mandatory=$true)] [String] $TenantId,
        [Parameter(Mandatory=$true)] [String] $AppSecret
       )
$PWord = ConvertTo-SecureString -String $AppSecret -AsPlainText -Force

$Credential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $AppId, $PWord

Invoke-ProcessTable -Server "powerbi://api.powerbi.com/v1.0/myorg/myworkspace" -TableName "mytable" -DatabaseName "mydataset" -RefreshType "Full" -ServicePrincipal -ApplicationId $AppId -TenantId $TenantId -Credential $Credential

Objetos de gerenciamento de análise (AMO) e ADOMD.NET

Ao se conectar a aplicativos cliente e aplicativos Web, você pode usar as bibliotecas de cliente AMO e ADOMD versão 15.1.42.26 (junho de 2020) e pacotes instaláveis posteriores do NuGet para oferecer suporte a entidades de serviço em cadeias de conexão usando a seguinte sintaxe: app:AppID e senha ou cert:thumbprint.

No exemplo a seguir, appID e password os valores são usados para executar uma operação de atualização do banco de dados modelo:

string appId = "xxx";
string authKey = "yyy";
string connString = $"Provider=MSOLAP;Data source=powerbi://api.powerbi.com/v1.0/<tenant>/<workspacename>;Initial catalog=<datasetname>;User ID=app:{appId};Password={authKey};";
Server server = new Server();
server.Connect(connString);
Database db = server.Databases.FindByName("adventureworks");
Table tbl = db.Model.Tables.Find("DimDate");
tbl.RequestRefresh(RefreshType.Full);
db.Model.SaveChanges();