Esercitazione: Incorporare contenuto di Power BI in un'applicazione per l'organizzazioneTutorial: Embed Power BI content into an application for your organization

Power BI consente di incorporare report (Power BI o impaginati), dashboard o riquadri in un'applicazione usando dati di proprietà dell'utente.In Power BI, you can embed reports (Power BI or Paginated), dashboards, or tiles into an application by using user owns data. I dati di proprietà dell'utente consentono all'applicazione di estendere il servizio Power BI e poter così usare l'analisi incorporata.User owns data lets your application extend the Power BI service so it can use embedded analytics. Questa esercitazione illustra come integrare un report (Power BI o impaginato) in un'applicazione.This tutorial demonstrates how to integrate a report (Power BI or Paginated) into an application. Power BI .NET SDK può essere usato con l'API JavaScript di Power BI per incorporare Power BI in un'applicazione per l'organizzazione.You use the Power BI .NET SDK with the Power BI JavaScript API to embed Power BI into an application for your organization.

Incorporare report di Power BI

In questa esercitazione vengono apprese le attività seguenti:In this tutorial, you learn the following tasks:

  • Registrare un'applicazione in Azure.Register an application in Azure.
  • Incorporare un report di Power BI o impaginato in un'applicazione usando il tenant di Power BI.Embed a Power BI or Paginated report into an application using your Power BI tenant.

PrerequisitiPrerequisites

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

Se non si è ancora iscritti a Power BI Pro, iscriversi per ottenere una versione di prova gratuita prima di iniziare.If you're not signed up for Power BI Pro, sign up for a free trial before you begin.

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.

Nota

È supportato Premium per utente (PPU).Premium Per User (PPU) is supported. Tuttavia, se si usa PPU, solo gli utenti PPU nell'organizzazione potranno accedere alla soluzione.However, if you're using PPU, only PPU users in your organization will be able to access your solution.

Configurare l'ambiente di sviluppo di analisi incorporataSet up your embedded analytics development environment

Prima di iniziare a incorporare report, dashboard o riquadri in un'applicazione, è necessario assicurarsi che l'ambiente consenta l'incorporamento con Power BI.Before you start embedding reports, dashboard, or tiles into your application, you need to make sure your environment allows for embedding with Power BI.

È possibile usare lo strumento di installazione dell'incorporamento per iniziare rapidamente e scaricare un'applicazione di esempio che facilita la creazione di un ambiente e l'incorporamento di un report.You can go through the Embedding setup tool, so you can quickly get started and download a sample application that helps you walk through creating an environment and embedding a report. Nel caso di incorporamento di un report impaginato, è necessario assegnare almeno una capacità P1 all'area di lavoro creata.In the case of embedding a paginated report you need to assign at least a P1 capacity to the created workspace.

Se tuttavia si sceglie di configurare l'ambiente manualmente, è possibile continuare con le istruzioni che seguono.If you choose to set up the environment manually, you can continue below.

Registrare un'applicazione in Azure Active DirectoryRegister an application in Azure Active Directory

Registrare l'applicazione in Azure Active Directory per consentire all'applicazione di accedere alle API REST di Power BI.Register your application with Azure Active Directory to allow your application access to the Power BI REST APIs. La registrazione consente di definire un'identità per l'applicazione e di specificare le autorizzazioni per accedere alle risorse REST di Power BI.Registering your application allows you to establish an identity for your application and specify permissions to Power BI REST resources.

Nota

Nell'applicazione sarà necessario passare ad Autenticazione e nel campo URI di reindirizzamento inserire l'indirizzo di reindirizzamento.In your own application you'll need to navigate to Authentication and in the Redirect URIs field, insert the redirect address. Per altre informazioni sul reindirizzamento, vedereRestrizioni e limitazioni dell'URI di reindirizzamento (URL di risposta).To learn more about redirecting, see Redirect URI (reply URL) restrictions and limitations.

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

Crea un'area di lavoroCreate a workspace

Se si incorporano report, dashboard o riquadri per i clienti, è necessario inserire il contenuto all'interno di un'area di lavoro.If you're embedding reports, dashboards, or tiles for your customers, then you have to place your content within a workspace. Esistono diversi tipi di aree di lavoro configurabili: le aree di lavoro tradizionali o le nuove aree di lavoro.There are different types of workspaces that you can set up: the traditional workspaces or the new workspaces.

Creare e pubblicare i report di Power BICreate and publish your Power BI reports

