Esercitazione: Incorporare report impaginati di Power BI in un'applicazione per i clientiTutorial: Embed Power BI paginated reports into an application for your customers

Con Power BI Embedded in Azure o l'incorporamento di Power BI in Office, è possibile incorporare report impaginati in un'applicazione usando dati di proprietà dell'app.With Power BI Embedded in Azure or Power BI embedding in Office, you can embed paginated reports into an application using app owns data. I dati di proprietà dell'app consistono nel disporre di un'applicazione che usa Power BI come piattaforma di analisi incorporata.App owns data is about having an application that uses Power BI as its embedded analytics platform. Gli ISV o gli sviluppatori possono creare contenuto Power BI che visualizza report impaginati in un'applicazione completamente integrata e interattiva, senza richiedere agli utenti di disporre di una licenza di Power BI.As an ISV or a developer, you can create Power BI content that displays paginated reports in an application that is fully integrated and interactive, without requiring users to have a Power BI license. Questa esercitazione illustra come integrare un report impaginato in un'applicazione usando il Power BI .NET SDK con le API client Power BI.This tutorial demonstrates how to integrate a paginated report into an application using the Power BI .NET SDK with the Power BI Client APIs.

Incorporare report di Power BI

In questa esercitazione viene illustrato come:In this tutorial, you learn how to:

  • Registrare un'applicazione in Azure.Register an application in Azure.
  • Incorporare un report impaginato di Power BI in un'applicazione.Embed a Power BI paginated report into an application.

PrerequisitiPrerequisites

Per iniziare, è necessario avere:To get started, you're required to have:

Se non si ha una sottoscrizione di Azure, prima di iniziare creare un account gratuito.If you don't have an Azure subscription, create a free account before you begin.

Importante

Configurare l'ambiente di Power BISet up your Power BI environment

Per incorporare un report impaginato è necessario assegnare un'area di lavoro a una capacità e caricare il report nell'area di lavoro.Embedding a paginated report requires assigning a workspace to a capacity, and uploading the report to the workspace.

Crea area di lavoro per le appCreate an app workspace

Se invece si usa l'entità servizio per accedere all'applicazione, è necessario usare le nuove aree di lavoro.As you're using a service principal to sign into your application, you're required to use the new workspaces. In qualità di entità servizio, è anche necessario essere un amministratore o un membro delle aree di lavoro per le app coinvolte nell'applicazione.As a service principal, you must also be an admin or member of the app workspaces involved with your application.

Creare una capacitàCreate a capacity

Prima di importare o caricare un report impaginato da incorporare, l'area di lavoro contenente il report deve essere assegnata almeno a una capacità A4 o P1.Before you import or upload a paginated report to embed, the workspace containing the report must be assigned to at least an A4 or P1 capacity. In Power BI è possibile scegliere tra due tipi di capacità:There are two types of capacity you can choose from:

  • Power BI Premium: per incorporare un report impaginato, è necessaria una capacità SKU P.Power BI Premium - For embedding a paginated report, a P SKU capacity is required. Quando si incorpora il contenuto di Power BI, questa soluzione viene definita incorporamento di Power BI.When embedding Power BI content, this solution is referred to as Power BI embedding. Per altre informazioni su questa sottoscrizione, vedere Che cos'è Power BI Premium?For more information regarding this subscription, see What is Power BI Premium?

  • Azure Power BI Embedded: è possibile acquistare una capacità dal portale di Microsoft Azure.Azure Power BI Embedded - You can purchase a capacity from the Microsoft Azure portal. Questa sottoscrizione usa gli SKU A.This subscription uses the A SKUs. Per l'incorporamento di report impaginati è necessaria almeno una sottoscrizione A4.For embedding paginated reports you need at least an A4 subscription. Per informazioni dettagliate su come creare una capacità per Power BI Embedded, vedere Create Power BI Embedded capacity in the Azure portal (Creare capacità per Power BI Embedded nel portale di Azure).For details on how to create a Power BI Embedded capacity, see Create Power BI Embedded capacity in the Azure portal.

    Nota

    Per Power BI Embedded è stata rilasciata di recente una nuova versione, denominata Embedded Gen2.Power BI Embedded recently released a new version, called Embedded Gen2. Embedded Gen2 semplificherà la gestione delle capacità incorporate e migliorerà l'esperienza per Power BI Embedded.Embedded Gen2 will simplify the management of embedded capacities, and improve the Power BI Embedded experience. Per altre informazioni, vedere Power BI Embedded - Seconda generazione.For more information, see Power BI Embedded Generation 2.

