(Verfasst in Zusammenarbeit mit Andreas Schweiger & Stefan Starke)

In der heutigen datengetriebenen Welt verlassen sich Organisationen jeder Größe auf Daten, um fundierte Entscheidungen zu treffen, Erkenntnisse zu gewinnen und das Unternehmenswachstum voranzutreiben. Rohdaten allein reichen jedoch selten aus; sie müssen in handlungsorientierte Informationen umgewandelt werden. Genau hier kommt Power BI ins Spiel und bietet eine leistungsstarke Suite von Tools zur Analyse, Visualisierung und gemeinsamen Nutzung von Daten.

Bevor wir uns mit den Möglichkeiten und Techniken zur Einbettung von Power-BI-Berichten befassen – was eine der wichtigsten Fragen in unseren individuellen Softwareprojekten ist –, werfen wir einen kurzen Blick auf die Frage:

Was ist Power BI und welche wichtigsten Features bietet es?

Kurz gesagt ist Power BI ein Business-Intelligence- und Datenvisualisierungstool, das Benutzern ermöglicht, Rohdaten in interaktive visuelle Berichte und Dashboards umzuwandeln. Es bietet eine einheitliche Plattform für Datenerkundung, Datenvorbereitung, Datenmodellierung und Datenweitergabe. Mit seiner intuitiven Oberfläche und robusten Funktionalitäten ist Power BI zur bevorzugten Wahl für Organisationen geworden, die aussagekräftige Erkenntnisse aus ihren Daten gewinnen möchten.

Um einen Eindruck zu vermitteln, schauen wir uns einen Beispielbericht an (der hier heruntergeladen werden kann):

Dashboard titled Industry Margin Analysis, built in Microsoft Power BI, displaying line graphs, bar charts, and a scatter plot with data on gross margins, customers, and products across various industries. Key figures: 80 customers, 5 products, 42.5% gross margin.

Wichtigste Features

1. Datenintegration

Power BI stellt eine Verbindung zu einer Vielzahl von Datenquellen her, darunter Datenbanken, Cloud-Dienste und lokale Daten. Es kann Daten aus Excel-Tabellen, SQL-Datenbanken, DataVerse, Azure und vielem mehr nahtlos integrieren, wodurch es einfach ist, Daten aus verschiedenen Quellen in einem einzigen Datensatz zu konsolidieren und zu transformieren.

2. Datentransformation und -modellierung

Power BI bietet eine leistungsstarke Datenmodellierungsmaschine, die es Benutzern ermöglicht, Daten mit dem Power Query Editor zu formen und zu transformieren. Dieses Tool ist besonders nützlich zum Bereinigen, Filtern und Strukturieren von Daten vor der Analyse. Benutzer können Beziehungen zwischen Tabellen erstellen, berechnete Spalten und Measures definieren und erweiterte Transformationen anwenden.

3. Interaktive Visualisierung

Eines der herausragenden Features von Power BI ist seine Fähigkeit, beeindruckende Visualisierungen zu erstellen. Benutzer können aus einer Vielzahl von Diagrammen, Grafiken und Karten wählen, um Daten auf überzeugende und informative Weise darzustellen. Die Drag-and-Drop-Oberfläche erleichtert die Erstellung interaktiver Dashboards, die sich in Echtzeit aktualisieren, wenn sich Daten ändern.

4. Zusammenarbeit und gemeinsame Nutzung

Power BI ermöglicht die Zusammenarbeit, indem Benutzer Berichte und Dashboards mit Kollegen oder externen Stakeholdern teilen können. Die Möglichkeit, Berichte zu teilen und bei der Datenanalyse zusammenzuarbeiten, fördert eine Kultur der Zusammenarbeit innerhalb von Organisationen und verbessert den Wissensaustausch.

5. KI- und Machine-Learning-Integration

