Freigeben über


Informationen zum Authentifizieren und Autorisieren mit Power BI-Arbeitsbereichssammlungen

Power BI-Arbeitsbereichssammlungen nutzen zur Authentifizierung und Autorisierung anstelle der expliziten Benutzerauthentifizierung Schlüssel und App-Token. Bei diesem Modell verwaltet Ihre Anwendung die Authentifizierung und Autorisierung Ihrer Endbenutzer. Bei Bedarf erstellt und sendet Ihre App die App-Token, die unseren Dienst anweisen, den angeforderten Bericht zu rendern. Bei diesem Konzept muss Ihre App nicht Azure Active Directory für die Benutzerauthentifizierung und -autorisierung verwenden, auch wenn dies natürlich möglich ist.

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.

Zwei Authentifizierungsmöglichkeiten

Schlüssel – Sie können Schlüssel für alle REST-API-Aufrufe von Power BI-Arbeitsbereichssammlungen verwenden. Sie finden die Schlüssel im Microsoft Azure-Portal, indem Sie auf Alle Einstellungen und dann auf Zugriffsschlüssel klicken. Behandeln Sie Ihren Schlüssel immer wie ein Kennwort. Die Schlüssel verfügen über Berechtigungen, die es ihnen ermöglichen, beliebige REST-API-Aufrufe für eine bestimmte Arbeitsbereichssammlung durchzuführen.

Wenn Sie einen Schlüssel für einen REST-Aufruf verwenden möchten, fügen Sie den folgenden Autorisierungsheader hinzu:

Authorization: AppKey {your key}

App-Token : App-Token werden für alle Einbettungsanforderungen verwendet. Da seine clientseitige Ausführung vorgesehen ist, ist das Token auf einen einzelnen Bericht beschränkt, und es empfiehlt sich, eine Ablaufzeit festzulegen.

App-Token sind JWT (JSON Web Token), die mit einem Ihrer Schlüssel signiert sind.

Ihr App-Token kann folgende Ansprüche enthalten:

Anspruch BESCHREIBUNG
ver Die Version des App-Tokens. Die aktuelle Version ist 0.2.0.
Aud Der vorgesehene Empfänger des Tokens. Verwenden Sie für Power BI-Arbeitsbereichsammlungen: https://analysis.windows.net/powerbi/api.
iss Eine Zeichenfolge, die die Anwendung angibt, die das Token ausgestellt hat.
type Die Art des App-Tokens, das erstellt wird. Aktuell wird nur der Typ embedunterstützt.
wcn Der Name der Arbeitsbereichssammlung, für die das Token ausgegeben wird.
Wid Die ID der Arbeitsbereichssammlung, für die das Token ausgegeben wird.
los Die Berichts-ID der Arbeitsbereichssammlung, für die das Token ausgegeben wird.
Benutzername (optional) In Kombination mit RLS ermöglicht „username“ die Identifizierung des Benutzers, wenn RLS-Regeln angewendet werden.
roles (optional) Mit den in dieser Zeichenfolge enthaltenen Rollen wird ausgewählt, wann die Regeln der Sicherheit auf Zeilenebene (Row Level Security, RLS) angewendet werden sollen. Mehrere Rollen sollten als Zeichenfolgenarray übergeben werden.
scp (optional) Eine Zeichenfolge, die die Berechtigungsbereiche enthält. Mehrere Rollen sollten als Zeichenfolgenarray übergeben werden.
exp (optional) Gibt die Ablaufzeit des Tokens an. Der Wert muss als Unix-Zeitstempel übergeben werden.
nbf (optional) Gibt an, ab wann das Token gültig wird. Der Wert muss als Unix-Zeitstempel übergeben werden.

Ein Beispiel-App-Token sieht wie folgt aus:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ2ZXIiOiIwLjIuMCIsInR5cGUiOiJlbWJlZCIsIndjbiI6Ikd1eUluQUN1YmUiLCJ3aWQiOiJkNGZlMWViMS0yNzEwLTRhNDctODQ3Yy0xNzZhOTU0NWRhZDgiLCJyaWQiOiIyNWMwZDQwYi1kZTY1LTQxZDItOTMyYy0wZjE2ODc2ZTNiOWQiLCJzY3AiOiJSZXBvcnQuUmVhZCIsImlzcyI6IlBvd2VyQklTREsiLCJhdWQiOiJodHRwczovL2FuYWx5c2lzLndpbmRvd3MubmV0L3Bvd2VyYmkvYXBpIiwiZXhwIjoxNDg4NTAyNDM2LCJuYmYiOjE0ODg0OTg4MzZ9.v1znUaXMrD1AdMz6YjywhJQGY7MWjdCR3SmUSwWwIiI

Nach der Decodierung sieht es in etwa so aus:

Header

{
    typ: "JWT",
    alg: "HS256:
}

Body

{
  "ver": "0.2.0",
  "wcn": "SupportDemo",
  "wid": "ca675b19-6c3c-4003-8808-1c7ddc6bd809",
  "rid": "96241f0f-abae-4ea9-a065-93b428eddb17",
  "iss": "PowerBISDK",
  "aud": "https://analysis.windows.net/powerbi/api",
  "exp": 1360047056,
  "nbf": 1360043456
}

