Share via


Einbetten von Berichten in Power BI-Arbeitsbereichssammlungen

Erfahren Sie, wie Sie einen in Power BI-Arbeitsbereichssammlungen befindlichen Bericht in Ihre Anwendung einbetten.

Wichtig

Power BI-Arbeitsbereichssammlungen sind veraltet und nur noch bis Juni 2018 (oder bis zum Termin in Ihrem Vertrag) verfügbar. Es wird empfohlen, die Migration zu Power BI Embedded zu planen, um Unterbrechungen für Ihre Anwendung zu vermeiden. Informationen zur Migration Ihrer Daten zu Power BI Embedded finden Sie unter Migrieren von Inhalten aus Power BI-Arbeitsbereichssammlungen zu Power BI Embedded.

Wir werden die Schritte zum Einbetten eines Berichts in Ihre Anwendung praktisch durchführen. Dies setzt voraus, dass Sie bereits über einen Bericht verfügen, der in einem Arbeitsbereich Ihrer Arbeitsbereichssammlung vorliegt. Wenn Sie diesen Schritt noch nicht ausgeführt haben, lesen Sie Erste Schritte mit Power BI-Arbeitsbereichssammlungen.

Sie können das SDK für .NET (C#) oder Node.js zusammen mit JavaScript verwenden, um Ihre Anwendung mühelos mit Power BI-Arbeitsbereichssammlungen zu erstellen.

Verwenden von REST-APIs mithilfe von Zugriffsschlüsseln

Um die REST-API aufzurufen, können Sie den Zugriffsschlüssel übergeben, den Sie vom Azure-Portal für eine bestimmte Arbeitsbereichssammlung abrufen können. Weitere Informationen finden Sie unter Erste Schritte mit Power BI-Arbeitsbereichssammlungen.

Abrufen einer Berichts-ID

Jedes Zugriffstoken basiert auf einem Bericht. Sie müssen die jeweilige Berichts-ID für den Bericht abrufen, den Sie einbetten möchten. Dies kann basierend auf Aufrufen der Get Reports-REST-API erfolgen. Hiermit werden die Berichts-ID und die Einbettungs-URL zurückgegeben. Dies kann mithilfe des Power BI .NET SDK oder durch direkten Aufruf der REST-API erfolgen.

Verwenden des Power BI .NET SDK

Wenn Sie das .NET SDK verwenden, müssen Sie Tokenanmeldeinformationen erstellen, die auf dem Zugriffsschlüssel basieren, den Sie aus dem Azure-Portal erhalten. Hierzu müssen Sie das Power BI API-NuGet-Paket installieren.

NuGet-Paketinstallation

Install-Package Microsoft.PowerBI.Api

C#-Code

using Microsoft.PowerBI.Api.V1;
using Microsoft.Rest;

var credentials = new TokenCredentials("{access key}", "AppKey");
var client = new PowerBIClient(credentials);
client.BaseUri = new Uri(https://api.powerbi.com);

var reports = (IList<Report>)client.Reports.GetReports(workspaceCollectionName, workspaceId).Value;

// Select the report that you want to work with from the collection of reports.

Direktes Aufrufen der REST-API

System.Net.WebRequest request = System.Net.WebRequest.Create("https://api.powerbi.com/v1.0/collections/{collectionName}/workspaces/{workspaceId}/Reports") as System.Net.HttpWebRequest;

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

using (var response = request.GetResponse() as System.Net.HttpWebResponse)
{
    using (var reader = new System.IO.StreamReader(response.GetResponseStream()))
    {
        // Work with JSON response to get the report you want to work with.
    }

}

Erstellen eines Zugriffstokens

Power BI-Arbeitsbereichssammlungen verwenden Einbettungstoken, bei denen es sich um HMAC-signierte JSON-Webtoken handelt. Die Token werden mit dem Zugriffsschlüssel aus Ihrer Power BI-Arbeitsbereichssammlung signiert. Einbettungstoken werden standardmäßig verwendet, um schreibgeschützten Zugriff auf einen Bericht zum Einbetten in eine Anwendung bereitzustellen. Einbettungstoken werden für einen bestimmten Bericht ausgegeben und sollten einer Einbettungs-URL zugeordnet werden.

Zugriffstoken sollten auf dem Server erstellt werden, da die Zugriffsschlüssel zum Signieren/Verschlüsseln von Token verwendet werden. Informationen zum Erstellen eines Zugriffstoken finden Sie unter Authenticating and authorizing with Power BI Workspace Collections (Authentifizieren und Autorisieren mit Power BI-Arbeitsbereichssammlungen). Sie können sich auch über die CreateReportEmbedToken-Methode informieren. Das folgende Beispiel zeigt Ihnen das Vorgehen mit dem .NET SDK für Power BI.

Sie verwenden die Berichts-ID, die Sie zuvor abgerufen haben. Sobald das Einbettungstoken erstellt ist, verwenden Sie den Zugriffsschlüssel zum Generieren des Tokens, das Sie aus der JavaScript-Perspektive verwenden können. Die PowerBIToken-Klasse erfordert die Installation des Power BI Core-NuGut-Pakets.

NuGet-Paketinstallation

Install-Package Microsoft.PowerBI.Core

C#-Code

using Microsoft.PowerBI.Security;

// rlsUsername, roles and scopes are optional.
embedToken = PowerBIToken.CreateReportEmbedToken(workspaceCollectionName, workspaceId, reportId, rlsUsername, roles, scopes);

var token = embedToken.Generate("{access key}");

Hinzufügen von Berechtigungsbereichen zu Einbettungstoken

Bei der Verwendung von Einbettungstoken möchten Sie vielleicht die Nutzung der Ressourcen beschränken, auf die Sie Zugriff gewähren. Aus diesem Grund können Sie ein Token mit bereichsbezogenen Berechtigungen generieren. Weitere Informationen finden Sie unter Bereiche

Einbetten mit JavaScript

Sobald Sie über Zugriffstoken und Berichts-ID verfügen, können wir den Bericht mithilfe von JavaScript einbetten. Dies erfordert, dass Sie das NuGet Power BI JavaScript-Paket installieren. Der Wert für „embedUrl“ lautet einfach https://embedded.powerbi.com/appTokenReportEmbed.

Hinweis

Mit dem JavaScript Report Embed Sample (Beispiel zur Berichtseinbettung mit JavaScript) können Sie die Funktionalität testen. Es enthält außerdem Codebeispiele für die verschiedenen Vorgänge, die verfügbar sind.

NuGet-Paketinstallation

Install-Package Microsoft.PowerBI.JavaScript

JavaScript-Code

<script src="/scripts/powerbi.js"></script>
<div id="reportContainer"></div>

<script>
var embedConfiguration = {
    type: 'report',
    accessToken: 'eyJ0eXAiO...Qron7qYpY9MI',
    id: '5dac7a4a-4452-46b3-99f6-a25915e0fe55',
    embedUrl: 'https://embedded.powerbi.com/appTokenReportEmbed'
};

var $reportContainer = $('#reportContainer');
var report = powerbi.embed($reportContainer.get(0), embedConfiguration);
</script>

Festlegen der Größe eingebetteter Elemente

Der Bericht wird automatisch basierend auf der Größe seines Containers eingebettet. Um die Standardgröße des eingebetteten Elements zu überschreiben, fügen Sie einfach ein CSS-Klassenattribut oder Inlineformatvorlagen für Breite und Höhe hinzu.

Siehe auch

Erste Schritte mit dem Beispiel
Authenticating and authorizing in Power BI Workspace Collections (Authentifizieren und Autorisieren in Power BI-Arbeitsbereichssammlungen)
CreateReportEmbedToken
JavaScript-Einbettungsbeispiel
Power BI JavaScript-Paket
Power BI API-NuGet-PaketPower BI Core-NuGut-Paket
PowerBI-CSharp Git-Repository
PowerBI-Node Git-Repository

Weitere Fragen? Wenden Sie sich an die Power BI-Community