Power BI lässt sich mit Azure Machine Learning integrieren und ermöglicht es Benutzern, Machine-Learning-Modelle in ihre Berichte und Dashboards einzubetten. Das ermöglicht prädiktive Analysen, Anomalieerkennung, automatisierte Erkenntnisgewinnung und ein Frage-und-Antwort-Feature. Es nutzt natürliche Sprachverarbeitung, um Visualisierungen und Antworten basierend auf den verfügbaren Daten zu generieren.

6. Mobiler Zugriff

Mit Power BI Mobile können Benutzer auf ihre Berichte und Dashboards auf Smartphones und Tablets zugreifen. Das stellt sicher, dass Entscheidungsträger überall Zugang zu kritischen Daten haben.

Lizenzen

Die Wahl der richtigen Power-BI-Lizenz ist entscheidend, um den Nutzen dieses leistungsstarken Tools zu maximieren und gleichzeitig das Budget einzuhalten.

Im Allgemeinen können Lizenzen in zwei Hauptkategorien unterteilt werden: benutzerbasierte (Free, Pro, Premium Per User) und kapazitätsbasierte (Premium, Embedded) Lizenzierung.

Lizenztyp

Zielgruppe

Beschreibung

Kosten

Power BI Free

Alle

Ermöglicht die Erstellung von Berichten und Dashboards in Power BI Desktop, hat aber Einschränkungen bei der gemeinsamen Nutzung und Zusammenarbeit. Ein guter Ausgangspunkt für den persönlichen Gebrauch oder zum Erkunden der Möglichkeiten von Power BI.

Kostenlos

Power BI Pro

Einzelne Benutzer, die Berichte und Dashboards innerhalb ihrer Organisation veröffentlichen und teilen müssen

Benutzerbasierte Lizenz für die gemeinsame Nutzung und Zusammenarbeit bei Berichten.

9,99 $ pro Benutzer pro Monat

Power BI Premium

Organisationen mit größeren Benutzerbasen und anspruchsvolleren Anforderungen

Bietet dedizierte Kapazität für schnellere und zuverlässigere Performance. Der Preis hängt von der Anzahl der virtuellen Kerne und der der Premium-Kapazität zugewiesenen RAM-Menge ab.

Variabel, basierend auf Kapazität und Benutzern

Power BI Premium Per User (PPU)

Geeignet für kleine bis mittelgroße Unternehmen

Benutzerbasierte Lizenz, die Benutzern den Zugriff auf Premium-Features ermöglicht, ohne eine vollwertige Power-BI-Premium-Kapazität zu benötigen.

20 $ pro Benutzer pro Monat

Power BI Embedded

Entwickler und ISVs (unabhängige Softwareanbieter)

Lizenz für die Einbettung von Power-BI-Berichten und Dashboards in benutzerdefinierte Anwendungen. Der Preis hängt von der Anzahl der virtuellen Kerne und der zugewiesenen RAM-Menge ab.

Variabel, basierend auf Nutzung

Power-BI-Berichte integrieren

Wenn ihr bereits Anwendungen oder Webseiten basierend auf dem Power-Platform-Ökosystem entwickelt (CLF Engineering Blog), ist die Einbettung eines Berichts in Power Apps euer bevorzugter Weg.

Integration in Power Apps oder Power Pages

Diese Integration ermöglicht es euch, Power-BI-Inhalte direkt in Webseiten einzubetten, die auf einem Power Apps Portal gehostet werden, und bietet eine nahtlose Benutzererfahrung für externe Kunden oder Benutzer, die möglicherweise keinen direkten Zugriff auf Power BI haben. Innerhalb eures Power Apps Portals könnt ihr Power-BI-Berichte oder Dashboards in Webseiten einbetten. Das kann mit der „Power BI”-Komponente oder einem HTML-iframe erfolgen.

A user interface shows a Microsoft Power BI dashboard embed tool, with options to select access type, workspace, type, dashboard, and tile, on a webpage editor with navigation menus on the left.

