Bädda in Power BI-innehåll med tjänstens huvudnamn och en programhemlighet

Tjänstens huvudnamn är en autentiseringsmetod som kan användas för att ge ett Microsoft Entra-program åtkomst Power BI-tjänst innehåll och API:er.

När du skapar en Microsoft Entra-app skapas ett objekt för tjänstens huvudnamn . Objektet för tjänstens huvudnamn, även kallat tjänstens huvudnamn, gör att Microsoft Entra-ID kan autentisera din app. När den har autentiserats kan appen komma åt Microsoft Entra-klientresurser.

För att autentisera använder tjänstens huvudnamn Microsoft Entra-appens program-ID och något av följande:

  • Ett certifikat
  • En programhemlighet

I den här artikeln beskrivs autentisering med tjänstens huvudnamn med hjälp av ett program-ID och en programhemlighet.

Kommentar

Vi rekommenderar att du skyddar dina serverdelstjänster med hjälp av certifikat i stället för hemliga nycklar.

Metod

Om du vill använda tjänstens huvudnamn och ett program-ID för inbäddad analys utför du följande steg. Följande avsnitt beskriver dessa steg i detalj.

  1. Skapa en Microsoft Entra-app.

    1. Skapa en hemlighet för din Microsoft Entra-app.
    2. Hämta appens program-ID och programhemlighet.

    Kommentar

    De här stegen beskrivs i steg 1. Mer information om hur du skapar en Microsoft Entra-app finns i skapa en Microsoft Entra-app.

  2. Skapa en Microsoft Entra-säkerhetsgrupp.

  3. Aktivera administratörsinställningarna för Power BI-tjänst.

  4. Lägg till tjänstens huvudnamn på din arbetsyta.

  5. Bädda in ditt innehåll.

Viktigt!

Ett Microsoft Entra-program kräver inte att du konfigurerar delegerade behörigheter eller programbehörigheter i Azure-portalen när det har skapats för ett huvudnamn för tjänsten. När du skapar ett Microsoft Entra-program för ett huvudnamn för tjänsten för åtkomst till Power BI REST API rekommenderar vi att du undviker att lägga till behörigheter. De används aldrig och kan orsaka fel som är svåra att felsöka.

Steg 1 – Skapa en Microsoft Entra-app

Skapa en Microsoft Entra-app med någon av följande metoder:

Skapa en Microsoft Entra-app i Azure-portalen

  1. Logga in på Azure-portalen.

  2. Sök efter och välj Appregistreringar.

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

  3. Välj Ny registrering.

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

  4. Fyll i nödvändig information:

    • Namn – Ange ett namn för ditt program.
    • Kontotyper som stöds – Välj kontotyper som stöds.
    • (Valfritt) Omdirigerings-URI – Ange en URI om det behövs.
  5. Välj Registrera.

  6. När du har registrerat appen är program-ID :t tillgängligt på fliken Översikt . Kopiera och spara program-ID:t för senare användning.

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

  7. Välj Certifikat och hemligheter.

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

  8. Välj Ny klienthemlighet.

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

  9. I fönstret Lägg till en klienthemlighet anger du en beskrivning, anger när du vill att klienthemligheten ska upphöra att gälla och väljer Lägg till.

  10. Kopiera och spara värdet för klienthemlighet.

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

    Kommentar

    När du har lämnat det här fönstret är klienthemlighetsvärdet dolt och du kan inte visa eller kopiera det igen.

Skapa en Microsoft Entra-app med hjälp av PowerShell

Följande PowerShell-exempelskript skapar en ny Microsoft Entra-app och ett huvudnamn för tjänsten. Innan du kör det här skriptet:

När skriptet har körts antecknar du följande information i skriptutdata:

  • Klient-ID för den nya appen
  • Objekt-ID för det nya tjänstens huvudnamn
  • Värdet för tjänstens huvudnamnshemlighet
# 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)

Steg 2 – Skapa en Microsoft Entra-säkerhetsgrupp

Tjänstens huvudnamn har inte åtkomst till något av dina Power BI-innehåll och API:er. Skapa en säkerhetsgrupp i Microsoft Entra-ID för att ge tjänstens huvudnamn åtkomst. Lägg sedan till tjänstens huvudnamn som du skapade i säkerhetsgruppen.

Kommentar

Om du vill aktivera åtkomst till tjänstens huvudnamn för hela organisationen hoppar du över det här steget.

Det finns två sätt att skapa en Microsoft Entra-säkerhetsgrupp:

Skapa en säkerhetsgrupp manuellt

Om du vill skapa en Azure-säkerhetsgrupp manuellt följer du anvisningarna i Skapa en grundläggande grupp och lägger till medlemmar.

Skapa en säkerhetsgrupp med hjälp av PowerShell

Följande exempelskript skapar en ny säkerhetsgrupp. Det lägger också till tjänstens huvudnamn som du skapade tidigare i den nya säkerhetsgruppen.

  • Innan du kör skriptet ersätter <app-client-ID> du med det klient-ID som du registrerade tidigare för din nya app.
  • När du har kört skriptet antecknar du objekt-ID:t för den nya säkerhetsgruppen, som du hittar i skriptutdata.
# 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)

Steg 3 – Aktivera administratörsinställningarna för Power BI-tjänst

