Share via


Migrieren von Anwendungen mit mehreren Kunden zum Profilemodell des Dienstprinzipals

In diesem Artikel wird beschrieben, wie Sie die Skalierbarkeit optimieren, indem Sie Ihre eingebetteten Power BI-Analytics-Anwendungen mit mehreren Kunden zum Profilemodell des Dienstprinzipals migrieren.

Dienstprinzipalprofile erleichtern das Verwalten von Organisationsinhalten in Power BI und die effizientere Nutzung Ihre Kapazitäten.

Hinweis

Dieser Artikel richtet sich an Organisationen, die bereits über eine App verfügen, die mehrere Kunden von einem Power BI-Mandanten unterstützt.

Nicht alle Apps profitieren vom Dienstprinzipalmodell. Die folgenden Apps sollten beispielsweise nicht migriert werden:

  • Kleine Apps, die einen Dienstprinzipal mit wenigen Objekten verwalten
  • Apps, die einen oder mehrere Dienstprinzipale pro Kunde verwenden

Voraussetzungen

Informieren Sie sich über Dienstprinzipalprofile, bevor Sie mit dem Migrieren beginnen.

Sie müssen außerdem die folgenden Schritte ausführen:

Screenshot of Admin portal switch.

Migrieren zu Dienstprinzipalprofilen

Zur Migration zu Dienstprinzipalprofilen gehören die folgenden Schritte:

  1. Erstellen von Profilen – ein Profil pro Kunde
  2. Organisieren Ihrer Arbeitsbereiche
  3. Ändern des Anwendungscodes, um Profile zu verwenden
  4. Testen Ihrer Anwendung mit dem Profilemodell
  5. Bereinigen redundanter Berechtigungen

Erstellen von Profilen (Erforderlich)

Verwenden Sie die REST-API für Profile mit dem von Ihnen erstellten Dienstprinzipal, um für jeden Kunden ein Profil zu erstellen.

Sie sollten eine Zuordnung der einzelnen Datenkunden-IDs mit ihren entsprechenden Profil-IDs in Ihrer Datenbank speichern. Diese Zuordnung benötigen Sie später, um API-Aufrufe mit dem Mandantenprofil vorzunehmen.

Organisieren Ihrer Arbeitsbereiche

Am einfachsten verwalten Sie Ihre Daten mit einem Arbeitsbereich pro Kunde. Wenn Ihre App dieses Modell bereits verwendet, müssen Sie keine neuen Arbeitsbereiche erstellen. Sie müssen jedoch noch mithilfe der „Add Group User“-API jedem Profil Administratorzugriff auf den entsprechenden Arbeitsbereich gewähren.

Wenn Sie nicht über einen Arbeitsbereich pro Kunde verfügen, verwenden Sie das entsprechende Profil zum Aufrufen der „Create Group User“-API und um einen neuen Arbeitsbereich für jeden Kunden zu erstellen.

Organisieren von Elementen in Arbeitsbereichen

Sie sollten nun über ein Profil und einen Arbeitsbereich für jeden Kunden verfügen. Wenn Sie im vorherigen Schritt neue Arbeitsbereiche erstellt haben, müssen Sie Elemente (z. B. Berichte und Semantikmodelle) in diese Arbeitsbereiche importieren. Welche Semantikmodelle Sie importieren, hängt von Ihrer aktuellen Lösung ab:

  • Wenn Ihre App für jede*n Kund*in ein separates Semantikmodell verwendet, kann der Semantikmodellentwurf ohne Änderungen funktionieren.

  • Wenn Ihre App ein Semantikmodell mit Sicherheit auf Zeilenebene (Row-Level Security, RLS) verwendet, um verschiedene Daten für die Kundschaft bereitzustellen, können Sie die Skalierbarkeit optimieren, indem Sie für jede*n Kund*in ein separates Semantikmodell erstellen und Profile verwenden, wie in diesem Artikel beschrieben.

  • Nachdem Sie Skalierbarkeitsbeschränkungen mithilfe von Profilen und separaten Datenquellen umgangen haben, können Sie mithilfe von RLS mit Profilen noch mehr Datentrennung ermöglichen.

    • Wenn Sie dynamische RLS nutzen, wird der Name des Profils in der DAX-Funktion UserName() zurückgegeben.
    • Wenn Sie statische RLS und Rollen beim Generieren des Einbettungstokens außer Kraft setzen, können Sie dies weiterhin praktizieren.