Weitere Details findet ihr in der offiziellen Dokumentation oder in unserem Cloudflight Engineering Blog.

Integration in eine benutzerdefinierte Anwendung

Für uns – als Unternehmen, das individuelle Software entwickelt – ist der interessanteste Ansatz die Einbettung von Berichten in andere Anwendungen mit Power BI Embedded.

Um sicherzustellen, dass nur autorisierte Benutzer eingebettete Power-BI-Inhalte anzeigen können, ist ein robustes Authentifizierungs- und Autorisierungssystem erforderlich – und genau hier kommen Power-BI-Embedded-Tokens ins Spiel.

Power-BI-Embedded-Tokens sind eine Art Sicherheitstoken, das Zugriff auf bestimmte Power-BI-Inhalte gewährt. Sie werden verwendet, um Benutzer zu authentifizieren und ihren Zugriff auf eingebettete Berichte und Dashboards zu kontrollieren. So funktionieren sie:

Token generieren: Wenn ein Benutzer einen eingebetteten Power-BI-Bericht oder ein Dashboard anzeigen möchte, muss die hostende Anwendung (unsere individuell entwickelten Anwendungen) den Benutzer mit Power BI authentifizieren. Dies geschieht durch Anfordern eines eingebetteten Tokens.

Token-Parameter: Die Token-Anfrage enthält typischerweise Parameter wie die Identität und Rollen des Benutzers sowie den spezifischen Bericht/das spezifische Dashboard, auf das zugegriffen werden soll. Diese Parameter bestimmen, was der Benutzer sehen darf.

Token-Ausstellung: Power BI generiert ein Token basierend auf den bereitgestellten Parametern. Dieses Token ist ein temporärer, zeitlich begrenzter Zugriffsschlüssel.

Zugangskontrolle: Das Token enthält Informationen über die Berechtigungen, Rollen und die Inhalte, auf die der Benutzer zugreifen darf. Wenn der Benutzer versucht, auf die eingebetteten Inhalte zuzugreifen, wird das Token validiert, um sicherzustellen, dass der Benutzer die erforderlichen Berechtigungen hat.

Ablauf: Power-BI-Embedded-Tokens haben eine begrenzte Lebensdauer, was die Sicherheit erhöht. Sobald das Token abläuft, muss das Backend ein neues für den weiteren Zugriff anfordern.

Schauen wir uns die Schritte an, die wir zur Beschaffung eingebetteter Tokens implementiert haben:

Diagram showing a 5-step flow: Azure AD issues tokens to a web app, which connects to the Power BI API for business intelligence access, retrieves an embed token, and then provides it to users for seamless Microsoft Power BI integration. Icons represent each service and step.

Benutzerauthentifizierung: Zunächst durchläuft der Benutzer eurer Webanwendung einen Authentifizierungsprozess innerhalb eurer Web-App mit eurer gewählten Authentifizierungsmethode. Dieser Schritt überprüft die Identität des Benutzers.

Web-App-Autorisierung: Unsere Webanwendung nutzt nach erfolgreicher Authentifizierung des Benutzers ein Service-Principal, um eine Authentifizierung mit Azure Active Directory (Azure AD) herzustellen. Dieser Schritt gewährt unserer Web-App die notwendigen Berechtigungen für die Interaktion mit Power-BI-REST-APIs durch Anfordern eines Azure-AD-Tokens.

Embed-Token-Anfrage: Unsere Webanwendung kommuniziert mit der Power-BI-Embed-Token-REST-API-Operation und initiiert eine Anfrage für ein Embed-Token. Dieses spezifische Token definiert genau, welche Power-BI-Inhalte in unsere Anwendung eingebettet werden können, wie oben erklärt. Als Antwort auf unsere Anfrage stellt die REST-API unserer Webanwendung das Embed-Token zur Verfügung, das spezifisch für die angeforderten Power-BI-Inhalte ist.

