Bygg inn Power BI-innhold med tjenestekontohaver og en programhemmelighet

Tjenestekontohaver er en godkjenningsmetode som kan brukes til å gi et Microsoft Entra-program tilgang Power Bi-tjeneste innhold og API-er.

Når du oppretter en Microsoft Entra-app, opprettes et tjenestekontohaverobjekt . Tjenestekontohaverobjektet, også kjent som tjenestekontohaver, gjør det mulig for Microsoft Entra ID å godkjenne appen. Når den er godkjent, kan appen få tilgang til leierressurser for Microsoft Entra.

For å godkjenne bruker tjenestekontohaveren Microsoft Entra-appens program-ID og ett av følgende:

  • Et sertifikat
  • En programhemmelighet

Denne artikkelen beskriver tjenestekontohavergodkjenning ved hjelp av en program-ID og en programhemmelighet.

Merk

Vi anbefaler at du sikrer baktjenestene ved hjelp av sertifikater i stedet for hemmelige nøkler.

Metode

Hvis du vil bruke tjenestekontohaver og en program-ID for innebygd analyse, gjør du følgende. Etterfølgende inndelinger beskriver disse trinnene i detalj.

  1. Opprett en Microsoft Entra-app.

    1. Opprett en hemmelighet for Microsoft Entra-appen.
    2. Få appens program-ID og programhemmelighet.

    Merk

    Disse trinnene er beskrevet i trinn 1. Hvis du vil ha mer informasjon om hvordan du oppretter en Microsoft Entra-app, kan du se opprette en Microsoft Entra-app.

  2. Opprett en Microsoft Entra-sikkerhetsgruppe.

  3. Aktiver administratorinnstillingene for Power Bi-tjeneste.

  4. Legg til tjenestekontohaveren i arbeidsområdet.

  5. Bygg inn innholdet.

Viktig

Et Microsoft Entra-program krever ikke at du konfigurerer delegerte tillatelser eller programtillatelser i Azure-portalen når det er opprettet for en tjenestekontohaver. Når du oppretter et Microsoft Entra-program for en tjenestekontohaver for å få tilgang til REST-API-en for Power BI, anbefaler vi at du unngår å legge til tillatelser. De brukes aldri og kan forårsake feil som er vanskelige å feilsøke.

Trinn 1 – Opprett en Microsoft Entra-app

Opprett en Microsoft Entra-app ved hjelp av én av disse metodene:

Opprette en Microsoft Entra-app i Azure-portalen

  1. Logg deg på Azure-portalen.

  2. Søk etter og velg Appregistreringer.

    Screenshot of the Azure portal, with app registration in the search box. That box and the App registrations icon are highlighted.

  3. Velg Ny registrering.

    Screenshot of the App registrations page in the Azure portal. New registration is highlighted.

  4. Fyll ut den nødvendige informasjonen:

    • Navn – Skriv inn et navn for programmet.
    • Støttede kontotyper – Velg støttede kontotyper.
    • (Valgfritt) Omadresserings-URI - Angi en URI om nødvendig.
  5. Velg Registrer.

  6. Når du har registrert appen, er program-ID-en tilgjengelig fra oversiktsfanen. Kopier og lagre program-ID-en for senere bruk.

    Screenshot of the Overview page of the new app. The Application ID is indecipherable and is highlighted.

  7. Velg Sertifikater og hemmeligheter.

    Screenshot of the Overview page of the new app. On the navigation pane, Certificates & secrets is highlighted.

  8. Velg Ny klienthemmelighet.

    Screenshot that shows part of the Certificates & secrets page for the app. Under Client secrets, the New client secret button is highlighted.

  9. Skriv inn en beskrivelse i vinduet Legg til en klienthemmelighet, angi når du vil at klienthemmeligheten skal utløpe, og velg Legg til.

  10. Kopier og lagre verdien for klienthemmelighet.

    Screenshot of the Certificates & secrets page for the app. Under Client secrets, a new secret is visible. Its indecipherable value is highlighted.

    Merk

    Når du forlater dette vinduet, skjules den hemmelige klientverdien, og du kan ikke vise eller kopiere den på nytt.

