Automatiser Premium-arbejdsområde- og semantiske modelopgaver med tjenesteprincipaler
Tjenesteprincipaler er en Microsoft Entra ID-appregistrering, du opretter i din lejer for at udføre automatiske handlinger på ressource- og tjenesteniveau. De er en entydig type brugeridentitet med et appnavn, program-id, lejer-id og klienthemmelighed eller certifikat til en adgangskode.
Power BI Premium bruger den samme tjenesteprincipalfunktion som Power BI Embedded. Du kan få mere at vide under Integrer Power BI-indhold med tjenesteprincipaler.
I Power BI Premium kan du bruge tjenesteprincipaler med XMLA-slutpunktet (XML Analysis) til at automatisere administrationsopgaver for semantiske modeller, f.eks. klargøring af arbejdsområder, udrulning af modeller og opdatering af semantiske modeller med:
- PowerShell.
- Azure Automation.
- Azure Logic Apps.
- Brugerdefinerede klientprogrammer.
Det er kun nye arbejdsområder, der understøtter XMLA-slutpunktsforbindelser ved hjælp af tjenesteprincipaler. Klassiske arbejdsområder understøttes ikke. En tjenesteprincipal har kun de tilladelser, der er nødvendige for at udføre opgaver i arbejdsområder, hvor den er tildelt. Tilladelser tildeles via adgang til arbejdsområdet på samme måde som almindelige UPN-konti (brugerens hovednavn).
Hvis du vil udføre skrivehandlinger, skal XMLA-slutpunktet være aktiveret for læse-/skrivehandlinger for kapacitetens arbejdsbelastning for semantiske modeller. Funktionen udvidet metadataformat skal være aktiveret for semantiske modeller, der er publiceret fra Power BI Desktop.
Opret en tjenesteprincipal
Tjenesteprincipaler oprettes som en appregistrering i Azure-portal eller ved hjælp af PowerShell. Når du opretter din tjenesteprincipal, skal du sørge for at kopiere og gemme appnavnet, program-id'et (klient-id'et), mappe-id'et (lejeren) og klienthemmeligheden separat. Du kan finde trin til, hvordan du opretter en tjenesteprincipal, under:
Opret en Microsoft Entra-sikkerhedsgruppe
Tjenesteprincipaler har som standard adgang til alle lejerindstillinger, de er aktiveret for. Afhængigt af administratorindstillingerne kan adgang omfatte bestemte sikkerhedsgrupper eller hele organisationen.
Hvis du vil begrænse tjenesteprincipalens adgang til bestemte lejerindstillinger, kan du give adgang til bestemte sikkerhedsgrupper. Du kan også oprette en dedikeret sikkerhedsgruppe for tjenesteprincipaler og udelade den fra de ønskede lejerindstillinger. Hvis du vil oprette en sikkerhedsgruppe og tilføje en tjenesteprincipal, skal du se Opret en grundlæggende gruppe og tilføje medlemmer ved hjælp af Microsoft Entra-id.
Aktivér tjenesteprincipaler
Før du kan begynde at bruge tjenesteprincipaler i Power BI, skal en administrator aktivere adgang til tjenesteprincipalen på Power BI-administrationsportalen.
- Gå til Power BI-administrationsportalen, og vælg derefter Lejerindstillinger.
- Rul til Udviklerindstillinger, og udvid derefter Tillad, at tjenesteprincipaler bruger Power BI-API s.
- Vælg Aktiveret.
- Hvis du vil anvende tilladelser på en sikkerhedsgruppe, skal du vælge Specifikke sikkerhedsgrupper (anbefales).
- Angiv gruppenavnet.
- Vælg Anvend.
Adgang til arbejdsområde
Hvis tjenesteprincipalen skal have de nødvendige tilladelser til at udføre Handlinger for Premium-arbejdsområder og semantiske modeller, skal du tilføje tjenesteprincipalen som medlem eller administrator af arbejdsområdet. Brug af adgang til arbejdsområdet i Power BI-tjeneste er beskrevet her, men du kan også bruge REST API'en tilføj gruppebruger.
I Power BI-tjeneste for et arbejdsområde skal du vælge Mere>adgang til arbejdsområde.
Søg efter programnavn, og føj derefter tjenesteprincipalen som administrator eller medlem til arbejdsområdet.
Forbindelsesstrenge for XMLA-slutpunktet
Når du har oprettet en tjenesteprincipal, skal du aktivere tjenesteprincipaler for din lejer og føje tjenesteprincipalen til adgang til arbejdsområdet og bruge den som en brugeridentitet i forbindelsesstreng med XMLA-slutpunktet. Forskellen er, at du i stedet for parametrene user id
og password
angiver program-id'et, lejer-id'et og programhemmeligheden.
Data Source=powerbi://api.powerbi.com/v1.0/myorg/<workspace name>; Initial Catalog=<dataset name>;User ID=app:<appId>@<tenantId>;Password=<app_secret>;
PowerShell
Åbn en PowerShell-session for at køre følgende eksempelkode.
Brug af SQLServer-modul
I følgende eksempel bruges , AppId
TenantId
og AppSecret
til at godkende en semantisk modelopdateringshandling:
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
AMO (Analysis Management Objects) og ADOMD.NET
Når du opretter forbindelse til klientprogrammer og webapps, kan du bruge AMO- og ADOMD-klientbiblioteker version 15.1.42.26 (juni 2020) og nyere installerbare pakker fra NuGet til at understøtte tjenesteprincipaler i forbindelsesstreng s ved hjælp af følgende syntaks: app:AppID
og adgangskode eller cert:thumbprint
.
I følgende eksempel appID
bruges værdier og password
til at udføre en opdateringshandling for en modeldatabase:
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();