Weitergabe des Embed-Tokens: Unsere Webanwendung übergibt dieses Embed-Token dann sicher an den Webbrowser des Benutzers und ermöglicht so die Interaktion des Browsers mit Power BI.

Benutzerzugriff: Schließlich verwendet der Web-App-Benutzer das Embed-Token in seinem Browser, um auf Power-BI-Inhalte zuzugreifen und damit zu interagieren, wie durch die Berechtigungen des Tokens autorisiert.

Der von Microsoft bereitgestellte Quellcode zeigt, wie ein Azure-AD-Token mithilfe eines Service-Principals abgerufen und Embed-Tokens generiert werden können.

Was die Frontend-Integration betrifft: Power BI unterstützt alle wichtigen UI-Frameworks – Angular, VueJS und React.

<powerbi-report
    [embedConfig] = {{
        type: "report",
        id: "<Report Id>",
        embedUrl: "<Embed Url>",
        accessToken: "<Access Token>",
        tokenType: models.TokenType.Embed,
        settings: {
            panes: {
                filters: {
                    expanded: false,
                    visible: false
                }
            },
            background: models.BackgroundType.Transparent,
        }
    }}
    [cssClassName] = { "reportClass" }
    [phasedEmbedding] = { false }
    [eventHandlers] = {
        new Map([
            ['loaded', () => console.log('Report loaded');],
            ['rendered', () => console.log('Report rendered');],
            ['error', (event) => console.log(event.detail);]
        ])
    }
>
</powerbi-report>

Row Level Security

Row Level Security (RLS) in Power BI ist eine Sicherheitsfunktion, die es euch ermöglicht, den Zugriff auf Daten auf Zeilenebene basierend auf Benutzerrollen und Filtern zu kontrollieren. Das bedeutet, ihr könnt einschränken, welche Daten einzelne Benutzer oder Benutzergruppen in einem Power-BI-Bericht oder Datensatz sehen können.

RLS wird typischerweise durch das Erstellen von Benutzerrollen in eurem Power-BI-Modell implementiert. Jede Benutzerrolle kann spezifische Datenzugriffsregeln haben. Benutzerrollen können in Power BI Desktop oder über den Power-BI-Dienst definiert und verwaltet werden.

Zur Durchsetzung von RLS werden Filterausdrücke innerhalb von Benutzerrollen verwendet. Diese Filterausdrücke sind in der DAX-Sprache (Data Analysis Expressions) geschrieben und definieren, welche Datenzeilen für Benutzer in dieser Rolle sichtbar sind. Filterausdrücke können so einfach oder komplex sein wie nötig und ermöglichen die Erstellung dynamischer Filter basierend auf Benutzerattributen wie Benutzername oder Abteilung. Nachfolgend findet sich ein Beispiel für die Verwendung von DAX-Ausdrücken, bei dem Benutzer ihre Datenzeilen NUR sehen, wenn der zugrunde liegende Datensatz einen Datensatz unter ihrem Benutzernamen hat.

RLS bietet dynamische Sicherheit, was bedeutet, dass die Daten in Echtzeit gefiltert werden, wenn Benutzer mit dem Bericht oder Datensatz interagieren. Benutzer sehen nur die Daten, die ihrer Rolle und den angewendeten Filtern entsprechen. Die Filter können wie folgt auf bestimmte Tabellen und Rollen angewendet werden:

Sobald RLS-Regeln definiert und getestet sind, können euer Power-BI-Bericht oder Datensatz im Power-BI-Dienst veröffentlicht werden. RLS-Regeln werden auch im Dienst durchgesetzt, was eine konsistente Sicherheit über verschiedene Plattformen und Geräte hinweg gewährleistet.

Beispiel für die Verwendung von RLS zur Filterung pro Person:

