Teil 1 | Power BI Automation – Azure App-Registrierung für Service Principals 

Heute starte ich eine Blog-Reihe, die direkt aus der Praxis kommt. Das Szenario war folgendes. Ein Unternehmen hatte seine Projektreports in Power BI veröffentlicht, und die Aktualisierung des Datasets lief über einen Benutzer. Soweit war erstmal alles gut. Bis zu dem Zeitpunkt, an dem dieser User nicht mehr zur Verfügung stand und die Aktualisierung des Datasets beziehungsweise des semantischen Modells nicht mehr sauber lief, weil die hinterlegten Anmeldeinformationen abgelaufen waren. Das Problem war, dass es bei dem Report um eine Fehlteilliste ging, die nicht nur im Projektmanagement gebraucht wurde, sondern auch in der Fertigung. Damit war das kein kleines Reporting-Problem mehr, sondern ein echter Stolperstein im Tagesgeschäft. Im Meeting kam dann die Frage auf, ob nicht ein Service Account in Microsoft 365 die Aktualisierung übernehmen kann. Für alle, die nicht aus der IT kommen, ist ein klassischer Service Account ein normaler Benutzeraccount, der nicht für eine Person gedacht ist, sondern für technische Dienste oder Automatisierungen genutzt wird. Grundsätzlich ist das möglich. Du musst aber bedenken, dass dieser Account die passenden Berechtigungen und je nach Szenario auch die passenden Lizenzen benötigt. Das verursacht zusätzliche Kosten und ist aus meiner Sicht nicht immer die sauberste Lösung. Die spannendere Frage ist also, ob das auch ohne klassischen Service Account geht. Die Antwort ist ja. In dieser Reihe zeige ich dir, wie du die Aktualisierung über einen Service Principal abbildest. Ein Service Principal ist keine normale Benutzeridentität, sondern eine App-Identität in Microsoft Entra ID. Damit kannst du automatisierte Aufgaben ausführen, ohne dass die Lösung an einem persönlichen Benutzerkonto hängt. Dafür sind allerdings mehrere Schritte notwendig. 

App-Regestrierung

In diesem Blog beginne wir mit dem ersten Teil, dass Anlagen einer registrierten App in Azure-Entra. Ich hate vor einiger Zeit schonmal einen Artikel zu dem Thema “Managed Service Accounts für Project for the Web Flows anlegen” geblogt allerdings weicht mitlerweie die Oberfläche ein wenig ab von der hetzigen und in den Dataverse müssen wir später auch einen andern Schritte vornehmen.  

Diese App ist dann später unser “Account” mit dem das DataSet (Symantische) Model entsprechen upgedatet wird. Zu beachten ist dabei das dieser User keine PowerBI Lilzen benötigt 

Hinweis: Bitte bachte, dass es nicht sinnvoll ist einen User-Principale für alle DateSets (symantiche Modelle) zu nutzen. Solltest du Daten aus SharePoint-Listen, Excel ist die Verwendung nicht zu empfehlen, da hier die Standard-Connectoren von Power BI bzw. Fabric keine direkten API zugriff erlauben und hier dann mit einem Premium-Connector gearbeitet werden muss. Bitte immer vorher prüfen ob die Verbindung einen API Zugriff erlaubt.  

Legen wie also los. Melde dich mit einem Adminitratoren-Account an deinen Microosft 365 Account an.  Klicke dann auf der linken Seite auf den Launcher und wähle “Admin” bzw. ”Microsoft 365 Admin” aus.   Klicke dann auf “Identitiät” auf der linken Seite. Klicke auf der Rechten Seite auf “App-Reistrierung”. Klicke auf “Neue Regisrrierung” Gebe dann einen Namen für die App ein. In meinem Beispiel “spn-pbi-dataverse-blog” wobei spn für Service Principal Name, pbi für PowerBI steht. Klicke abschließend im unteren Bereich auf “Regsitrieren”  

Anlegen des Zertifikates 

Klicke auf der linken Seite auf “Zertifikate & Geheimnisse (1)”.  Klicke dann auf “Neuer geheimer Schlüssel (2)”. Gebe einen gewünschten Namen ein. Beispiel “SecKey-SPN-PBI-Dataverse (3) “ und eine gewünschte Laufzeit. Ich nehme jetzt hier die empfohlene von 180 Tagen (4). 

Hinweis: Nicht immer weiss man wann welcher Key abläuft und wieder erneuert werden muss. Am besten du machst dir hierzu eine Erinnerung in dienen Kalender! 

Jetzt kommt der wichtigste Teil bei der App-Registrierung. Denn du musst dir jetzt einmal den Wert des Geheimenschlüssel weg kopieren. An diesen Key kommst nach schließen des Fensters nicht mehr dran. Öffne einen Text-Editor deiner Wahl. Erstelle schreibe “SecKey:” und füge den Key hinten an. 

Danach brauchst du aber noch ein paar mehr Informationen von der App. Klicke auf der linken Seite jetzt auf Übersicht. Kopiere dir hier die Anwendungs-ID (Client) und die Object-ID und die Verzeichnis-ID gebenfalls in die gerade erstellte Text-Datei.  

Die Datei sollte nun nur mit deinen Informationen wie folgt aussehen. 

In unserem nächste Teil werden wir als nächstes den UserPrincipal in der Power Platform registrieren und an der Planner Datenbank die Berechtigungen setzen, damit er die Daten abrufen kann.