Serie | Sicherheitskonzepte in Microsoft Power BI – Statisches Row Level Security
- Sie haben einen Bericht für Ihre Personalabteilung erstellt, bei dem einige Elemente für externe Mitarbeiter anonymisiert werden müssen?
- Oder Sie sollen einen Bericht mit sensiblen Daten erstellen, die nur Manager sehen sollen?
Innerhalb eines Berichts gibt es mehrere Möglichkeiten, um herauszufiltern, was ein bestimmter Benutzer sieht und worauf er Zugriff haben kann. Dies wird oft mit dem Begriff Sicherheit auf Zeilenebene oder “Row-Level Security” (RLS) umschrieben. Im Gegensatz zur Sicherheit auf Arbeitsbereich „Workspace Security“ und Sicherheit auf Dataset „Dataset Security“ wird bei RLS der Zugang der Benutzer auf Daten gesteuert.
Abbildung 1: Sicherheitskonzepte Microsoft Power BI
Das RLS-Konzept befasst sich mit nur einem Teil der Sicherheit – der Vertraulichkeit. Wir werden erläutern,
- was es bedeutet,
- wie man es implementiert und
- welche anderen Möglichkeiten es gibt, um Vertraulichkeit in Ihrem Bericht zu erreichen.
Um dies anhand von Beispielen zu veranschaulichen, werden wir den von Microsoft bereitgestellten Beispielbericht verwenden. Der Link zu diesem Bericht ist in GitHub Repo verfügbar. In diesem ersten Impuls erklären wir Ihnen Schritt für Schritt, wie Sie statisches RLS für Ihren Bericht einrichten können und gehen dabei auch auf die häufigsten Herausforderungen ein und wie Sie diese lösen können.
Implementierung – Power BI Desktop
In unserem Bericht erstellen wir eine einfache Visualisierung aus Testdaten, um die getätigten Umsätze zu sehen:
Stellen wir uns nun vor, dass wir in unserer Organisation für jede Produktkategorie, die wir verkaufen, verschiedene Teams besitzen. Wir möchten auswählen, was die Teammitglieder sehen, nämlich nur die Informationen zu ihrer Produktkategorie. Außerdem möchten wir konfigurieren, was die Geschäftsführung sehen sollte, nämlich alle Daten. Je nachdem, welcher Benutzer angemeldet ist, werden einige Daten angezeigt, andere nicht. Diese Berechtigungsstruktur ermöglicht uns, einen einzigen Bericht als Single Source of Truth zu entwickeln und nicht für jede Benutzergruppe individuelle, redundante Berichte aufwändig zu verwalten.
Nun müssen wir eine Rolle erstellen. Rollen werden unsere Gruppen sein, in die die Benutzer eingefügt werden. Wir legen die Einschränkungen für Gruppen fest, und alle Benutzer innerhalb dieser Gruppen erben diese Einschränkungen.
Um eine Rolle zu erstellen, gehen Sie auf die Registerkarte “Modellierung” und klicken Sie auf “Rollen verwalten”.
Klicken Sie dann auf “Erstellen” und geben Sie Ihrer Rolle einen Namen. Da unsere Rollen unsere Produktkategorie-Teams sein sollen, wird jede Rolle den gleichen Namen einer Kategorie haben.
Wir haben zwei Rollen angelegt, jeweils pro Kategorie: “Power Platform” und “Office 365”. Nun müssen wir die Filter implementieren. Dafür müssen wir die Spalte finden, die definiert, was die Benutzer sehen sollen und was nicht. In unserem Fall ist dies die Spalte “Product”. Die Filterung erfolgt mit DAX. Es ist immer die gleiche Syntax mit:
[Name Spalte] = “Name Filter”.
Pro Gruppe (Rolle), füllen wir die Spalte Kategorie mit deren Namen.
Es ist möglich, eine Rolle in Power BI Desktop zu simulieren, um zu überprüfen, welche Daten von den Benutzern, die dieser Rolle entsprechen, gesehen werden. Klicken Sie zunächst auf “View as”:
Sie erhalten eine Liste aller von Ihnen erstellten Rollen und immer eine Option “Other user“ “. Wir werden später sehen, was diese Rolle bewirkt. Wählen wir zunächst unsere “Office 365”-Rolle aus. Nachdem wir auf “OK” geklickt haben, sehen wir nun die Visualisierung gefiltert mit den Daten, die wir sehen möchten.
Nicht nur die Visualisierung wird gefiltert, sondern auch der zugrunde liegende Datensatz. Auch in der Datenansicht kann man sich nur die gefilterten Einträge ansehen.
Implementierung – Power BI Service
Nachdem wir alles in Power BI Desktop konfiguriert haben, wollen wir unseren Bericht in Power BI Service hochladen. Es gibt keine Unterschiede im Upload-Prozess mit RLS, aber wir müssen unsere Gruppen in Power BI Service konfigurieren.
Zunächst suchen wir unseren Bericht und Datensatz. Dann klicken wir auf das Symbol und wählen “Security“. Dort finden wir alle von uns definierten Rollen und die mit diesen Gruppen verknüpften Benutzer.
Fügen wir unsere E-Mail-Adresse der Rolle “Office 365” hinzu und gehen wir danach zum Bericht zurück:
Wie erwartet, sehen wir nur die Daten für Office 365, alle anderen Zeilen wurden gefiltert.
Beschränkungen statisches RLS
Die Rollen werden “manuell” in Power BI Desktop erstellt. Das Hinzufügen einer weiteren Rolle würde bedeuten, den Bericht herunterzuladen und die Rolle zu erstellen, den Filter hinzuzufügen und Benutzer dieser Rolle zuzuweisen und den Bericht erneut hochzuladen, damit er wirksam wird. Dies kann bei einer großen Anzahl von Benutzern und wechselnden Rollen mühsam sein. Obwohl statische RLS in vielen Fällen ausreichend sein können, gibt es die Variante dies dynamischer zu konzipieren.
Dazu gibt es keine Möglichkeit, eine Standardansicht zu haben. Wenn ein Benutzer in der Organisation keiner Rolle zugewiesen wurde, wird dieser den Bericht ohne RLS sehen. Wir brauchen deswegen eine Sicherheit, dass neue Mitarbeiter immer eine Rolle erhalten.
Dranbleiben lohnt sich: In unseren folgenden Impulsen gehen wir tiefer in die Materie und erklären, wie dynamische Sicherheit auf Zeilenebene funktionieren, wie Object Level Security (OLS) und Page/Tab Level Security integriert werden können und was Private Endpoints sind!
Übersicht zur Microsoft Power Platform:
- Power BI Deep Dive
- Power Apps Deep Dive
- Power Automate Deep Dive
- Power Virtual Agents Deep Dive
- Sicherheitskonzepte in MS PBI – statisches Row Level Security
- Sicherheitskonzepte in MS PBI – dynamisches Row Level Security
- Sicherheitskonzepte in MS PBI – Object, Page & Organisation Level Security
- Best Practice Power BI Verwaltungsportal und Mandanteneinstellungen
- Eltern-Kind-Hierarchien in Power BI zur Abbildung von Organigrammen
Interessiert? Dann nichts wie ab zu unserer Power BI Schulung, BI Einführungsworkshop oder Power BI Performanceoptimierung. Damit Wissen nicht nur theoretisch im Kopf bleibt, sondern praktisch umgesetzt werden kann.