La tabella seguente descrive le risorse e i limiti di ogni SKU.The table below describes the resources and limits of each SKU. Per determinare la capacità più adatta alle proprie esigenze, vedere la tabella Quale SKU devo acquistare per il mio scenario.To determine which capacity best fits your needs, see the which SKU should I purchase for my scenario table.

Nodi delle capacitàCapacity Nodes Totale vCoreTotal v-cores vCore back-endBackend v-cores RAM (GB)RAM (GB) vCore front-endFrontend v-cores
A1 con Embedded Gen2A1 with Embedded Gen2 11 0.50.5 2.52.5 0.50.5
A2 con Embedded Gen2A2 with Embedded Gen2 22 11 55 11
A3 con Embedded Gen2A3 with Embedded Gen2 44 22 1010 22
P1/A4P1/A4 88 44 2525 44
P2/A5P2/A5 1616 88 5050 88
P3/A6P3/A6 3232 1616 100100 1616

Assegnare un'area di lavoro dell'app a una capacitàAssign an app workspace to a capacity

Dopo aver creato una capacità, è possibile assegnare a questa l'area di lavoro dell'app.Once you create a capacity, you can assign your app workspace to that capacity.

Per assegnare una capacità a un'area di lavoro con un'entità servizio, usare l'API REST di Power BI.To assign a capacity to a workspace using service principal, use the Power BI REST API. Quando si usano le API REST di Power BI, assicurarsi di usare l'ID oggetto dell'entità servizio.When you are using the Power BI REST APIs, make sure to use the service principal object ID.

Creare e caricare i report impaginatiCreate and upload your paginated reports

È possibile creare il report impaginato con Generatore report di Power BI e quindi caricare il report nel servizio.You can create your paginated report using Power BI Report Builder, and then upload the report to the service.

È possibile importare report impaginati nelle nuove aree di lavoro usando le API REST di Power BI.You can import paginated reports into the new workspaces using the Power BI REST APIs.

Incorporare il contenuto usando l'applicazione di esempioEmbed content using the sample application

Questo esempio è volutamente semplice per scopo dimostrativo.This sample is deliberately kept simple for demonstration purposes. Sarà l'utente o lo sviluppatore a scegliere se proteggere il segreto dell'applicazione.It's up to you or your developers to protect the application secret.

Seguire questa procedura per avviare l'incorporamento del contenuto usando l'applicazione di esempio.Follow the steps below to start embedding your content using the sample application.

  1. Scaricare Visual Studio (2013 o versione successiva).Download Visual Studio (version 2013 or later). Assicurarsi di scaricare la versione più recente del pacchetto NuGet.Make sure to download the latest NuGet package.

  2. Scaricare l'esempio App Owns Data da GitHub per iniziare.Download the App Owns Data sample from GitHub to get started.

    Applicazione di esempio App Owns Data

  3. Aprire il file Web.config nell'applicazione di esempio.Open the Web.config file in the sample application. Per eseguire l'applicazione, è necessario compilare alcuni campi.There are fields you need to fill in to run the application. Scegliere ServicePrincipal per AuthenticationType.Choose ServicePrincipal for the AuthenticationType.

    Compilare i campi seguenti:Fill in the following fields:

    Nota

    Il valore predefinito per AuthenticationType in questo esempio è MasterUser.The default AuthenticationType in this sample is MasterUser. Assicurarsi di sostituirlo con ServicePrincipal.Make sure you change it to ServicePrincipal.

    File Web.config

ID applicazioneApplication ID

In applicationId inserire il valore di ID applicazione di Azure.Fill in the applicationId information with the Application ID from Azure. Il valore applicationId viene usato per l'identificazione dell'applicazione per gli utenti ai quali si richiedono le autorizzazioni.The applicationId is used by the application to identify itself to the users from which you're requesting permissions.

Per ottenere il valore applicationId seguire questa procedura:To get the applicationId, follow these steps:

  1. Accedere al portale di Azure.Sign into the Azure portal.

  2. Nel riquadro di spostamento a sinistra, scegliere Tutti i servizi e cercare Registrazioni app.In the left-hand nav pane, select All Services, and search for App Registrations.

    Ricerca di Registrazioni per l'app

  3. Selezionare l'applicazione che deve usare il valore applicationId.Select the application that needs the applicationId.

    Lo screenshot illustra i nomi visualizzati delle applicazioni con un'applicazione selezionata che deve usare l'ID applicazione.

  4. Viene visualizzato un ID applicazione che viene elencato come GUID.There's an Application ID that is listed as a GUID. Usare questo ID applicazione come applicationId per l'applicazione.Use this Application ID as the applicationId for the application.

    applicationId

