Kürzlich war ich an einem Projekt beteiligt, bei welchem es um die Umsetzung von Power BI Embedded ging. In diesem Artikel beschreibe ich was Power BI Embedded ist, wie es umgesetzt wird und auf welche Herausforderungen wir gestossen sind. Für die technische Umsetzung der einzelnen Schritte wird an entsprechender Stelle auf umfangreiche Dokumentationen verwiesen.
Das Produkt
Mit Power BI Embedded können Dashboards, Kacheln und Berichte in einer Anwendung eingebettet werden. Dies hat unter anderem den Vorteil, dass die Nutzer der Anwendung keinen Power BI Account benötigen, um beispielsweise einen Bericht sehen zu können. Aber Vorsicht: Wenn man mit der Anwendung in die Produktionsphase wechselt, sollte der Power BI Anwendungs-Arbeitsbereich («Workspace») durch eine dedizierte Kapazität abgesichert sein. Diese dedizierte Kapazität verursacht, wie Power BI Lizenzen auch, Kosten. Informationen zu den Kosten von dedizierten Kapazitäten findet man hier: https://azure.microsoft.com/en-au/pricing/details/power-bi-embedded/.
Die Umsetzung
Für die Verwendung von Power BI Embedded haben wir die folgenden Schritte vorgenommen:
- Erstellung eines Arbeitsbereichs
- Erstellung eines Service Principal
- Registrierung einer Anwendung
- Einbetten des Inhalts in der Anwendung
Zunächst haben wir einen neuen Power BI Arbeitsbereich erstellt. Die technische Umsetzung kann hier nachgelesen werden: https://docs.microsoft.com/en-us/power-bi/service-create-the-new-workspaces. Für die Authentifizierung benötigten wir einen Service Principal, welcher Client-ID und Client-Secret für die Authentifizierung verwendet. Da bei diesem Kunden, wie in grösseren Unternehmen üblich, verschiedene Rollen auf mehrere Mitarbeiter verteilt sind, hat dieser Schritt einigen Koordinationsaufwand verursacht. Um einen Service Principal verwenden zu können, sind nämlich mehrere Schritte notwendig, welche unterschiedliche Rollen (wie etwa Azure und Power BI Admin Rechte) erfordern. Die einzelnen Schritte sind hier beschrieben: https://docs.microsoft.com/en-us/power-bi/developer/embed-service-principal#get-started-with-a-service-principal. Darunter ist auch die Registrierung der Anwendung, da die Anwendung nur dann mit Azure interagieren kann. Diese kann entweder über Power BI oder über das Azure Portal erfolgen. Die Einstellungen der Anwendung können jedoch nur im Azure Management Portal bearbeitet werden. Wie man die Registrierung vornimmt, kann beispielsweise hier nachgelesen werden: https://docs.microsoft.com/en-us/power-bi/developer/register-app.
Security
Zu beachten ist, dass Service Principals Zugriff auf alle Mandanteneinstellungen haben, die für die gesamte Organisation oder für Sicherheitsgruppen aktiviert sind, welche den Service Principal enthalten. Daher haben wir eine dedizierte Sicherheitsgruppe für den Service Principal erstellt. Des Weiteren mussten wir den Service Principal zu einem Admin im erstellten Power BI Arbeitsbereich machen.
Einbetten der Inhalte
Um schliesslich Inhalte in der Anwendung einbetten zu können, benötigten wir die Arbeitsbereich-ID und die Berichts-ID. Dafür öffneten wir den Bericht in powerbi.com und konnten die benötigten IDs aus der URL-Leiste beziehen. Wie man Inhalte in der Anwendung einbettet und auch wie man einem Arbeitsbereich über einen Service Principal eine dedizierte Kapazität zuweist, kann hier nachgelesen werden: https://docs.microsoft.com/en-us/power-bi/developer/embed-sample-for-customers#embed-content-within-your-application. Ist die Anwendung in PHP programmiert hilft der folgende Link bei der Einbettung der Inhalte: http://phpmagazine.net/2018/11/integrate-microsoft-power-bi-and-php.html.
Fazit
Alles in allem ist die Einbettung von Power BI in eine eigene Applikation gut dokumentiert und rasch umsetzbar. Voraussetzung ist, dass man die nötigen Berechtigungen in Azure und Power BI hat.