Del via


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.

  1. Gå til administrasjonsportalen for Power BI, og velg deretter leierinnstillinger.
  2. Bla til utviklerinnstillinger, og utvid deretter Tillat tjenestekontohavere å bruke Power BI-API s.
  3. Velg Aktivert.
  4. Hvis du vil bruke tillatelser for en sikkerhetsgruppe, velger du Bestemte sikkerhetsgrupper (anbefales).
  5. Skriv inn gruppenavnet.
  6. 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.

  1. Velg Mer>arbeidsområdetilgang i Power Bi-tjeneste for et arbeidsområde.

    Skjermbilde som viser en liste over arbeidsområder. Mer-ikonet og tilgangen til arbeidsområdet er uthevet.

  2. 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, TenantIdog 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();