È possibile creare i report e i set di dati con Power BI Desktop.You can create your reports and datasets by using Power BI Desktop. È quindi possibile pubblicare tali report in un'area di lavoro.Then you can publish those reports to a workspace. Per poter pubblicare report in un'area di lavoro, l'utente finale deve avere una licenza di Power BI Pro.The end user publishing the reports needs to have a Power BI Pro license to publish to a workspace.

  1. Scaricare l'esempio Demo da GitHub.Download the sample Demo from GitHub.

    Scaricare il demo

  2. Aprire il report di esempio con estensione .pbix in Power BI Desktop.Open the sample .pbix report in Power BI Desktop.

    Report di Power BI Desktop di esempio

  3. Eseguire la pubblicazione nell'area di lavoro.Publish to the workspace.

    Pubblicare un report di Power BI Desktop

    È ora possibile visualizzare il report nel servizio Power BI online.Now you can view the report in the Power BI service online.

    Visualizzare un report di Power BI Desktop

Creare e pubblicare i report di Power BICreate and publish your paginated reports

È possibile creare report impaginati usando Generatore report di Power BI.You can create your paginated reports by using Power BI Report Builder. È quindi possibile caricare il report in un'area di lavoro assegnata almeno a una capacità P1.Then you can upload the report to a workspace assigned to at least a P1 capacity. Per eseguire la pubblicazione del report in un'area di lavoro, l'utente finale che carica il report deve avere una licenza di Power BI Pro.The end-user uploading the report must have a Power BI Pro license to publish to a workspace.

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