Wir möchten alles im Beispielbericht so filtern, dass der angemeldete Führungskräfte nur seine eigenen Daten sehen kann. Dafür müssen wir USERPRINCIPALNAME() in DAX verwenden, was den angemeldeten Führungskräfte zurückgibt. Ein neues Measure für die Tabelle mit den Namen der Führungskräfte erstellen und es „User” nennen mit dem Wert USERPRINCIPALNAME(). Dann die Sicherheitsrolle erstellen, indem auf den Modeling-Tab → Rollen verwalten geklickt wird. Eine Rolle erstellen und dann den Filter definieren. Dieser Filter bedeutet einfach, dass der angemeldete Benutzer nur seine eigenen Datensätze im gesamten Datensatz sieht:

Microsoft Power BI Manage roles window showing executive role. The DAX filter expression is [Name] = UserPrincipalName(). Roles, Tables, and Table filter DAX expression panels are visible, along with Save and Cancel buttons.

So sieht der Beispielbericht aus, wenn wir ihn nach RLS als Führungskraft „Andrew Ma” anzeigen:

Dashboard titled Industry Margin Analysis, built in Microsoft Power BI, with charts, filter lists for Industry and Product, large numbers showing 47 customers, 3 products, 45% GM%, and various graphs visualizing revenue data.

Beispiel für die Verwendung von RLS zum Ausblenden/Anzeigen von Elementen abhängig von der Sicherheitsrolle:

Eine Funktion zum Ausblenden einer gesamten Seite oder bestimmter Elemente in einem Bericht für bestimmte Rollen ist nicht verfügbar, aber es gibt eine Problemumgehung in PowerBI Desktop. Der Bericht kann normal erstellt werden, dann eine Karte hinzufügen und sie so groß machen, dass sie alles überlagert, was ausgeblendet werden soll.

Warnung: Diese Problemumgehung würde den Bericht nur visuell in der UI ausblenden, und ein böswilliger Benutzer hätte immer noch Zugriff auf die Daten im zugrunde liegenden Datensatz. Daher sollte sie bei der Arbeit mit echten Daten nicht allein in Kombination mit RLS eingesetzt werden.

Dazu neue Daten eingeben und folgende Tabelle erstellen:

A table titled Create Table in Microsoft Power BI lists two rows: 1 View and 2 Not View under the RLS column, with plus signs for adding new rows or columns.

Ein neues Measure erstellen und folgendes DAX schreiben, das die anzuzeigende Nachricht erstellt:

Message = IF(HASONEFILTER(‘RLS Table'[RLS]), “You are not authorized!”, “”)

Ein weiteres Measure erstellen und folgendes DAX schreiben, das den Hintergrund der zu erstellenden Overlay-Karte steuert:

Make Transparent = IF(HASONEFILTER(‘RLS Table'[RLS]), “#White”, “#FFFFFF00”)

Eine Karte erstellen und sie so groß wie die Berichtsseite machen. Das „Message”-Measure auswählen, das darauf angezeigt werden soll.

Den visuellen RLS-Tabellenbereich im allgemeinen Tab formatieren und die Hintergrundeigenschaften finden. Das erste Dropdown auf „Feldwert” und das zweite auf „Make Transparent” setzen.

Eine neue Rolle erstellen, die nicht berechtigt ist, den Bericht zu sehen:

On the Power BI Manage roles screen in Microsoft Power BI, the RLS Table is selected under Tables, and a DAX filter expression [RLS] = vIEW is entered. Buttons available include Create, Delete, Save, and Cancel.

So sollte der Bericht aussehen, wenn die Overlay-Karte so groß wie die Berichtsseite gemacht wird:

A white screen displays the centered message: You are not authorized! in plain black text, similar to the default access denied notification in Microsoft Power BI.

Fazit

Power BI ist ein leistungsstarkes Tool, das Organisationen ermöglicht, das volle Potenzial ihrer Daten zu nutzen. Mit den Möglichkeiten zur Einbettung von Berichten in Anwendungen ist es ein wertvolles Puzzlestück in unserem Toolkit, wenn es darum geht, individuelle Softwarelösungen effizient zu implementieren.