Freigeben über


Einrichtung der Authentifizierung

In diesem Artikel erfahren Sie, wie Sie mit der Authentifizierung in Microsoft Fabric arbeiten.

Zum Authentifizieren einer benutzerdefinierten Workload in Fabric richten Sie zunächst drei Komponententeile ein:

Hinweis

Um die in diesem Artikel beschriebenen Authentifizierungseinstellungen konfigurieren zu können, müssen Sie über die Rolle „Globaler Administrator“ verfügen.

Azure Storage-Bereitstellung

Das in diesem Artikel verwendete Authentifizierungsbeispiel veranschaulicht, wie Daten in einer Lakehouse-Architektur gespeichert und daraus gelesen werden. Dazu müssen Token für den Azure Storage-Dienst in OBO-Flows (On-Behalf-Of, im Auftrag von) erstellt werden. Um Token zu generieren, müssen Sie in die Verwendung von Azure Storage mit Ihrer Anwendung einwilligen. Für die Einwilligung muss Azure Storage zuerst im Mandanten bereitgestellt werden.

So überprüfen Sie, ob Azure Storage im Mandanten bereitgestellt worden ist:

  1. Melden Sie sich beim Azure-Portal an.

  2. Wechseln Sie zu Microsoft Entra ID>Unternehmensanwendungen.

  3. Wählen Sie in den Suchfiltern Anwendungstyp = Alle Anwendungen aus. Die Anwendungs-ID beginnt mit e406a681-f3d4-42a8-90b6-c2b029497af1.

    Screenshot: Azure Storage-Bereitstellung im Azure-Portal

Wenn die Azure Storage-Anwendung in den Suchergebnissen angezeigt wird, wird bereits Speicher bereitgestellt, und Sie können mit dem nächsten Schritt fortfahren. Andernfalls muss ein globaler Administrator die Anwendung konfigurieren.

Um Azure Storage bereitzustellen, öffnen Sie Windows PowerShell als Administrator, und führen Sie das folgende Skript aus:

Install-Module az  
Import-Module az  
Connect-AzureAD  
New-AzureADServicePrincipal -AppId e406a681-f3d4-42a8-90b6-c2b029497af1

Ihre Anwendung in Microsoft Entra ID manuell konfigurieren

Um eine Workload zu authentifizieren, muss die Workload-Anwendung in Microsoft Entra ID registriert sein. Wenn Sie keine Anwendung registriert haben, erstellen Sie eine neue Anwendung. Führen Sie anschließend die folgenden Schritte aus.

  1. Wenden Sie die folgenden Konfigurationen auf Ihre Anwendung an:

    1. Erstellen Sie die Anwendung als mehrinstanzenfähige App.
    2. Für Entwickleranwendungen konfigurieren Sie den Umleitungs-URI als http://localhost:60006/close mit der SPA-Plattform (Single Page Application). Diese Konfiguration ist erforderlich, um die Einwilligung von Microsoft zu unterstützen. Sie können weitere Umleitungs-URIs hinzufügen.

    Hinweis

    • Der Umleitungs-URI sollte ein URI sein, der die Seite einfach schließt, wenn Sie zu ihr navigieren. Der URI http://localhost:60006/close ist bereits im Front-End-Beispiel konfiguriert. Sie können den Umleitungs-URI in der Datei Frontend/src/index.ts überarbeiten. Wenn Sie den URI ändern, stellen Sie sicher, dass er mit dem URI übereinstimmt, der für Ihre Anwendung konfiguriert ist.
    • Sie können den Umleitungs-URI konfigurieren, nachdem Sie die Anwendung erstellt haben. Um die Umleitungs-URI-Einstellungen zu ändern, wechseln Sie zu Authentifizierung>Verwaltung.
    • Die Umleitungs-URL muss eine HTML-Seite zurückgeben, die nur JavaScript windows.close() aufruft.

    Screenshot: Anwendungsregistrierungs-UI

  2. Ändern Sie den Anwendungs-ID-URI für Ihre Anwendung. Gehen Sie zu Verwalten>Eine API verfügbar machen, und bearbeiten Sie den Anwendungs-ID-URI für Ihre App.

    Für ein Entwicklermodusszenario sollte der Anwendungs-ID-URI mit api://localdevinstance/<Workload publisher's tenant ID in lowercase (the tenant ID of the user used in Fabric to run the sample)>/<Name of your workload> beginnen und mit einem optionalen Unterpfad enden, der mit / beginnt (siehe die Beispiele weiter unten in diesem Abschnitt).

    Parameter des Anwendungs-ID-URI:

    • Der Name der Workload muss der Angabe im Manifest genau entsprechen.
    • Der ID-URI darf nicht mit einem Schrägstrich (/) enden.
    • Am Ende des ID-URI kann sich ein optionaler Unterpfad befinden, der durch eine Zeichenfolge von bis zu 36 Zeichen identifiziert wird. Sie darf nur englische Klein- und Großbuchstaben, Zahlen und Bindestriche enthalten.

    Tipp

    Hier erhalten Sie Hilfe beim Auffinden Ihrer Microsoft Entra-Mandanten-ID.

    Wenn beispielsweise die Mandanten-ID des Herausgebers aaaabbbb-0000-cccc-1111-dddd2222eeee und der Workloadname Fabric.WorkloadSample lautet, dann gilt:

    • Die folgenden URIs sind gültig:

      • api://localdevinstance/aaaabbbb-0000-cccc-1111-dddd2222eeee/Fabric.WorkloadSample
      • api://localdevinstance/aaaabbbb-0000-cccc-1111-dddd2222eeee/Fabric.WorkloadSample/abc
    • Die folgenden URIs sind nicht gültig:

      • api://localdevinstance/aaaabbbb-0000-cccc-1111-dddd2222eeee/Fabric.WorkloadSample/af/
      • api://localdevinstance/aaaabbbb-0000-cccc-1111-dddd2222eeee/Fabric.WorkloadSample/af/a
      • Jeder ID-URI, der nicht mit api://localdevinstance/aaaabbbb-0000-cccc-1111-dddd2222eeee/Fabric.WorkloadSample beginnt