Opprette en Microsoft Entra-app ved hjelp av PowerShell

Følgende eksempel på PowerShell-skript oppretter en ny Microsoft Entra-app og en tjenestekontohaver. Før du kjører dette skriptet:

Når skriptet kjøres, noterer du følgende informasjon i skriptutdataene:

  • Klient-ID-en for den nye appen
  • Objekt-ID-en til den nye tjenestekontohaveren
  • Verdien for tjenestekontohaverhemmeligheten
# 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)

Trinn 2 – Opprett en Microsoft Entra-sikkerhetsgruppe

Tjenestekontohaveren har ikke tilgang til noe av Power BI-innholdet og API-ene dine. Hvis du vil gi tjenestekontohavertilgang, oppretter du en sikkerhetsgruppe i Microsoft Entra ID. Legg deretter til tjenestekontohaveren du opprettet i denne sikkerhetsgruppen.

Merk

Hvis du vil aktivere tjenestekontohavertilgang for hele organisasjonen, kan du hoppe over dette trinnet.

Det finnes to måter å opprette en Microsoft Entra-sikkerhetsgruppe på:

Opprette en sikkerhetsgruppe manuelt

Hvis du vil opprette en Azure-sikkerhetsgruppe manuelt, følger du instruksjonene i Opprett en grunnleggende gruppe og legger til medlemmer.

Opprette en sikkerhetsgruppe ved hjelp av PowerShell

Følgende eksempelskript oppretter en ny sikkerhetsgruppe. Den legger også til tjenestekontohaveren du opprettet tidligere i den nye sikkerhetsgruppen.

  • Før du kjører skriptet, må du erstatte <app-client-ID> med klient-ID-en du spilte inn tidligere for den nye appen.
  • Når du har kjørt skriptet, noterer du objekt-ID-en til den nye sikkerhetsgruppen, som du finner i skriptutdataene.
# 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)

Trinn 3 – Aktiver administratorinnstillingene for Power Bi-tjeneste

For at en Microsoft Entra-app skal få tilgang til Power BI-innhold og API-er, må en Power BI-administrator aktivere følgende innstillinger:

  • Bygge inn innhold i apper
  • Tillate tjenestekontohavere å bruke Power BI-API

Gå til leierinnstillinger i administrasjonsportalen for Power BI, og rull ned til Utviklerinnstillinger.

  • Aktiver bygg inn innhold i apper enten for hele organisasjonen eller for den bestemte sikkerhetsgruppen du opprettet i Microsoft Entra ID.

    Screenshot of the Developer settings in the Tenant settings section of the Admin portal. The option for embedding content in apps is turned on.

  • Aktiver Tillat tjenestekontohavere å bruke Power BI-API enten for hele organisasjonen eller for den bestemte sikkerhetsgruppen du opprettet i Microsoft Entra ID.

    Screenshot of the Developer settings section. The option for allowing service principals to use Power BI APIs is turned on for one security group.

    Viktig

    Tjenestekontohavere har tilgang til eventuelle leierinnstillinger de er aktivert for. Dette omfatter bestemte sikkerhetsgrupper eller hele organisasjonen, avhengig av administratorinnstillingene.

    Hvis du vil begrense tjenestekontohavertilgang til bestemte leierinnstillinger, kan du bare tillate tilgang til bestemte sikkerhetsgrupper. Alternativt kan du opprette en dedikert sikkerhetsgruppe for tjenestekontohavere og utelate den fra de ønskede leierinnstillingene.

Trinn 4 – Legg til tjenestekontohaver i arbeidsområdet

Microsoft Entra-appen har bare tilgang til Power BI-rapporter, instrumentbord og semantiske modeller når den har tilgang til Power BI-arbeidsområdet. Du gir denne tilgangen ved å legge til appens tjenestekontohaver eller sikkerhetsgruppen i arbeidsområdet som medlem eller administrator.

