Integrer Power BI-indhold med en tjenesteprincipal og en programhemmelighed

Tjenesteprincipal er en godkendelsesmetode, der kan bruges til at give et Microsoft Entra-program adgang Power BI-tjeneste indhold og API'er.

Når du opretter en Microsoft Entra-app, oprettes der et objekt for en tjenesteprincipal . Objektet for tjenesteprincipalen, der også blot kaldes tjenesteprincipal, gør det muligt for Microsoft Entra ID at godkende din app. Når appen er godkendt, kan den få adgang til Microsoft Entra-lejerressourcer.

For at godkende bruger tjenesteprincipalen program-id'et for Microsoft Entra-appen og et af følgende:

  • Et certifikat
  • En programhemmelighed

I denne artikel beskrives godkendelse af tjenesteprincipal ved hjælp af et program-id og en programhemmelighed.

Bemærk

Vi anbefaler, at du beskytter dine back end-tjenester ved hjælp af certifikater i stedet for hemmelige nøgler.

Metode

Hvis du vil bruge en tjenesteprincipal og et program-id til integreret analyse, skal du benytte følgende fremgangsmåde. I de efterfølgende afsnit beskrives disse trin i detaljer.

  1. Opret en Microsoft Entra-app.

    1. Opret en hemmelighed til din Microsoft Entra-app.
    2. Hent appens program-id og programhemmelighed.

    Bemærk

    Disse trin er beskrevet i trin 1. Du kan få flere oplysninger om, hvordan du opretter en Microsoft Entra-app, under Opret en Microsoft Entra-app.

  2. Opret en Microsoft Entra-sikkerhedsgruppe.

  3. Aktivér Power BI-tjeneste administratorindstillinger.

  4. Føj tjenesteprincipalen til dit arbejdsområde.

  5. Integrer dit indhold.

Vigtigt

Et Microsoft Entra-program kræver ikke, at du konfigurerer delegerede tilladelser eller programtilladelser i Azure-portal, når det er oprettet for en tjenesteprincipal. Når du opretter et Microsoft Entra-program for en tjenesteprincipal for at få adgang til Power BI REST-API'en, anbefaler vi, at du undgår at tilføje tilladelser. De bruges aldrig og kan medføre fejl, der er svære at foretage fejlfinding af.

Trin 1 – Opret en Microsoft Entra-app

Opret en Microsoft Entra-app ved hjælp af en af disse metoder:

Opret en Microsoft Entra-app i Azure-portal

  1. Log på Azure-portalen.

  2. Søg efter og vælg Appregistreringer.

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

  3. Vælg Ny registrering.

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

  4. Udfyld de påkrævede oplysninger:

    • Name – Angiv et navn til dit program.
    • Understøttede kontotyper – Vælg understøttede kontotyper.
    • (Valgfrit) Omdirigerings-URI – Angiv en URI, hvis det er nødvendigt.
  5. Vælg Registrer.

  6. Når du har registreret din app, er program-id'et tilgængeligt under fanen Oversigt . Kopiér og gem program-id'et til senere brug.

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

  7. Vælg Certifikater & hemmeligheder.

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

  8. Vælg Ny klient-hemmelighed.

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

  9. I vinduet Tilføj en klienthemmelighed skal du angive en beskrivelse, angive, hvornår klienthemmeligheden skal udløbe, og vælge Tilføj.

  10. Kopiér og gem den klienthemmelighedens værdi.

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

    Bemærk

    Når du har forladt dette vindue, er værdien for klienthemmeligheden skjult, og du kan ikke få vist eller kopiere den igen.

Opret en Microsoft Entra-app ved hjælp af PowerShell

I følgende eksempel opretter PowerShell-scriptet en ny Microsoft Entra-app og en tjenesteprincipal. Før du kører dette script:

Når scriptet er kørt, skal du notere følgende oplysninger i scriptoutputtet:

  • Klient-id'et for den nye app
  • Objekt-id'et for den nye tjenesteprincipal
  • Værdien af tjenesteprincipalhemmeligheden
# 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)

Trin 2 – Opret en Microsoft Entra-sikkerhedsgruppe

Din tjenesteprincipal har ikke adgang til noget af dit Power BI-indhold og API'er. Hvis du vil give tjenesteprincipalen adgang, skal du oprette en sikkerhedsgruppe i Microsoft Entra ID. Føj derefter den tjenesteprincipal, du har oprettet, til den pågældende sikkerhedsgruppe.

Bemærk

Hvis du vil aktivere adgang til tjenesteprincipalen for hele organisationen, skal du springe dette trin over.

Der er to måder at oprette en Microsoft Entra-sikkerhedsgruppe på:

Opret en sikkerhedsgruppe manuelt

Hvis du vil oprette en Azure-sikkerhedsgruppe manuelt, skal du følge vejledningen i Opret en grundlæggende gruppe og tilføje medlemmer.

Opret en sikkerhedsgruppe ved hjælp af PowerShell

Følgende eksempelscript opretter en ny sikkerhedsgruppe. Den føjer også den tjenesteprincipal, du oprettede tidligere, til den nye sikkerhedsgruppe.

  • Før du kører scriptet, skal du erstatte <app-client-ID> med det klient-id, du optog tidligere for din nye app.
  • Når du har kørt scriptet, skal du notere objekt-id'et for den nye sikkerhedsgruppe, som du kan finde i scriptoutputtet.
# 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)

Trin 3 – Aktivér administratorindstillingerne for Power BI-tjeneste

