Incorporare contenuto di Power BI con un'entità servizio e un segreto dell'applicazione

L'entità servizio è un metodo di autenticazione che può essere usato per consentire a un'applicazione Microsoft Entra di accedere servizio Power BI contenuto e API.

Quando si crea un'app Microsoft Entra, viene creato un oggetto entità servizio. L'oggetto entità servizio, noto anche come entità servizio, consente a Microsoft Entra ID di autenticare l'app. Dopo l'autenticazione, l'app può accedere alle risorse tenant di Microsoft Entra.

Per eseguire l'autenticazione, l'entità servizio usa l'ID applicazione dell'app Microsoft Entra e uno dei seguenti:

  • Un certificato
  • Segreto dell'applicazione

Questo articolo descrive l'autenticazione dell'entità servizio usando un ID applicazione e un segreto dell'applicazione.

Nota

È consigliabile proteggere i servizi back-end usando certificati anziché chiavi segrete.

metodo

Per usare un'entità servizio e un ID applicazione per l'analisi incorporata, seguire questa procedura. Le sezioni successive descrivono in dettaglio questi passaggi.

  1. Creare un'app Microsoft Entra.

    1. Creare un segreto per l'app Microsoft Entra.
    2. Ottenere l'ID applicazione e il segreto dell'applicazione dell'app.

    Nota

    Questi passaggi sono descritti nel passaggio 1. Per altre informazioni sulla creazione di un'app Microsoft Entra, vedere Creare un'app Microsoft Entra.

  2. Creare un gruppo di sicurezza Microsoft Entra.

  3. Abilitare le impostazioni di amministratore servizio Power BI.

  4. Aggiungere l'entità servizio all'area di lavoro.

  5. Incorporare il contenuto.

Importante

Un'applicazione Microsoft Entra non richiede di configurare autorizzazioni delegate o autorizzazioni dell'applicazione nel portale di Azure quando è stato creato per un'entità servizio. Quando si crea un'applicazione Microsoft Entra per un'entità servizio per accedere all'API REST di Power BI, è consigliabile evitare di aggiungere autorizzazioni. Non vengono mai usati e possono causare errori difficili da risolvere.

Passaggio 1- Creare un'app Microsoft Entra

Creare un'app Microsoft Entra usando uno di questi metodi:

Creare un'app Microsoft Entra nel portale di Azure

  1. Accedere al portale di Azure.

  2. Cercare e selezionare Registrazioni app.

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

  3. Seleziona Nuova registrazione.

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

  4. Specificare le informazioni necessarie:

    • Nome : immettere un nome per l'applicazione.
    • Tipi di account supportati: selezionare i tipi di account supportati.
    • (Facoltativo) URI di reindirizzamento: immettere un URI, se necessario.
  5. Selezionare Registra.

  6. Dopo aver registrato l'app, l'ID applicazione è disponibile nella scheda Panoramica. Copiare e salvare l'ID applicazione per un uso successivo.

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

  7. Selezionare Certificati e segreti.

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

  8. Selezionare Nuovo segreto client.

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

  9. Nella finestra Aggiungi un segreto client immettere una descrizione, specificare quando si desidera che il segreto client scada e selezionare Aggiungi.

  10. Copia e salva il valore del segreto client.

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

    Nota

    Dopo aver lasciato questa finestra, il valore del segreto client è nascosto e non è possibile visualizzarlo o copiarlo di nuovo.

Creare un'app Microsoft Entra usando PowerShell

Lo script di PowerShell di esempio seguente crea una nuova app Microsoft Entra e un'entità servizio. Prima di eseguire questo script:

Dopo l'esecuzione dello script, prendere nota delle informazioni seguenti nell'output dello script:

  • ID client della nuova app
  • ID oggetto della nuova entità servizio
  • Valore del segreto dell'entità servizio
# 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)

Passaggio 2: Creare un gruppo di sicurezza Di Microsoft Entra

L'entità servizio non ha accesso a nessun contenuto e API di Power BI. Per concedere all'entità servizio l'accesso, creare un gruppo di sicurezza in Microsoft Entra ID. Aggiungere quindi l'entità servizio creata a tale gruppo di sicurezza.

Nota

Se si vuole abilitare l'accesso all'entità servizio per l'intera organizzazione, ignorare questo passaggio.

Esistono due modi per creare un gruppo di sicurezza Di Microsoft Entra:

Creare manualmente un gruppo di sicurezza

Per creare manualmente un gruppo di sicurezza di Azure, seguire le istruzioni in Creare un gruppo di base e aggiungere membri.

Creare un gruppo di sicurezza usando PowerShell

Lo script di esempio seguente crea un nuovo gruppo di sicurezza. Aggiunge anche l'entità servizio creata in precedenza al nuovo gruppo di sicurezza.

  • Prima di eseguire lo script, sostituire <app-client-ID> con l'ID client registrato in precedenza per la nuova app.
  • Dopo aver eseguito lo script, prendere nota dell'ID oggetto del nuovo gruppo di sicurezza, disponibile nell'output dello script.
# 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)

Passaggio 3: Abilitare le impostazioni di amministratore servizio Power BI