För att en Microsoft Entra-app ska få åtkomst till Power BI-innehåll och API:er måste en Power BI-administratör aktivera följande inställningar:

  • Bädda in innehåll i appar
  • Tillåt tjänsthuvudnamn att använda Power BI API:er

I Power BI-administratörsportalen går du till Klientinställningar och rullar ned till Inställningar för utvecklare.

  • Aktivera Bädda in innehåll i appar för hela organisationen eller för den specifika säkerhetsgrupp som du skapade 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.

  • Aktivera Tillåt att tjänstens huvudnamn använder Power BI-API för hela organisationen eller för den specifika säkerhetsgrupp som du skapade 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.

    Viktigt!

    Tjänstens huvudnamn har åtkomst till alla klientinställningar som de är aktiverade för. Beroende på administratörsinställningarna omfattar detta specifika säkerhetsgrupper eller hela organisationen.

    Om du vill begränsa tjänstens huvudnamnsåtkomst till specifika klientinställningar tillåter du endast åtkomst till specifika säkerhetsgrupper. Du kan också skapa en dedikerad säkerhetsgrupp för tjänstens huvudnamn och exkludera den från önskade klientinställningar.

Steg 4 – Lägga till tjänstens huvudnamn på din arbetsyta

Din Microsoft Entra-app kan bara komma åt dina Power BI-rapporter, instrumentpaneler och semantiska modeller när den har åtkomst till din Power BI-arbetsyta. Du ger den åtkomsten genom att lägga till appens tjänsthuvudnamn eller dess säkerhetsgrupp på din arbetsyta som medlem eller administratör.

Det finns tre sätt att lägga till ett huvudnamn för tjänsten eller dess säkerhetsgrupp på din arbetsyta:

Lägga till tjänstens huvudnamn eller säkerhetsgrupp manuellt

  1. I Power BI-tjänst bläddrar du till den arbetsyta som du vill aktivera åtkomst för. På menyn Mer väljer du Åtkomst till arbetsyta.

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

  2. I fönstret Åtkomst under Lägg till administratörer, medlemmar eller deltagare lägger du till något av följande:

    • Tjänstens huvudnamn. Namnet på tjänstens huvudnamn är visningsnamnet för din Microsoft Entra-app, som det visas på översiktsfliken för din Microsoft Entra-app.
    • Säkerhetsgruppen som innehåller tjänstens huvudnamn.
  3. På den nedrullningsbara menyn väljer du Medlem eller Administratör.

  4. Markera Lägga till.

Lägga till tjänstens huvudnamn eller säkerhetsgrupp med hjälp av PowerShell

Följande avsnitt innehåller PowerShell-exempelskript för att lägga till ett huvudnamn för tjänsten och en säkerhetsgrupp till en Power BI-arbetsyta som medlem.

Lägga till ett tjänsthuvudnamn som medlem i arbetsytan med hjälp av PowerShell

Följande skript lägger till ett huvudnamn för tjänsten som medlem i arbetsytan. Innan du kör skriptet:

  • Ersätt <service-principal-object-ID> med objekt-ID:t som du registrerade tidigare för det nya tjänstens huvudnamn.
  • Ersätt <workspace-name> med namnet på arbetsytan som du vill ge tjänstens huvudnamn åtkomst till.
# 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)

Lägga till en säkerhetsgrupp som medlem i arbetsytan med hjälp av PowerShell

Följande skript lägger till en säkerhetsgrupp som medlem i arbetsytan. Innan du kör skriptet:

  • Ersätt <security-group-object-ID> med objekt-ID:t som du registrerade tidigare för din nya säkerhetsgrupp.
  • Ersätt <workspace-name> med namnet på arbetsytan som du vill ge säkerhetsgruppen åtkomst till.
# 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)

Steg 5 – Bädda in ditt innehåll

Du kan bädda in ditt innehåll i ett exempelprogram eller i ditt eget program.

När innehållet har bäddas in är du redo att gå över till produktion.

Kommentar

Om du vill skydda ditt innehåll med hjälp av ett certifikat följer du stegen som beskrivs i Bädda in Power BI-innehåll med tjänstens huvudnamn och ett certifikat.

Beaktanden och begränsningar

  • Min arbetsyta stöds inte när du använder tjänstens huvudnamn.
  • En kapacitet krävs när du flyttar till produktion.
  • Du kan inte logga in på Power BI-portalen med hjälp av tjänstens huvudnamn.
  • Power BI-administratörsrättigheter krävs för att aktivera tjänstens huvudnamn i utvecklarinställningarna i Power BI-administratörsportalen.
  • Bädda in för organisationens program kan inte använda tjänstens huvudnamn.
  • Dataflödeshantering stöds inte.
  • Tjänstens huvudnamn stöder endast vissa skrivskyddade administratörs-API:er. Om du vill aktivera stöd för tjänstens huvudnamn för skrivskyddade administratörs-API:er måste du aktivera administratörsinställningarna för Power BI-tjänst i klientorganisationen. Mer information finns i Aktivera autentisering med tjänstens huvudnamn för skrivskyddade administratörs-API:er.
  • När du använder tjänstens huvudnamn med en Azure Analysis Services-datakälla måste själva tjänstens huvudnamn ha Azure Analysis Services-instansbehörigheter. Att använda en säkerhetsgrupp som innehåller tjänstens huvudnamn för det här ändamålet fungerar inte.