ID area di lavoroWorkspace ID

Compilare il campo workspaceId con il GUID (gruppo) dell'area di lavoro per le app di Power BI.Fill in the workspaceId information with the app workspace (group) GUID from Power BI. È possibile ottenere queste informazioni dall'URL di accesso al servizio Power BI o usando PowerShell.You can get this information either from the URL when signed into the Power BI service or using PowerShell.

URLURL

workspaceId

PowerShellPowerShell

Get-PowerBIworkspace -name "Paginated Report Embed"

workspaceId ottenuto da PowerShell

ID del reportReport ID

Compilare il campo reportId con il GUID del report di Power BI.Fill in the reportId information with the report GUID from Power BI. È possibile ottenere queste informazioni dall'URL di accesso al servizio Power BI o usando PowerShell.You can get this information either from the URL when signed into the Power BI service or using PowerShell.

URLURL

reportId

PowerShellPowerShell

Get-PowerBIworkspace -name "Paginated Report Embed" | Get-PowerBIReport

reportId ottenuto da PowerShell

Segreto dell'applicazioneApplication secret

Specificare le informazioni per ApplicationSecret dalla sezione Chiavi in Registrazioni app in Azure.Fill in the ApplicationSecret information from the Keys section of your App registrations section in Azure.

Per ottenere il valore ApplicationSecret, seguire questa procedura:To get the ApplicationSecret, follow these steps:

  1. Accedere al portale di Azure.Sign in to the Azure portal.

  2. Nel riquadro di spostamento a sinistra, scegliere Tutti i servizi e cercare Registrazioni app.In the left-hand nav pane, select All services and search for App registrations.

    Ricerca di Registrazioni per l'app

  3. Selezionare l'applicazione che deve usare il valore ApplicationSecret.Select the application that needs to use the ApplicationSecret.

    Lo screenshot illustra i nomi visualizzati delle applicazioni con un'applicazione selezionata che deve usare il segreto.

  4. Selezionare Certificati e segreti in Gestisci.Select Certificates and secrets under Manage.

  5. Selezionare New client secrets (Nuovi segreti client).Select New client secrets.

  6. Immettere un nome nella casella Descrizione e selezionare una durata.Enter a name in the Description box and select a duration. Quindi selezionare Salva per ottenere il Valore per l'applicazione.Then select Save to get the Value for your application. Chiudendo il riquadro Chiavi dopo aver salvato il valore della chiave, il campo del valore viene visualizzato solo come nascosto.When you close the Keys pane after saving the key value, the value field shows only as hidden. A questo punto, non è possibile recuperare il valore della chiave.At that point, you aren't able to retrieve the key value. Se il valore della chiave viene perso, crearne uno nuovo all'interno del portale di Azure.If you lose the key value, create a new one in the Azure portal.

    Valore chiave

TenantTenant

Compilare il campo tenant con l'ID tenant di Azure.Fill in the tenant information with your Azure tenant ID. È possibile ottenere queste informazioni dall'interfaccia di amministrazione di Azure AD quando si accede al servizio Power BI o tramite PowerShell.You can get this information from the Azure AD admin center when signed into the Power BI service or by using PowerShell.

Eseguire l'applicazioneRun the application

  1. Selezionare Esegui in Visual Studio.Select Run in Visual Studio.

    Eseguire l'applicazione

  2. Selezionare quindi Incorpora report.Then select Embed Report.

    Selezionare il contenuto

  3. È ora possibile visualizzare il report nell'applicazione di esempio.Now you can view the report in the sample application.

    Visualizzare l'applicazione

Incorporare report impaginati di Power BI nell'applicazioneEmbed Power BI paginated reports within your application

Anche se la procedura per incorporare i report impaginati di Power BI viene eseguita con le API REST di Power BI, i codici di esempio descritti in questo articolo vengono creati con .NET SDK.Even though the steps to embed your Power BI paginated reports are done with the Power BI REST APIs, the example codes described in this article are made with the .NET SDK.

Per incorporare report impaginati di Power BI per i clienti all'interno dell'applicazione, è necessario disporre di un'entità servizio di Azure AD e ottenere un token di accesso di Azure AD per l'applicazione Power BI, prima di effettuare chiamate alle API REST di Power BI.Embedding Power BI paginated reports for your customers within your application, requires you to have an Azure AD service principal and get an Azure AD access token for your Power BI application, before you make calls to the Power BI REST APIs.