Det finnes tre måter å legge til en tjenestekontohaver eller sikkerhetsgruppe i arbeidsområdet på:

Legge til en tjenestekontohaver eller sikkerhetsgruppe manuelt

  1. Rull til arbeidsområdet du vil aktivere tilgang for, i Power Bi-tjeneste. Velg Arbeidsområdetilgang fra Mer-menyen.

    Screenshot that shows the expanded More menu for a workspace. On that menu, Workspace access is highlighted.

  2. Legg til ett av følgende under Legg til administratorer, medlemmer eller bidragsytere i Access-ruten:

    • Tjenestekontohaver. Navnet på tjenestekontohaveren er visningsnavnet for Microsoft Entra-appen, slik den vises i oversiktsfanen for Microsoft Entra-appen.
    • Sikkerhetsgruppen som inkluderer tjenestekontohaveren.
  3. Velg Medlem eller administrator på rullegardinmenyen.

  4. Velg Legg til.

Legge til en tjenestekontohaver eller sikkerhetsgruppe ved hjelp av PowerShell

De følgende avsnittene inneholder eksempel på PowerShell-skript for å legge til en tjenestekontohaver og en sikkerhetsgruppe i et Power BI-arbeidsområde som medlem.

Legg til en tjenestekontohaver som medlem av arbeidsområdet ved hjelp av PowerShell

Følgende skript legger til en tjenestekontohaver som medlem av arbeidsområdet. Før du kjører skriptet:

  • Erstatt <service-principal-object-ID> med objekt-ID-en du registrerte tidligere for den nye tjenestekontohaveren.
  • Erstatt <workspace-name> med navnet på arbeidsområdet du vil gi tjenestekontohavertilgang til.
# 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)

Legge til en sikkerhetsgruppe som medlem av arbeidsområdet ved hjelp av PowerShell

Følgende skript legger til en sikkerhetsgruppe som medlem av arbeidsområdet. Før du kjører skriptet:

  • Erstatt <security-group-object-ID> med objekt-ID-en du registrerte tidligere for den nye sikkerhetsgruppen.
  • Erstatt <workspace-name> med navnet på arbeidsområdet du vil gi sikkerhetsgruppen tilgang til.
# 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)

Trinn 5 – Bygg inn innholdet

Du kan bygge inn innholdet i et eksempelprogram eller i ditt eget program.

Når innholdet er innebygd, er du klar til å flytte til produksjon.

Merk

Hvis du vil sikre innholdet ved hjelp av et sertifikat, følger du trinnene som er beskrevet i Bygg inn Power BI-innhold med tjenestekontohaver og et sertifikat.

Hensyn og begrensninger

  • Mitt arbeidsområde støttes ikke når du bruker tjenestekontohaver.
  • En kapasitet kreves når du flytter til produksjon.
  • Du kan ikke logge på Power BI-portalen ved hjelp av tjenestekontohaver.
  • Power BI-administratorrettigheter kreves for å aktivere tjenestekontohaver i utviklerinnstillinger i administrasjonsportalen for Power BI.
  • Innebygging for organisasjonsprogrammene kan ikke bruke tjenestekontohaver.
  • Behandling av dataflyter støttes ikke.
  • Tjenestekontohaver støtter bare noen skrivebeskyttede administrator-API-er. Hvis du vil aktivere støtte for tjenestekontohaver for skrivebeskyttede administrator-API-er, må du aktivere administratorinnstillingene for Power Bi-tjeneste i leieren. Hvis du vil ha mer informasjon, kan du se Aktivere godkjenning av tjenestekontohaver for skrivebeskyttede administrator-API-er.
  • Når du bruker tjenestekontohaver med en Datakilde for Azure Analysis Services , må tjenestekontohaveren selv ha forekomsttillatelser for Azure Analysis Services. Bruk av en sikkerhetsgruppe som inneholder tjenestekontohaveren for dette formålet, fungerer ikke.