Hvis en Microsoft Entra-app skal have adgang til Power BI-indhold og API'er, skal en Power BI-administrator aktivere følgende indstillinger:

  • Integrer indhold i apps
  • Tillad, at tjenesteprincipaler bruger Power BI-API'er

På Power BI-Administration-portalen skal du gå til Lejerindstillinger og rulle ned til Udviklerindstillinger.

  • Aktivér Integrer indhold i apps enten for hele organisationen eller for den specifikke sikkerhedsgruppe, du har oprettet 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.

  • Aktivér Tillad, at tjenesteprincipaler bruger Power BI-API enten for hele organisationen eller for den specifikke sikkerhedsgruppe, du har oprettet 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.

    Vigtigt

    Tjenesteprincipaler har adgang til alle lejerindstillinger, de er aktiveret for. Afhængigt af administratorindstillingerne omfatter dette specifikke sikkerhedsgrupper eller hele organisationen.

    Hvis du vil begrænse tjenesteprincipalens adgang til bestemte lejerindstillinger, skal du kun give adgang til bestemte sikkerhedsgrupper. Du kan også oprette en dedikeret sikkerhedsgruppe for tjenesteprincipaler og udelade den fra de ønskede lejerindstillinger.

Trin 4 – Føj tjenesteprincipalen til dit arbejdsområde

Din Microsoft Entra-app kan kun få adgang til dine Power BI-rapporter, -dashboards og semantiske modeller, når den har adgang til dit Power BI-arbejdsområde. Du giver denne adgang ved at føje appens tjenesteprincipal eller dens sikkerhedsgruppe til dit arbejdsområde som medlem eller administrator.

Der er tre måder at føje en tjenesteprincipal eller dens sikkerhedsgruppe til dit arbejdsområde på:

Tilføj en tjenesteprincipal eller sikkerhedsgruppe manuelt

  1. I Power BI-tjeneste skal du rulle til det arbejdsområde, du vil aktivere adgang for. Vælg Adgang til arbejdsområde i menuen Mere.

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

  2. Tilføj en af følgende under Tilføj administratorer, medlemmer eller bidragydere i ruden Adgang:

    • Din tjenesteprincipal. Navnet på din tjenesteprincipal er det viste navn på din Microsoft Entra-app, som det vises under oversigtsfanen for din Microsoft Entra-app.
    • Den sikkerhedsgruppe , der indeholder din tjenesteprincipal.
  3. Vælg Medlem eller Administration i rullemenuen.

  4. Vælg Tilføj.

Tilføj en tjenesteprincipal eller sikkerhedsgruppe ved hjælp af PowerShell

Følgende afsnit indeholder eksempler på PowerShell-scripts til tilføjelse af en tjenesteprincipal og en sikkerhedsgruppe til et Power BI-arbejdsområde som medlem.

Tilføj en tjenesteprincipal som medlem af arbejdsområdet ved hjælp af PowerShell

Følgende script tilføjer en tjenesteprincipal som medlem af arbejdsområdet. Før du kører scriptet:

  • Erstat <service-principal-object-ID> med det objekt-id, du registrerede tidligere for din nye tjenesteprincipal.
  • Erstat <workspace-name> med navnet på det arbejdsområde, du vil give tjenesteprincipalen adgang 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)

Tilføj en sikkerhedsgruppe som medlem af arbejdsområdet ved hjælp af PowerShell

Følgende script tilføjer en sikkerhedsgruppe som medlem af arbejdsområdet. Før du kører scriptet:

  • Erstat <security-group-object-ID> med det objekt-id, du registrerede tidligere for din nye sikkerhedsgruppe.
  • Erstat <workspace-name> med navnet på det arbejdsområde, du vil give sikkerhedsgruppen adgang 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)

Trin 5 – Integrer dit indhold

Du kan integrere dit indhold i et eksempelprogram eller i dit eget program.

Når dit indhold er integreret, er du klar til at gå over til produktion.

Bemærk

Hvis du vil beskytte dit indhold ved hjælp af et certifikat, skal du følge de trin, der er beskrevet i Integrer Power BI-indhold med tjenesteprincipal og et certifikat.

Overvejelser og begrænsninger

  • Mit arbejdsområde understøttes ikke, når der bruges en tjenesteprincipal.
  • Der kræves en kapacitet, når du flytter til produktion.
  • Du kan ikke logge på Power BI-portalen ved hjælp af en tjenesteprincipal.
  • Der kræves rettigheder som Power BI-administrator for at aktivere tjenesteprincipalen i udviklerindstillingerne i Power BI-Administration-portalen.
  • Embed for your organization-programmer kan ikke bruge en tjenesteprincipal.
  • Administration af dataflow understøttes ikke.
  • Tjenesteprincipalen understøtter kun nogle skrivebeskyttede administrator-API'er. Hvis du vil aktivere understøttelse af tjenesteprincipaler for skrivebeskyttede administrator-API'er, skal du aktivere Power BI-tjeneste administratorindstillinger i din lejer. Du kan få flere oplysninger under Aktivér godkendelse af tjenesteprincipal for skrivebeskyttede administrator-API'er.
  • Når du bruger en tjenesteprincipal med en Azure Analysis Services-datakilde , skal selve tjenesteprincipalen have tilladelser til Forekomsten af Azure Analysis Services. Brug af en sikkerhedsgruppe, der indeholder tjenesteprincipalen til dette formål, fungerer ikke.