Power BI-inhoud insluiten met service-principal en een toepassingsgeheim
Service-principal is een verificatiemethode die kan worden gebruikt om een Microsoft Entra-toepassing toegang te geven tot Power BI-service inhoud en API's.
Wanneer u een Microsoft Entra-app maakt, wordt er een service-principal-object gemaakt. Het service-principal-object, ook wel service-principal genoemd, stelt Microsoft Entra-id in staat om uw app te verifiëren. Nadat deze is geverifieerd, heeft de app toegang tot microsoft Entra-tenantbronnen.
Voor verificatie gebruikt de service-principal de toepassings-id van de Microsoft Entra-app en een van de volgende opties:
- Een certificaat
- Een toepassingsgeheim
In dit artikel worden service-principalverificatie beschreven met behulp van een toepassings-id en een toepassingsgeheim.
Notitie
U wordt aangeraden uw back-endservices te beveiligen met behulp van certificaten, in plaats van geheime sleutels.
- Meer informatie over het ophalen van toegangstokens van Microsoft Entra ID met behulp van geheime sleutels of certificaten.
- Als u uw oplossing wilt beveiligen met behulp van een certificaat, voert u de instructies in dit artikel uit en volgt u de stappen die worden beschreven in Power BI-inhoud insluiten met een service-principal en een certificaat.
Wijze
Als u service-principal en een toepassings-id voor ingesloten analyses wilt gebruiken, voert u de volgende stappen uit. In volgende secties worden deze stappen gedetailleerd beschreven.
Maak een Microsoft Entra-app.
- Maak een geheim voor uw Microsoft Entra-app.
- Haal de toepassings-id en het toepassingsgeheim van de app op.
Maak een Microsoft Entra-beveiligingsgroep.
Schakel de Power BI-service-beheerinstellingen in.
Voeg de service-principal toe aan uw werkruimte.
Uw inhoud insluiten.
Belangrijk
Voor een Microsoft Entra-toepassing hoeft u geen gedelegeerde machtigingen of toepassingsmachtigingen te configureren in Azure Portal wanneer deze is gemaakt voor een service-principal. Wanneer u een Microsoft Entra-toepassing voor een service-principal maakt voor toegang tot de Power BI REST API, wordt u aangeraden geen machtigingen toe te voegen. Ze worden nooit gebruikt en kunnen fouten veroorzaken die moeilijk kunnen worden opgelost.
Stap 1: Een Microsoft Entra-app maken
U kunt een Microsoft Entra-app maken vanuit Azure Portal of met behulp van PowerShell:
Meld u aan bij het Azure-portaal.
Zoek en selecteer App-registraties.
Selecteer Nieuwe registratie.
Vul de vereiste gegevens in:
- Naam : voer een naam in voor uw toepassing.
- Ondersteunde accounttypen : selecteer ondersteunde accounttypen.
- (Optioneel) Omleidings-URI : voer indien nodig een URI in.
Selecteer Registreren.
Nadat u uw app hebt geregistreerd, is de toepassings-id beschikbaar op het tabblad Overzicht . Kopieer en sla de toepassings-id op voor later gebruik.
Selecteer Certificaten en geheimen.
Selecteer Nieuw clientgeheim.
Voer in het venster Een clientgeheim toevoegen een beschrijving in, geef op wanneer u het clientgeheim wilt laten verlopen en selecteer Toevoegen.
Kopieer de clientgeheimwaarde en sla deze op.
Notitie
Nadat u dit venster hebt verlaten, is de waarde van het clientgeheim verborgen en kunt u deze niet meer weergeven of kopiëren.
Stap 2: een Microsoft Entra-beveiligingsgroep maken
Uw service-principal heeft geen toegang tot uw Power BI-inhoud en API's. Als u de service-principal toegang wilt geven, maakt u een beveiligingsgroep in Microsoft Entra-id. Voeg vervolgens de service-principal toe die u hebt gemaakt aan die beveiligingsgroep.
Notitie
Als u service-principaltoegang wilt inschakelen voor de hele organisatie, slaat u deze stap over.
Er zijn twee manieren om een Microsoft Entra-beveiligingsgroep te maken:
Handmatig een beveiligingsgroep maken
Als u handmatig een Azure-beveiligingsgroep wilt maken, volgt u de instructies in Een basisgroep maken. Voeg op dit moment geen leden toe aan de groep.
Een beveiligingsgroep maken met behulp van PowerShell
Met het volgende voorbeeldscript wordt een nieuwe beveiligingsgroep gemaakt. Ook wordt de service-principal die u eerder hebt gemaakt, toegevoegd aan de nieuwe beveiligingsgroep.
- Voordat u het script uitvoert, vervangt
<app-client-ID>
u de client-id die u eerder hebt vastgelegd voor uw nieuwe app. - Nadat u het script hebt uitgevoerd, noteert u de object-id van de nieuwe beveiligingsgroep, die u kunt vinden in de scriptuitvoer.
# 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)
Stap 3: de Power BI-service-beheerinstellingen inschakelen
Voor toegang tot de Power BI-inhoud en API's moet een Power BI-beheerder de volgende instellingen inschakelen voor een Microsoft Entra-app:
- Inhoud in apps insluiten
- Toestaan dat service-principals gebruikmaken van API's van Power BI
Ga in de Power BI-beheerportal naar Tenantinstellingen en schuif omlaag naar Instellingen voor ontwikkelaars.
Schakel Inhoud insluiten in apps in voor de hele organisatie of voor de specifieke beveiligingsgroep die u hebt gemaakt in Microsoft Entra-id.
Schakel Service-principals in om API van Power BI te gebruiken voor de hele organisatie of voor de specifieke beveiligingsgroep die u in Microsoft Entra-id hebt gemaakt.
Belangrijk
Service-principals hebben toegang tot alle tenantinstellingen waarvoor ze zijn ingeschakeld. Afhankelijk van uw beheerdersinstellingen omvat dit specifieke beveiligingsgroepen of de hele organisatie.
Als u de toegang van de service-principal tot specifieke tenantinstellingen wilt beperken, staat u alleen toegang toe tot specifieke beveiligingsgroepen. U kunt ook een toegewezen beveiligingsgroep maken voor service-principals en deze uitsluiten van de gewenste tenantinstellingen.
Stap 4: De service-principal toevoegen aan uw werkruimte
Uw Microsoft Entra-app heeft alleen toegang tot uw Power BI-rapporten, -dashboards en -semantische modellen wanneer deze toegang heeft tot uw Power BI-werkruimte als lid of beheerder. U geeft deze toegang door de service-principal of de beveiligingsgroep van de app toe te voegen aan uw werkruimte.
Er zijn drie manieren om een service-principal of de bijbehorende beveiligingsgroep toe te voegen aan uw werkruimte:
Handmatig een service-principal of beveiligingsgroep toevoegen
Schuif in de Power BI-service naar de werkruimte waarvoor u toegang wilt inschakelen. Selecteer werkruimtetoegang in het menu Meer.
Voeg in het deelvenster Access onder Beheerders, leden of inzenders toevoegen een van de volgende handelingen toe:
- Uw service-principal. De naam van uw service-principal is de weergavenaam van uw Microsoft Entra-app, zoals deze wordt weergegeven op het tabblad Overzicht van uw Microsoft Entra-app.
- De beveiligingsgroep die uw service-principal bevat.
Selecteer Lid of Beheerder in de vervolgkeuzelijst.
Selecteer Toevoegen.
Een service-principal of beveiligingsgroep toevoegen met behulp van PowerShell
De volgende secties bevatten voorbeelden van PowerShell-scripts voor het toevoegen van een service-principal en een beveiligingsgroep aan een Power BI-werkruimte als lid.
Een service-principal toevoegen als werkruimtelid met behulp van PowerShell
Met het volgende script wordt een service-principal toegevoegd als lid van de werkruimte. Voordat u het script uitvoert:
- Vervang door
<service-principal-object-ID>
de object-id die u eerder hebt vastgelegd voor uw nieuwe service-principal. - Vervang
<workspace-name>
door de naam van de werkruimte waartoe u de service-principal toegang wilt geven.
# 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)
Een beveiligingsgroep toevoegen als werkruimtelid met behulp van PowerShell
Met het volgende script wordt een beveiligingsgroep toegevoegd als lid van de werkruimte. Voordat u het script uitvoert:
- Vervang door
<security-group-object-ID>
de object-id die u eerder hebt vastgelegd voor uw nieuwe beveiligingsgroep. - Vervang
<workspace-name>
door de naam van de werkruimte waartoe u de beveiligingsgroep toegang wilt geven.
# 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)
Stap 5: Uw inhoud insluiten
U kunt uw inhoud insluiten in een voorbeeldtoepassing of in uw eigen toepassing.
Nadat uw inhoud is ingesloten, bent u klaar om naar productie te gaan.
Notitie
Als u uw inhoud wilt beveiligen met behulp van een certificaat, volgt u de stappen die worden beschreven in Power BI-inhoud insluiten met een service-principal en een certificaat.
Overwegingen en beperkingen
- Mijn werkruimte wordt niet ondersteund bij het gebruik van een service-principal.
- Er is een capaciteit vereist bij het verplaatsen naar productie.
- U kunt zich niet aanmelden bij de Power BI-portal met behulp van een service-principal.
- Power BI-beheerdersrechten zijn vereist om de service-principal in te schakelen in de instellingen voor ontwikkelaars in de Power BI-beheerportal.
- Insluiten voor uw organisatietoepassingen kan geen service-principal gebruiken.
- Beheer van gegevensstromen wordt niet ondersteund.
- Niet alle alleen-lezen API's worden ondersteund door een service-principal. Als u service-principalondersteuning wilt inschakelen voor alleen-lezen beheer-API's, schakelt u de Power BI-service-beheerinstellingen in uw tenant in. Zie Verificatie van de service-principal inschakelen voor alleen-lezen beheer-API's voor meer informatie.
- Wanneer u een service-principal gebruikt met een Azure Analysis Services-gegevensbron , moet de service-principal zelf machtigingen hebben voor het Azure Analysis Services-exemplaar. Het gebruik van een beveiligingsgroep die de service-principal voor dit doel bevat, werkt niet.