Automatiser Premium-arbeidsområder og semantiske modelloppgaver med tjenestekontohavere
Tjenestekontohavere er en Microsoft Entra ID-appregistrering du oppretter i leieren for å utføre uovervåkede operasjoner på ressurs- og servicenivå. De er en unik type brukeridentitet med appnavn, program-ID, leier-ID og klienthemmelighet eller sertifikat for et passord.
Power BI Premium bruker samme tjenestekontohaverfunksjonalitet som Power BI Embedded. Hvis du vil ha mer informasjon, kan du se Bygge inn Power BI-innhold med tjenestekontohavere.
I Power BI Premium kan du bruke tjenestekontohavere med XMLA-endepunktet (XML Analysis) til å automatisere semantiske modellbehandlingsoppgaver, for eksempel klargjøring av arbeidsområder, distribusjon av modeller og semantisk modelloppdatering med:
- PowerShell.
- Azure Automation.
- Azure Logic Apps.
- Egendefinerte klientprogrammer.
Bare nye arbeidsområder støtter XMLA-endepunkttilkoblinger ved hjelp av tjenestekontohavere. Klassiske arbeidsområder støttes ikke. En tjenestekontohaver har bare de tillatelsene som er nødvendige for å utføre oppgaver på arbeidsområder der den er tilordnet. Tillatelser tilordnes via tilgang til arbeidsområdet, omtrent som vanlige UPN-kontoer (brukerhovednavn).
Hvis du vil utføre skriveoperasjoner, må arbeidsbelastningen for semantiske modeller for kapasiteten ha XMLA-endepunktet aktivert for leseskrivingsoperasjoner. Semantiske modeller publisert fra Power BI Desktop bør ha funksjonen for forbedret metadataformat aktivert.
Opprette en tjenestekontohaver
Tjenestekontohavere opprettes som en appregistrering i Azure-portalen eller ved hjelp av PowerShell. Når du oppretter tjenestekontohaveren, må du kopiere og lagre appnavnet, program-ID-en( klient)-ID-en, katalog-ID-en (leier) og klienthemmeligheten separat. Hvis du vil ha mer informasjon om hvordan du oppretter en tjenestekontohaver, kan du se:
Opprette en Microsoft Entra-sikkerhetsgruppe
Tjenestekontohavere har som standard tilgang til eventuelle leierinnstillinger de er aktivert for. Avhengig av administratorinnstillingene kan tilgang inkludere bestemte sikkerhetsgrupper eller hele organisasjonen.
Hvis du vil begrense tjenestekontohavertilgang til bestemte leierinnstillinger, kan du gi tilgang til bestemte sikkerhetsgrupper. Alternativt kan du opprette en dedikert sikkerhetsgruppe for tjenestekontohavere og utelate den fra de ønskede leierinnstillingene. Hvis du vil opprette en sikkerhetsgruppe og legge til en tjenestekontohaver, kan du se Opprette en grunnleggende gruppe og legge til medlemmer ved hjelp av Microsoft Entra ID.
Aktiver tjenestekontohavere
Før du kan begynne å bruke tjenestekontohavere i Power BI, må en administrator aktivere tjenestekontohavertilgang i administrasjonsportalen for Power BI.
- Gå til administrasjonsportalen for Power BI, og velg deretter leierinnstillinger.
- Bla til utviklerinnstillinger, og utvid deretter Tillat tjenestekontohavere å bruke Power BI-API s.
- Velg Aktivert.
- Hvis du vil bruke tillatelser for en sikkerhetsgruppe, velger du Bestemte sikkerhetsgrupper (anbefales).
- Skriv inn gruppenavnet.
- Velg Bruk.
Arbeidsområdetilgang
For at tjenestekontohaveren skal ha de nødvendige tillatelsene til å utføre Premium-arbeidsområde- og semantiske modelloperasjoner, må du legge til tjenestekontohaveren som medlem av arbeidsområdet eller administrator. Bruk av arbeidsområdetilgang i Power Bi-tjeneste er beskrevet her, men du kan også bruke REST-API-en for legg til gruppebrukere.
Velg Mer>arbeidsområdetilgang i Power Bi-tjeneste for et arbeidsområde.
Søk etter programnavn, og legg deretter til tjenestekontohaveren som administrator eller medlem i arbeidsområdet.
Tilkoblingsstrenger for XMLA-endepunktet
Når du har opprettet en tjenestekontohaver, aktiverer du tjenestekontohavere for leieren og legger til tjenestekontohaveren i arbeidsområdetilgang, bruker du den som en brukeridentitet i tilkoblingsstreng med XMLA-endepunktet. Forskjellen er at i stedet user id
for og password
parameterne angir du program-ID, leier-ID og programhemmelighet.
Data Source=powerbi://api.powerbi.com/v1.0/myorg/<workspace name>; Initial Catalog=<dataset name>;User ID=app:<appId>@<tenantId>;Password=<app_secret>;
PowerShell
Åpne en PowerShell-økt for å kjøre følgende eksempelkode.
Bruke SQLServer-modul
I eksemplet nedenfor, AppId
, TenantId
og AppSecret
brukes til å godkjenne en semantisk modelloppdateringsoperasjon:
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
Analysis Management Objects (AMO) og ADOMD.NET
Når du kobler til klientprogrammer og nettapper, kan du bruke AMO- og ADOMD-klientbiblioteker versjon 15.1.42.26 (juni 2020) og senere installerbare pakker fra NuGet for å støtte tjenestekontohavere i tilkoblingsstreng ved hjelp av følgende syntaks: app:AppID
og passord eller cert:thumbprint
.
I eksemplet nedenfor brukes appID
password
verdiene til å utføre en modelldatabaseoppdateringsoperasjon:
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();