Hinzufügen eines Bereichs für CRUD-APIs und Aufträge

Um mit den Create-, Read-, Update- und Delete-APIs (CRUD) für Workloadelemente arbeiten und andere Vorgänge mit Aufträgen ausführen zu können, müssen Sie einen Bereich hinzufügen. Fügen Sie den vorab autorisierten Anwendungen außerdem zwei dedizierte Fabric-Anwendungen für diesen Bereich hinzu, um anzugeben, dass Ihre API (der von Ihnen erstellte Bereich) Fabric vertraut.

So fügen Sie einen Bereich hinzu:

  1. Wählen Sie unter Eine API verfügbar machenBereich hinzufügen aus. Nennen Sie den Bereich FabricWorkloadControl, und geben Sie die erforderlichen Details ein.

  2. Wählen Sie unter Autorisierte Clientanwendungen die Option Eine Clientanwendung hinzufügen aus. Fügen Sie d2450708-699c-41e3-8077-b0c8341509aa (Fabric-Client für eine Workloadanwendung) hinzu, und wählen Sie Ihren Bereich aus.

Hinzufügen von Bereichen für die Datenebenen-API

Andere Bereiche müssen registriert werden, um Gruppen von Vorgängen darzustellen, die von der Datenebenen-API verfügbar gemacht werden.

Im Back-End-Beispiel stellen wir vier Beispiele bereit. Sie finden die Beispiele unter Backend/src/Constants/scopes.cs.

Die Reservierungsumfänge sind:

  • Item1.Read.All: dient zum Lesen von Workload-Elementen
  • Item1.ReadWrite.All: dient zum Lesen/Schreiben von Workload-Elementen
  • FabricLakehouse.Read.All: dient zum Lesen von Lakehouse-Dateien
  • FabricLakehouse.ReadWrite.All: dient zum Lesen/Schreiben von Lakehouse-Dateien

Autorisieren Sie 871c010f-5e61-4fb1-83ac-98610a7e9110 (die Fabric-Clientanwendung) für diese Reservierungsumfänge vorab.

Sie finden die Anwendungs-IDs dieser Apps unter Microsoft Power BI und Power BI-Dienst in Anwendungs-IDs häufig verwendeter Microsoft-Anwendungen.

So sollte der Abschnitt API verfügbar machen in Ihrer Anwendung aussehen. In diesem Beispiel lautet der ID-URI api://localdevinstance/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb/Fabric.WorkloadSample.

Der Screenshot zeigt, wie Ihr verfügbar gemachte API-Abschnitt aussehen soll.

Generieren Sie ein Geheimnis für Ihre Anwendung

Klicken Sie unter Zertifikate und Geheimnisse auf die Registerkarte Geheimnisse, und fügen Sie ein Geheimnis hinzu. Geben Sie einen beliebigen Namen ein, den Sie verwenden möchten, und speichern Sie ihn. Verwenden Sie dieses Geheimnis, wenn Sie das Back-End-Beispiel konfigurieren.

Screenshot: Dialogfeld „Geheimnisse generieren“

Hinzufügen eines optionalen idtyp-Anspruchs

Wählen Sie Optionalen Anspruch hinzufügen unter Tokenkonfiguration. Wählen Sie für den Tokentyp den Typ Zugriff und dann idtyp aus.

Der Screenshot zeigt das Hinzufügen des Anspruchs-idtyp.

