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:
Melden Sie sich beim Azure-Portal an.
Wechseln Sie zu Microsoft Entra ID>Unternehmensanwendungen.
Wählen Sie in den Suchfiltern Anwendungstyp = Alle Anwendungen aus. Die Anwendungs-ID beginnt mit
e406a681-f3d4-42a8-90b6-c2b029497af1
.
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.
Wenden Sie die folgenden Konfigurationen auf Ihre Anwendung an:
- Erstellen Sie die Anwendung als mehrinstanzenfähige App.
- 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.
Ä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 WorkloadnameFabric.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:
Wählen Sie unter Eine API verfügbar machenBereich hinzufügen aus. Nennen Sie den Bereich
FabricWorkloadControl
, und geben Sie die erforderlichen Details ein.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-ElementenItem1.ReadWrite.All
: dient zum Lesen/Schreiben von Workload-ElementenFabricLakehouse.Read.All
: dient zum Lesen von Lakehouse-DateienFabricLakehouse.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
.
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.
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.
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:
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.
- Installieren der Azure CLI: Zunächst installieren Sie die Azure CLI für Windows.
- 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.
- 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)
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 habenAudience
: der ID-URI, den Sie in der Microsoft Entra-App konfiguriert haben
Konfigurieren Sie die Datei workloadManifest.xml. Wechseln Sie im Repository zur Datei src/Packages/manifest/files/WorkloadManifest.xml. Konfigurieren Sie unter
AADApp
die EinstellungenAppId
,redirectUri
undResourceId
(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
Zugehöriger Inhalt
- Erfahren Sie, wie Sie mit der Authentifizierung in Workloads arbeiten.