Per creare il client Power BI con il token di accesso creare l'oggetto client Power BI, che consente di interagire con le API REST di Power BI.To create the Power BI Client with your access token, create a Power BI client object, which allows you to interact with the Power BI REST APIs. Si crea l'oggetto client di Power BI eseguendo il wrapping di AccessToken con un oggetto Microsoft. Rest. TokenCredentials .You create the Power BI client object by wrapping the AccessToken with a Microsoft.Rest.TokenCredentials object.

using Microsoft.IdentityModel.Clients.ActiveDirectory;
using Microsoft.Rest;
using Microsoft.PowerBI.Api.V2;

var tokenCredentials = new TokenCredentials(authenticationResult.AccessToken, "Bearer");

// Create a Power BI Client object. it's used to call Power BI APIs.
using (var client = new PowerBIClient(new Uri(ApiUrl), tokenCredentials))
{
    // Your code to embed items.
}

Ottenere il report impaginato da incorporareGet the paginated report you want to embed

Usare l'oggetto client Power BI per recuperare un riferimento all'elemento da incorporare.You can use the Power BI client object to retrieve a reference to the item you want to embed.

Ecco un esempio del codice per recuperare il primo report da un'area di lavoro specifica.Here is a code sample of how to retrieve the first report from a given workspace.

Un esempio di come recuperare un elemento di contenuto da incorporare, che si tratti di un report, dashboard o riquadro, è disponibile all'interno del file Services\EmbedService.cs nell'applicazione di esempio.A sample of getting a content item whether it's a report, dashboard, or tile that you want to embed is available within the Services\EmbedService.cs file in the sample application.

using Microsoft.PowerBI.Api.V2;
using Microsoft.PowerBI.Api.V2.Models;

// You need to provide the workspaceId where the dashboard resides.
ODataResponseListReport reports = await client.Reports.GetReportsInGroupAsync(workspaceId);

// Get the first report in the group.
Report report = reports.Value.FirstOrDefault();

Creare il token di incorporamentoCreate the embed token

Generare un token di incorporamento, che può essere usato dalle API client di analisi incorporate Power BI.Generate an embed token, which can be used from the Power BI embedded analytics Client APIs. Per creare un token incorporato per l'incorporamento dei report impaginati di Power BI, usare l'API Reports GenerateTokenInGroup.To create an embedded token for embedding Power BI paginated reports, use the Reports GenerateTokenInGroup API.

Un esempio di creazione di un token di incorporamento è disponibile nel file Services\EmbedService.cs dell'applicazione di esempio.A sample of creating an embed token is available within the Services\EmbedService.cs file in the sample application.

using Microsoft.PowerBI.Api.V2;
using Microsoft.PowerBI.Api.V2.Models;

// Generate Embed Token.
var generateTokenRequestParameters = new GenerateTokenRequest(accessLevel: "view");
EmbedToken tokenResponse = client.Reports.GenerateTokenInGroup(workspaceId, report.Id, generateTokenRequestParameters);

// Generate Embed Configuration.
var embedConfig = new EmbedConfig()
{
    EmbedToken = tokenResponse,
    EmbedUrl = report.EmbedUrl,
    Id = report.Id
};

Caricare un elemento usando le API clientLoad an item using the Client APIs

È possibile usare le API client di analisi incorporate di Power BI per caricare un report impaginato in un elemento div nella pagina Web.You can use the Power BI embedded analytics Client APIs to load a paginated report into a div element on your web page.

Per un esempio completo dell'uso dell'API client, è possibile usare lo strumento Playground.For a full sample of using the Client API, you can use the Playground tool. Lo strumento Playground consente di riprodurre in modo rapido esempi di Power BI Embedded di tipo diverso.The Playground tool is a quick way to play with different types of Power BI Embedded samples. È anche possibile ottenere altre informazioni sull'API client di Power BI embedded Analytics visitando la pagina API client di Power BI embedded Analytics .You can also get more Information about the Power BI embedded analytics Client API by visiting the Power BI embedded analytics Client APIs page.

Passaggi successiviNext steps

In questa esercitazione è stato descritto come incorporare i report impaginati di Power BI in un'applicazione per i clienti.In this tutorial, you've learned how to embed Power BI paginated reports into an application for your customers. È anche possibile provare a incorporare il contenuto di Power BI per i clienti o per l'organizzazione.You can also try to embed Power BI content for your customers or your organization.

Altre domande?More questions? Provare a rivolgersi alla community di Power BITry asking the Power BI Community