API Berechtigungen hinzufügen

Fügen Sie unter API-Berechtigungen die Berechtigungen hinzu, die Sie für Ihre Anwendung benötigen. Für das Back-End-Beispiel fügen Sie „Azure Storage user_impersonation“ (für OneLake-APIs) und „Power BI Service Workspace.Read.all“ (für Workloadsteuerungs-APIs) hinzu:

Der Screenshot zeigt das Hinzufügen von App-API-Berechtigungen.

Weitere Informationen zu API-Berechtigungen finden Sie unter Aktualisieren der angeforderten Berechtigungen einer App in Microsoft Entra ID.

Festlegen der Anwendung für die Arbeit mit Authentifizierungstoken v1

Vergewissern Sie sich, dass unter Manifest die Einstellung accessTokenAcceptedVersion entweder auf null oder 1 festgelegt ist.

Konfigurieren Ihrer Anwendung in Microsoft Entra ID mithilfe eines Skripts

Um die Einrichtung Ihrer Anwendung in Microsoft Entra ID zu vereinfachen, können Sie ein automatisiertes PowerShell-Skript verwenden.

  1. Installieren der Azure CLI: Zunächst installieren Sie die Azure CLI für Windows.
  2. Ausführen des Skripts CreateDevAADApp.ps1: Führen Sie das Skript CreateDevAADApp aus. Sie werden aufgefordert, sich mit den Anmeldeinformationen des Benutzerkontos anzumelden, unter dem Sie die Anwendung erstellen möchten.
  3. Eingabe der erforderlichen Informationen: Wenn Sie dazu aufgefordert werden, geben Sie den gewünschten Namen für Ihre Anwendung, den Workloadnamen (mit dem Präfix Org.) und Ihre Mandanten-ID ein.

Wenn das Skript erfolgreich ausgeführt wird, werden alle Details zurückgegeben, die zum Konfigurieren der Workload erforderlich sind. Überdies werden eine direkte URL zu Ihrer Anwendung und eine URL für die Administratoreinwilligung für die mandantenweite Anwendungsautorisierung bereitgestellt.

Beispielverwendung

Um eine Anwendung namens „myWorkloadApp“ mit dem Workloadnamen „Org.Myworkload“ für den angegebenen Mandanten zu erstellen, führen Sie den folgenden Befehl in PowerShell aus:

powershell .\CreateDevAADApp.ps1 -applicationName "myWorkloadApp" -workloadName "Org.Myworkload" -tenantId "bbbbcccc-1111-dddd-2222-eeee3333ffff"

In diesem Beispiel wird veranschaulicht, wie Sie das Skript CreateDevAADApp.ps1 mit Befehlszeilenargumenten verwenden, um den Einrichtungsprozess der Anwendung zu automatisieren. Die bereitgestellte Mandanten-ID ist nur ein Beispiel. Ersetzen Sie die Beispielmandanten-ID durch Ihre tatsächliche Mandanten-ID.

Konfigurieren Ihrer Workload (Back-End)

  1. Wechseln Sie im Back-End-Beispiel zur Datei src/appsettings.json im Repository, und konfigurieren Sie diese Einstellungen:

    • PublisherTenantId: Die Mandanten-ID des Herausgebers.
    • ClientId: Ihre Anwendungs-ID (Sie finden sie in der Microsoft Entra ID-Übersicht)
    • ClientSecret: das Geheimnis, das Sie bei der Konfiguration der Microsoft Entra-App erstellt haben
    • Audience: der ID-URI, den Sie in der Microsoft Entra-App konfiguriert haben
  2. Konfigurieren Sie die Datei workloadManifest.xml. Wechseln Sie im Repository zur Datei src/Packages/manifest/files/WorkloadManifest.xml. Konfigurieren Sie unter AADApp die Einstellungen AppId, redirectUri und ResourceId (der ID-URI).

<AADApp>
    <AppId>YourApplicationId</AppId>
    <RedirectUri>YourRedirectUri</RedirectUri>
    <ResourceId>YourResourceId</ResourceId>
</AADApp>

Konfigurieren des lokalen Workloadmanifests

Hinweis

Dieser Schritt gilt nur für ein Entwicklermodusszenario.

Aktualisieren Sie nach der Konfiguration der Anwendung die folgenden Einstellungen in der Konfigurationsdatei env.dev, die sich im Ordner Frontend befindet:

"DEV_AAD_CONFIG_AUDIENCE": "", // The ID URI configured in your application for a developer scenario

"DEV_AAD_CONFIG_REDIRECT_URI": "http://localhost:60006/close", // Or the path you configured in index.ts

"DEV_AAD_CONFIG_APPID": "" // Your app ID

Screenshot: Konfiguration einer .env.dev-Datei