Importieren Sie die Elemente in die relevanten Arbeitsbereiche, sobald sie bereit sind. Um den Prozess zu automatisieren, sollten Sie die „Import“-API verwenden.

Ändern des Anwendungscodes, um Profile zu verwenden

Sobald Sie über Profile mit Administratorzugriff auf die relevanten Arbeitsbereiche und eine Datenbank mit Zuordnung der Profile zum jeweiligen Kunden verfügen, können Sie die erforderlichen Codeänderungen vornehmen. Es wird empfohlen, zwei Codeflows nebeneinander zu besitzen und Ihren Kunden den Profilcodefluss schrittweise zur Verfügung zu stellen.

Führen Sie die folgenden Codeänderungen durch:

  • Autorisierungscodeänderung

    • Ändern Sie den Tokencode, wenn Sie in der Microsoft Entra ID-App einen Hauptbenutzer verwenden. Lesen Sie Einbetten mit dem Dienstprinzipal, um mehr zum Erstellen eines Microsoft Entra-Tokens allein für die App zu erfahren.
    • Passen Sie den Code an die richtige Dienstprinzipal-ID und Geheimnisse an, wenn Sie einen Dienstprinzipal verwenden und einen neuen für Profile erstellt haben.
  • Verwaltungscodeänderung

    Einige Apps verfügen über Verwaltungscode, der das Onboarding eines neuen Kunden nach der Registrierung automatisiert. Häufig verwendet der Verwaltungscode Power BI-REST-APIs zum Erstellen von Arbeitsbereichen und Importieren von Inhalten. Der Großteil des Codes sollte unverändert bleiben, doch eventuell müssen Sie die folgenden Details anpassen:

    • Erstellen Sie jedes Mal, wenn Sie einen neuen Kundenmandanten erstellen, ein neues Dienstprofil als Ersteller und Administrator des Arbeitsbereichs für diesen Mandanten.
    • Wenn Sie Ihren Power BI-Inhalt neu organisieren möchten, bearbeiten Sie den Code, um die Änderungen vorzunehmen.
  • Einbettungstoken-Codeänderung

    Ersetzen Sie den API-Aufrufer. Stellen Sie sicher, dass ein Profil die GenerateToken-API aufruft, da im Profilemodell nur ein bestimmtes Profil auf den Inhalt des Kunden zugreifen kann.

Überprüfen

Sie sollten Ihre App gründlich testen, bevor Sie sie in das Profilemodell verschieben. Berichte können auch dann geladen werden, wenn Fehler im SaaS-Anwendungscode vorhanden sind, da Sie ältere Berechtigungen für die Arbeitsbereiche nicht gelöscht haben.

Bereinigung nach der Migration

Nachdem Sie die Migration abgeschlossen und die Ergebnisse überprüft haben, entfernen Sie, was Sie nicht mehr benötigen.

  • Bereinigen des Codes: Deaktivieren Sie alte Codepfade, damit Sie nur neuen, auf Profilen basierenden Code ausführen.
  • Bereinigen von Arbeitsbereiche und Berechtigungen in Power BI: Wenn Sie neue Arbeitsbereiche erstellt haben, können Sie die alten, nicht mehr verwendeten Arbeitsbereiche löschen. Wenn Sie dieselben Arbeitsbereiche wiederverwendet haben, können Sie die älteren Berechtigungen wie die Hauptbenutzerberechtigungen im Arbeitsbereich löschen.

Weitere Fragen? Stellen Sie Ihre Frage in der Power BI-Community.