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.
- Få mere at vide om, hvordan du henter adgangstokens fra Microsoft Entra ID ved hjælp af hemmelige nøgler eller certifikater.
- Hvis du vil sikre din løsning ved hjælp af et certifikat, skal du fuldføre vejledningen i denne artikel og derefter følge trinnene i Integrer Power BI-indhold med tjenesteprincipal og et certifikat.
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.
Opret en Microsoft Entra-app.
- Opret en hemmelighed til din Microsoft Entra-app.
- 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.
Opret en Microsoft Entra-sikkerhedsgruppe.
Aktivér Power BI-tjeneste administratorindstillinger.
Føj tjenesteprincipalen til dit arbejdsområde.
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
Log på Azure-portalen.
Søg efter og vælg Appregistreringer.
Vælg Ny registrering.
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.
Vælg Registrer.
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.
Vælg Certifikater & hemmeligheder.
Vælg Ny klient-hemmelighed.
I vinduet Tilføj en klienthemmelighed skal du angive en beskrivelse, angive, hvornår klienthemmeligheden skal udløbe, og vælge Tilføj.
Kopiér og gem den klienthemmelighedens værdi.
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:
- Installér den nyeste version af PowerShell.
- Installér Microsoft Graph PowerShell SDK.
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.
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.
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å:
- Manuelt
- Brug PowerShell
- Brug API'en Grupper – tilføj gruppebruger
Tilføj en tjenesteprincipal eller sikkerhedsgruppe manuelt
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.
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.
Vælg Medlem eller Administration i rullemenuen.
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.