Innerhalb der SDKs stehen Methoden zur Verfügung, die die Erstellung von App-Token vereinfachen. Sehen Sie sich beispielsweise für .NET die Klasse Microsoft.PowerBI.Security.PowerBIToken und die Methoden CreateReportEmbedToken an.

Informationen zum .NET SDK finden Sie unter Scopes (Bereiche).

Bereiche

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.

Im Folgenden sehen Sie die verfügbaren Bereiche für Power BI-Arbeitsbereichssammlungen.

`Scope` Beschreibung
Dataset.Read Stellt die Berechtigung zum Lesen des angegebenen Datasets bereit.
Dataset.Write Stellt die Berechtigung zum Schreiben in das angegebene Dataset bereit.
Dataset.ReadWrite Stellt die Berechtigung zum Lesen des angegebenen Datasets sowie zum Schreiben bereit.
Report.Read Stellt die Berechtigung zum Anzeigen des angegebenen Berichts bereit.
Report.ReadWrite Stellt die Berechtigung zum Anzeigen und Bearbeiten des angegebenen Berichts bereit.
Workspace.Report.Create Stellt die Berechtigung zum Erstellen eines neuen Berichts innerhalb des angegebenen Arbeitsbereichs bereit.
Workspace.Report.Copy Stellt die Berechtigung zum Klonen eines vorhandenen Berichts innerhalb des angegebenen Arbeitsbereichs bereit.

Sie können mehrere Bereiche angeben, indem Sie zwischen den Bereichen ein Leerzeichen einfügen (s.u.).

string scopes = "Dataset.Read Workspace.Report.Create";

Erforderliche Ansprüche – Bereiche

scp: {scopesClaim} scopesClaim kann entweder eine Zeichenfolge oder ein Array von Zeichenfolgen sein, worin die zulässigen Berechtigungen für die Arbeitsbereichsressourcen (Bericht, Dataset usw.) erfasst werden.

Ein decodiertes Token mit definierten Bereichen sieht etwa wie folgt aus:

Header

{
    typ: "JWT",
    alg: "HS256:
}

Body

{
  "ver": "0.2.0",
  "wcn": "SupportDemo",
  "wid": "ca675b19-6c3c-4003-8808-1c7ddc6bd809",
  "rid": "96241f0f-abae-4ea9-a065-93b428eddb17",
  "scp": "Report.Read",
  "iss": "PowerBISDK",
  "aud": "https://analysis.windows.net/powerbi/api",
  "exp": 1360047056,
  "nbf": 1360043456
}

Vorgänge und Bereiche

Vorgang Zielressource Tokenberechtigungen
Erstellen Sie (In-Memory) einen neuen Bericht basierend auf einem Dataset. Dataset Dataset.Read
Erstellen Sie (im Speicher) einen neuen Bericht basierend auf einem Dataset, und speichern Sie den Bericht. Dataset * Dataset.Read
* Workspace.Report.Create
Zeigen Sie einen vorhandenen Bericht an (im Speicher), und untersuchen/bearbeiten Sie ihn. Report.Read impliziert Dataset.Read. „Report.Read“ lässt keine Speicherung von Änderungen zu. Bericht Report.Read
Bearbeiten und speichern Sie einen vorhandenen Bericht. Bericht Report.ReadWrite
Speichern Sie eine Kopie eines Berichts (Speichern unter). Bericht * Report.Read
* Workspace.Report.Copy

Informationen zum Ablauf

  1. Kopieren der API-Schlüssel zu Ihrer Anwendung Sie finden die Schlüssel im Azure-Portal.

    Wo die API-Schlüssel im Azure-Portal zu finden sind

  2. Das Token setzt einen Anspruch durch und hat eine Ablaufzeit.

    App-Tokenfluss: Token bestätigt Anspruch.

  3. Das Token wird mit einer API-Tastenkombination angemeldet.

    App-Tokenfluss: Token wird signiert.

  4. Der Benutzer fordert die Ansicht des Berichts an.

    App-Tokenfluss: Benutzer fordert die Ansicht eines Berichts an.

  5. Das Token wird mit einer API-Tastenkombination validiert.

    App-Tokenfluss: Token wird validiert.

  6. Von Power BI-Arbeitsbereichssammlungen wird ein Bericht an den Benutzer gesendet.

    App-Tokenfluss: Dienst sendet Bericht an Benutzer.

Nachdem aus Power BI-Arbeitsbereichssammlungen ein Bericht an den Benutzer gesendet wurde, kann dieser den Bericht in Ihrer benutzerdefinierten App anzeigen. Wenn Sie also etwa das Beispiel „Analyzing Sales Data PBIX“ importiert haben, sieht die Beispiel-Web-App wie folgt aus:

Beispiel eines in eine Anwendung eingebetteten Berichts

Weitere Informationen

CreateReportEmbedToken
Erste Schritte mit Microsoft Power BI-Arbeitsbereichssammlungen: Beispiel
Häufige Szenarien für Microsoft Power BI-Arbeitsbereichssammlungen
Erste Schritte mit Microsoft Power BI-Arbeitsbereichssammlungen
PowerBI-CSharp Git-Repository

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