Freigeben über


Implementieren der Sicherheit auf Zeilenebene in eingebetteten paginierten Berichten

GILT FÜR: Die App besitzt die Daten Der Benutzer besitzt die Daten

In diesem Artikel wird erläutert, wie Sie in Ihrer App Owns Data-Anwendung (die Anwendung besitzt die Daten) einen paginierten Bericht einbetten, der RLS (Row-Level Security, Sicherheit auf Zeilenebene) verwendet.

Hinweis

Dieser Artikel ist nur für Kunden mit einem „App Owns Data“-Szenario (die Anwendung besitzt die Daten) relevant.

So verwenden Sie RLS für Ihre paginierten Berichte:

  1. Richten Sie die Umgebung ein, um den Bericht zu filtern
  2. Filtern Sie die Daten auf Bericht- oder Abfrageebene
  3. Übergeben Sie den konfigurierten Parameter unter Verwendung eines Einbettungstokens

Voraussetzungen

  • In diesem Artikel wird davon ausgegangen, dass Sie wissen, wie Sie einen paginierten Power BI-Bericht einbetten. Sie erfahren, wie Sie das Einbettungstoken generieren, damit im Bericht nur die Daten angezeigt werden, auf die die*der Benutzer*in zugreifen darf.

  • Paginierte Berichte werden nicht mit der Power BI-Engine (Analysis Services), sondern mithilfe der SQL Server Reporting Services-Engine erstellt. Die RLS-Filterung wird also in Power BI Report Builder eingerichtet.

Einrichten der Umgebung

Zum Anwenden der Sicherheit auf Zeilenebene auf einen paginierten Power BI-Bericht verwenden Sie das integrierte Feld UserID, um einen Parameter zuzuweisen. Dieser Parameter wird zum Filtern oder Abfragen Ihrer Daten verwendet.

Übergeben Sie UserID anschließend an die API zum Einbetten/Generieren von Token, um das Einbettungstoken abzurufen.

Verwenden von UserID als Filter auf Berichts- oder Abfrageebene

Sie können UserID als Filter oder in einer Abfrage für die Datenquelle verwenden.

Filtern der Daten

  1. Wählen Sie im Fenster Semantikmodelleigenschaften im linken Bereich Filter aus.

    Screenshot des Power BI Report Builder-Filters.

  2. Wählen Sie im Dropdownmenü Ausdruck den Parameter aus, den Sie zum Filtern der Daten verwenden möchten.

    Der Screenshot zeigt den im Menü „Ausdruck“ ausgewählten Wert „Farbe“.

  3. Wählen Sie die Funktionsschaltfläche Wert aus.

    Wert in Power BI Report Builder

  4. Wählen Sie im Fenster Ausdruck in der Liste Kategorie die Option Integrierte Felder aus.

    Der Screenshot zeigt das Fenster „Ausdruck“ mit „Integrierte Felder“ als „Category“ und „ExecutionTime“ als „Item“.

  5. Wählen Sie in der Liste Element die Option UserID aus, und klicken Sie auf OK.

    UserID in Power BI Report Builder

  6. Vergewissern Sie sich, dass im Fenster Semantikmodelleigenschaften der Ausdruck Ihr ausgewählter Parameter = UserID lautet, und wählen Sie OK aus.

    Eigenschaften eines Power BI-Semantikmodells

Verwenden einer Abfrage

  1. Wählen Sie im Fenster Semantikmodelleigenschaften im linken Navigationsbereich Parameter und dann Hinzufügen aus.

    Parameter in Power BI Report Builder

  2. Geben Sie im Feld Parametername den Wert @UserID ein, und fügen Sie im Feld Parameterwert den Eintrag [&UserID] hinzu.

    Parametername in Power BI Report Builder

  3. Wählen Sie im linken Bereich Abfrage aus, fügen Sie in der Abfrage den Parameter UserID als Teil der Abfrage hinzu, und wählen Sie OK aus.

    Hinweis

    Im folgenden Screenshot wird der Farbparameter als Beispiel verwendet (WHERE FinalTable.Color = @UserID)). Bei Bedarf können Sie eine komplexere Abfrage erstellen.

    Bearbeiten von Abfragen in Power BI Report Builder

Generieren eines Einbettungstokens

Wenn Sie einen paginierten Bericht für Ihre Kunden einbetten, verwenden Sie die API Reports GenerateTokenInGroup, um das Einbettungstoken abzurufen. Dieses Token kann auch verwendet werden, um einige der Daten aus dem paginierten Bericht herauszufiltern.

Token können nur mithilfe eines Dienstprinzipals generiert werden. Hauptbenutzer*innen können kein Token generieren. Der Dienstprinzipal muss mindestens über Mitgliederberechtigungen für den Arbeitsbereich im Power BI-Dienst verfügen. (Wenn der Dienstprinzipal Mitwirkender oder anzeigender Benutzer ist, kann er kein Token generieren).

Zum Generieren eines Tokens weisen Sie das Feld username mit den Informationen zu, die angezeigt werden sollen. Wenn Sie z. B. in einem paginierten Bericht mit einem Farbparameter grün in das Feld username eingeben, werden die eingebetteten Daten durch das Einbettungstoken so eingeschränkt, dass nur die Daten angezeigt werden, die in der Farbspalte den Wert grün aufweisen.

{
 "reports": [
 {
  "id": "8d57615e-cfed-4d60-bd21-7dc05727193c"
 }
 ],
 "identities": [
 {
  "username": "green",
  "reports": [
  "8d57615e-cfed-4d60-bd21-7dc05727193c"
  ]
 }
 ]
}

Hinweis

Wenn Sie ein Einbettungstoken generieren, ohne eine Benutzer-ID anzugeben, wird die Objekt-ID des Dienstprinzipals verwendet.

Überlegungen und Einschränkungen

  • Hauptbenutzer*innen werden bei paginierten Berichten für Szenarien vom Typ Einbetten für Ihre Kunden nicht unterstützt. Bei Szenarien vom Typ Einbetten für Ihre Organisation werden Hauptbenutzer*innen unterstützt.
  • Der Dienstprinzipal muss mindestens über Berechtigungen vom Typ Mitglieder für den Arbeitsbereich verfügen (die Berechtigungen von anzeigenden Benutzern oder Mitwirkenden reichen nicht aus).

Generieren eines Einbettungstokens