Per consentire a un'app Microsoft Entra di accedere al contenuto e alle API di Power BI, un amministratore di Power BI deve abilitare le impostazioni seguenti:

  • Incorpora il contenuto nelle app
  • Consenti alle entità servizio di usare le API Power BI

Nel portale di Power BI Amministrazione passare a Impostazioni tenant e scorrere verso il basso fino a Impostazioni sviluppatore.

  • Abilitare Incorpora contenuto nelle app per l'intera organizzazione o per il gruppo di sicurezza specifico creato in 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.

  • Abilitare Consenti alle entità servizio di usare API Power BI per l'intera organizzazione o per il gruppo di sicurezza specifico creato in 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.

    Importante

    Le entità servizio hanno accesso a qualsiasi impostazione del tenant per cui sono abilitate. A seconda delle impostazioni di amministratore, sono inclusi gruppi di sicurezza specifici o l'intera organizzazione.

    Per limitare l'accesso dell'entità servizio a impostazioni tenant specifiche, consentire l'accesso solo a gruppi di sicurezza specifici. In alternativa, è possibile creare un gruppo di sicurezza dedicato per le entità servizio ed escluderlo dalle impostazioni del tenant desiderate.

Passaggio 4: Aggiungere l'entità servizio all'area di lavoro

L'app Microsoft Entra può accedere ai report, ai dashboard e ai modelli semantici di Power BI solo quando ha accesso all'area di lavoro di Power BI. È possibile fornire l'accesso aggiungendo l'entità servizio dell'app o il relativo gruppo di sicurezza all'area di lavoro come membro o amministratore.

Esistono tre modi per aggiungere un'entità servizio o il relativo gruppo di sicurezza all'area di lavoro:

Aggiungere manualmente un'entità servizio o un gruppo di sicurezza

  1. Nella servizio Power BI scorrere fino all'area di lavoro per cui si vuole abilitare l'accesso. Nel menu Altro selezionare Accesso all'area di lavoro.

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

  2. Nel riquadro Accesso, in Aggiungi amministratori, membri o collaboratori, aggiungere una delle opzioni seguenti:

    • Entità servizio. Il nome dell'entità servizio è il nome visualizzato dell'app Microsoft Entra, come appare nella scheda panoramica dell'app Microsoft Entra.
    • Gruppo di sicurezza che include l'entità servizio.
  3. Nel menu a discesa selezionare Membro o Amministrazione.

  4. Selezionare Aggiungi.

Aggiungere un'entità servizio o un gruppo di sicurezza usando PowerShell

Le sezioni seguenti forniscono script di PowerShell di esempio per l'aggiunta di un'entità servizio e di un gruppo di sicurezza a un'area di lavoro di Power BI come membro.

Aggiungere un'entità servizio come membro dell'area di lavoro usando PowerShell

Lo script seguente aggiunge un'entità servizio come membro dell'area di lavoro. Prima di eseguire lo script:

  • Sostituire <service-principal-object-ID> con l'ID oggetto registrato in precedenza per la nuova entità servizio.
  • Sostituire <workspace-name> con il nome dell'area di lavoro a cui si vuole concedere l'accesso all'entità servizio.
# 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)

Aggiungere un gruppo di sicurezza come membro dell'area di lavoro usando PowerShell

Lo script seguente aggiunge un gruppo di sicurezza come membro dell'area di lavoro. Prima di eseguire lo script:

  • Sostituire <security-group-object-ID> con l'ID oggetto registrato in precedenza per il nuovo gruppo di sicurezza.
  • Sostituire <workspace-name> con il nome dell'area di lavoro a cui si vuole concedere l'accesso al gruppo di sicurezza.
# 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)

Passaggio 5: Incorporare il contenuto

È possibile incorporare il contenuto all'interno di un'applicazione di esempio o all'interno della propria applicazione.

Dopo aver incorporato il contenuto, si è pronti per passare all'ambiente di produzione.

Nota

Per proteggere il contenuto usando un certificato, seguire la procedura descritta in Incorporare contenuto di Power BI con un'entità servizio e un certificato.

Considerazioni e limitazioni

  • L'area di lavoro personale non è supportata quando si usa l'entità servizio.
  • Quando si passa alla produzione, è necessaria una capacità.
  • Non è possibile accedere al portale di Power BI usando l'entità servizio.
  • I diritti di amministratore di Power BI sono necessari per abilitare l'entità servizio nelle impostazioni di sviluppo all'interno del portale di Power BI Amministrazione.
  • L'incorporamento per le applicazioni dell'organizzazione non può usare l'entità servizio.
  • La gestione dei flussi di dati non è supportata.
  • L'entità servizio supporta solo alcune API di amministratore di sola lettura. Per abilitare il supporto dell'entità servizio per le API di amministratore di sola lettura, è necessario abilitare le impostazioni di amministratore servizio Power BI nel tenant. Per altre informazioni, vedere Abilitare l'autenticazione dell'entità servizio per le API di amministrazione di sola lettura.
  • Quando si usa un'entità servizio con un'origine dati di Azure Analysis Services , l'entità servizio stessa deve disporre delle autorizzazioni dell'istanza di Azure Analysis Services. L'uso di un gruppo di sicurezza che contiene l'entità servizio a questo scopo non è supportato.