Questo esempio è volutamente semplice per scopo dimostrativo.This sample is deliberately kept simple for demonstration purposes.

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 (Dati di proprietà dell'app) da GitHub per iniziare.Download the User Owns Data sample from GitHub to get started.

    Applicazione di esempio User Owns Data (Dati di proprietà dell'utente)

  3. Aprire il file Cloud.config nell'applicazione di esempio.Open the Cloud.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.

    CampoField
    ID applicazioneApplication ID
    ID area di lavoroWorkspace ID
    ID reportReport ID
    AADAuthorityUrlAADAuthorityUrl

    File Cloud.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 selezionare Tutti i servizi e quindi selezionare Registrazioni app.In the left-hand nav pane, select All Services, and select App Registrations.

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

    Scelta dell'app

  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 dell'area di lavoro (del gruppo) di Power BI.Fill in the workspaceId information with the 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 "User Owns Embed Test"

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.

URL nuovo report Power BIPower BI Report URL

PBI reportId

URL report impaginatoPaginated Report URL

Paginated reportId

PowerShellPowerShell

Get-PowerBIworkspace -name "User Owns Embed Test" | Get-PowerBIReport

reportId ottenuto da PowerShell

AADAuthorityUrlAADAuthorityUrl

Immettere le informazioni di AADAuthorityUrl specificando l'URL che consente l'incorporamento all'interno del tenant dell'organizzazione o l'incorporamento con un utente guest.Fill in the AADAuthorityUrl information with the URL that either allows you to embed within your organizational tenant or embed with a guest user.

Per l'incorporamento con il tenant dell'organizzazione, usare l'URL https://login.microsoftonline.com/common/oauth2/authorize .For embedding with your organizational tenant, use the URL - https://login.microsoftonline.com/common/oauth2/authorize.

Per l'incorporamento con l'utente guest, usare l'URL https://login.microsoftonline.com/report-owner-tenant-id, in cui è possibile aggiungere l'ID tenant del proprietario del report in sostituzione di report-owner-tenant-id.For embedding with a guest, use the URL - https://login.microsoftonline.com/report-owner-tenant-id - where you add the tenant ID of the report owner in replacement of report-owner-tenant-id.

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. A seconda del contenuto con cui si sceglie di eseguire il test (report, dashboard o riquadri), selezionare l'opzione corrispondente nell'applicazione.Depending on which content you choose to test with - reports, dashboards or tiles - then select that option in the application.

    Selezionare il contenuto

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

    Visualizzare il report nell'applicazione

Incorporare il contenuto all'interno dell'applicazioneEmbed your content within your application

Anche se la procedura per incorporare il contenuto può essere eseguita con le API REST di Power BI, i codici di esempio descritti in questo articolo vengono creati con il .NET SDK.Even though the steps to embed your content can be done with the Power BI REST APIs, the example codes described in this article are made with the .NET SDK.

Per integrare un report in un'app web, usare l'API REST di Power BI o Power BI C# SDK.To integrate a report into a web app, you use the Power BI REST API or the Power BI C# SDK. È anche possibile usare un token di accesso per l'autorizzazione di Azure Active Directory per ottenere un report.You also use an Azure Active Directory authorization access token to get a report. Caricare quindi il report usando lo stesso token di accesso.Then you load the report by using the same access token. L'API Rest di Power BI offre l'accesso a livello di codice a specifiche risorse di Power BI.The Power BI Rest API provides programmatic access to specific Power BI resources. Per altre informazioni, vedere Power BI REST APIs (API REST di Power BI) e Power BI JavaScript API (API JavaScript di Power BI).For more information, see Power BI REST APIs and the Power BI JavaScript API.

Ottenere un token di accesso da Azure ADGet an access token from Azure AD

All'interno dell'applicazione è necessario ottenere un token di accesso da Azure AD per poter effettuare chiamate all'API REST di Power BI.Within your application, you must get an access token from Azure AD before you can make calls to the Power BI REST API. Per altre informazioni, vedere Autenticare gli utenti e ottenere un token di accesso di Azure AD per l'app Power BI.For more information, see Authenticate users and get an Azure AD access token for your Power BI app.

Ottenere un reportGet a report

Per ottenere un report di Power BI o impaginato, usare l'operazione Get Reports che recupera un elenco di report di Power BI e impaginati.To get a Power BI or paginated report, you use the Get Reports operation, which gets a list of Power BI and paginated reports. Dall'elenco dei report è possibile ottenere un ID report.From the list of reports, you can get a report ID.

Ottenere i report usando un token di accessoGet reports by using an access token

L'operazione Get Reports restituisce un elenco di report.The Get Reports operation returns a list of reports. È possibile ottenere un singolo report dall'elenco di report.You can get a single report from the list of reports.

Per effettuare la chiamata all'API REST, è necessario includere un'intestazione Authorization con formato Bearer {token di accesso} .To make the REST API call, you must include an Authorization header in the format of Bearer {access token}.

Ottenere report con l'API RESTGet reports with the REST API

L'esempio di codice seguente illustra come recuperare i report con l'API REST:The following code sample shows you how to retrieve reports with the REST API:

Nota

Il file Default.aspx.cs nell'applicazione di esempio contiene un esempio per recuperare un elemento del contenuto da incorporare.A sample of getting a content item that you want to embed is available in the Default.aspx.cs file in the sample application. Altri esempi sono un report, un dashboard o un riquadro.Examples are a report, dashboard, or tile.

using Newtonsoft.Json;

//Get a Report. In this sample, you get the first Report.
protected void GetReport(int index)
{
    //Configure Reports request
    System.Net.WebRequest request = System.Net.WebRequest.Create(
        String.Format("{0}/Reports",
        baseUri)) as System.Net.HttpWebRequest;

    request.Method = "GET";
    request.ContentLength = 0;
    request.Headers.Add("Authorization", String.Format("Bearer {0}", accessToken.Value));

    //Get Reports response from request.GetResponse()
    using (var response = request.GetResponse() as System.Net.HttpWebResponse)
    {
        //Get reader from response stream
        using (var reader = new System.IO.StreamReader(response.GetResponseStream()))
        {
            //Deserialize JSON string
            PBIReports Reports = JsonConvert.DeserializeObject<PBIReports>(reader.ReadToEnd());

            //Sample assumes at least one Report.
            //You could write an app that lists all Reports
            if (Reports.value.Length > 0)
            {
                var report = Reports.value[index];

                txtEmbedUrl.Text = report.embedUrl;
                txtReportId.Text = report.id;
                txtReportName.Text = report.name;
            }
        }
    }
}

//Power BI Reports used to deserialize the Get Reports response.
public class PBIReports
{
    public PBIReport[] value { get; set; }
}
public class PBIReport
{
    public string id { get; set; }
    public string reportType { get; set }
    public string name { get; set; }
    public string webUrl { get; set; }
    public string embedUrl { get; set; }
}

Recuperare report con .NET SDKGet reports by using the .NET SDK

È possibile usare .NET SDK per recuperare un elenco di report invece di chiamare direttamente l'API REST.You can use the .NET SDK to retrieve a list of reports instead of calling the REST API directly. Il codice di esempio seguente illustra come elencare i report:The following code sample shows you how to list reports:

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

var tokenCredentials = new TokenCredentials(<ACCESS TOKEN>, "Bearer");

// Create a Power BI Client object. It is used to call Power BI APIs.
using (var client = new PowerBIClient(new Uri(ApiUrl), tokenCredentials))
{
    // Get the first report all reports in that workspace
    ODataResponseListReport reports = client.Reports.GetReports();

    Report report = reports.Value.FirstOrDefault();

    var embedUrl = report.EmbedUrl;
}

Caricare un report con JavaScriptLoad a report by using JavaScript

È possibile usare JavaScript per caricare un report in un elemento div nella pagina Web.You can use JavaScript to load a report into a div element on your web page. L'esempio di codice seguente indica come recuperare un report da un'area di lavoro specifica:The following code sample shows you how to retrieve a report from a given workspace:

Nota

Un esempio di caricamento di un elemento del contenuto da incorporare è disponibile nel file Default.aspx nell'applicazione di esempio.A sample of loading a content item that you want to embed is available in the Default.aspx file in the sample application.

<!-- Embed Report-->
<div> 
    <asp:Panel ID="PanelEmbed" runat="server" Visible="true">
        <div>
            <div><b class="step">Step 3</b>: Embed a report</div>

            <div>Enter an embed url for a report from Step 2 (starts with https://):</div>
            <input type="text" id="tb_EmbedURL" style="width: 1024px;" />
            <br />
            <input type="button" id="bEmbedReportAction" value="Embed Report" />
        </div>

        <div id="reportContainer"></div>
    </asp:Panel>
</div>

Site.masterSite.master

window.onload = function () {
    // client side click to embed a selected report.
    var el = document.getElementById("bEmbedReportAction");
    if (el.addEventListener) {
        el.addEventListener("click", updateEmbedReport, false);
    } else {
        el.attachEvent('onclick', updateEmbedReport);
    }

    // handle server side post backs, optimize for reload scenarios
    // show embedded report if all fields were filled in.
    var accessTokenElement = document.getElementById('MainContent_accessTokenTextbox');
    if (accessTokenElement !== null) {
        var accessToken = accessTokenElement.value;
        if (accessToken !== "")
            updateEmbedReport();
    }
};

// update embed report
function updateEmbedReport() {

    // check if the embed url was selected
    var embedUrl = document.getElementById('tb_EmbedURL').value;
    if (embedUrl === "")
        return;

    // get the access token.
    accessToken = document.getElementById('MainContent_accessTokenTextbox').value;

    // Embed configuration used to describe the what and how to embed.
    // This object is used when calling powerbi.embed.
    // You can find more information at https://github.com/Microsoft/PowerBI-JavaScript/wiki/Embed-Configuration-Details.
    var config = {
        type: 'report',
        accessToken: accessToken,
        embedUrl: embedUrl
    };

    // Grab the reference to the div HTML element that will host the report.
    var reportContainer = document.getElementById('reportContainer');

    // Embed the report and display it within the div container.
    var report = powerbi.embed(reportContainer, config);

    // report.on will add an event handler which prints to Log window.
    report.on("error", function (event) {
        var logView = document.getElementById('logView');
        logView.innerHTML = logView.innerHTML + "Error<br/>";
        logView.innerHTML = logView.innerHTML + JSON.stringify(event.detail, null, "  ") + "<br/>";
        logView.innerHTML = logView.innerHTML + "---------<br/>";
    }
  );
}

Uso di una capacità Power BI PremiumUsing a Power BI Premium capacity

Lo sviluppo dell'applicazione è terminato. È ora necessario eseguire il backup dell'area di lavoro con una capacità.Now that you've completed developing your application, it's time to back your workspace with a capacity.

Creare una capacitàCreate a capacity

Creando una capacità è possibile usare la disponibilità di una risorsa per il contenuto dell'area di lavoro.By creating a capacity, you can take advantage of having a resource for the content in your workspace. Per i report impaginati è necessario supportare l'area di lavoro con almeno una capacità P1.For paginated reports you must back your workspace with at least a P1 capacity. È possibile creare una capacità usando Power BI Premium.You can create a capacity by using Power BI Premium.

La tabella seguente elenca gli SKU di Power BI Premium disponibili in Microsoft 365:The following table lists the Power BI Premium SKUs available in Microsoft 365:

Nodo della capacitàCapacity node Totale vCoreTotal vCores
(back-end + front-end)(back end + front end)
vCore di back-endBack-end vCores vCore front-endFront-end vCores Limiti di connessione dinamica/DirectQueryDirectQuery/live connection limits
EM1EM1 1 vCore1 vCore 0,5 vCore, 3 GB di RAM0.5 vCore, 3 GB of RAM 0,5 vCore0.5 vCore 3,75 al secondo3.75 per second
EM2EM2 2 vCore2 vCores 1 vCore, 5 GB di RAM1 vCore, 5 GB of RAM 1 vCore1 vCores 7,5 al secondo7.5 per second
EM3EM3 4 vCore4 vCores 2 vCore, 10 GB di RAM2 vCores, 10 GB of RAM 2 vCore2 vCores 15 al secondo15 per second
P1P1 8 vCore8 vCores 4 vCore, 25 GB di RAM4 vCores, 25 GB of RAM 4 vCore4 vCores 30 al secondo30 per second
P2P2 16 vCore16 vCores 8 vCore, 50 GB di RAM8 vCores, 50 GB of RAM 8 vCore8 vCores 60 al secondo60 per second
P3P3 32 vCore32 vCores 16 vCore, 100 GB di RAM16 vCores, 100 GB of RAM 16 vCore16 vCores 120 al secondo120 per second
P4P4 64 vCore64 vCores 32 vCore, 200 GB di RAM32 vCores, 200 GB of RAM 32 vCore32 vCores 240 al secondo240 per second
P5P5 128 vCore128 vCores 64 vCore, 400 GB di RAM64 vCores, 400 GB of RAM 64 vCore64 vCores 480 al secondo480 per second

Nota

  • Quando si tenta di incorporare le applicazioni di Microsoft Office, è possibile usare i codici di riferimento del prodotto MT per accedere al contenuto con una licenza Power BI gratuita.When you're trying to embed with Microsoft Office apps, you can use EM SKUs to access content with a free Power BI license. Tuttavia, non è possibile accedere al contenuto con una licenza di Power BI gratuita se si usa Powerbi.com o Power BI per dispositivi mobili.But you can't access content with a free Power BI license when you're using Powerbi.com or Power BI mobile.
  • Quando si tenta l'incorporamento tramite le app di Microsoft Office con Powerbi.com o Power BI per dispositivi mobili, è possibile accedere al contenuto con una licenza di Power BI gratuita.When you're trying to embed with Microsoft Office apps by using Powerbi.com or Power BI mobile, you can access content with a free Power BI license.

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

Dopo aver creato una capacità, è possibile assegnare a questa l'area di lavoro.After you create a capacity, you can assign your workspace to that capacity. Per completare questo processo, seguire questi passaggi:To complete this process, follow these steps:

  1. All'interno del servizio Power BI, espandere le aree di lavoro e selezionare i puntini di sospensione relativi all'area di lavoro in cui incorporare il contenuto.Within the Power BI service, expand workspaces and select the ellipsis for the workspace you're using for embedding your content. Quindi selezionare Edit workspaces (Modifica aree di lavoro).Then select Edit workspaces.

    Modificare un'area di lavoro

  2. Espandere Avanzata e abilitare Capacità.Expand Advanced and enable Capacity. Selezionare la capacità creata.Select the capacity you created. Selezionare quindi Salva.Then select Save.

    Assegnare una capacità

  3. Dopo aver selezionato Salva è possibile vedere l'icona di un diamante accanto al nome dell'area di lavoro.After you select Save, you should see a diamond next to the workspace name.

    Area di lavoro collegata a una capacità

Impostazioni di amministrazioneAdmin settings

Gli amministratori globali o gli amministratori del servizio Power BI possono attivare o disattivare la possibilità di usare le API REST per un tenant.Global admins or Power BI service administrators can turn the ability to use the REST APIs on or off for a tenant. Gli amministratori di Power BI possono configurare questa impostazione per l'intera organizzazione o per singoli gruppi di sicurezza.Power BI admins can set this setting for the entire organization or for individual security groups. L'opzione è abilitata per l'intera organizzazione per impostazione predefinita.It's enabled for the entire organization by default. È possibile apportare queste modifiche nel portale di amministrazione di Power BI.You can make these changes in the Power BI admin portal.

Passaggi successiviNext steps

In questa esercitazione è stato descritto come incorporare il contenuto di Power BI in un'applicazione usando l'account dell'organizzazione di Power BI.In this tutorial, you learned how to embed Power BI content into an application by using your Power BI organization account. È ora possibile provare a incorporare il contenuto di Power BI in un'applicazione usando le app.You can now try to embed Power BI content into an application by using apps. È anche possibile provare a incorporare contenuto di Power BI per i clienti (funzionalità non ancora supportata per l'incorporamento di report impaginati):You can also try to embed Power BI content for your customers (not supported yet for embedding paginated reports):

Per altre domande, provare a rivolgersi alla community di Power BI.If you have more questions, try asking the Power BI Community.