Dienstprinzipal in Fabric Data Warehouse
Gilt für:✅ Warehouse in Microsoft Fabric
Ein Azure-Dienstprinzipal ist eine Sicherheitsidentität, die von Anwendungen oder Automatisierungstools verwendet wird, um auf bestimmte Azure-Ressourcen zuzugreifen. Im Gegensatz zu Benutzeridentitäten sind Dienstprinzipale nicht interaktive, anwendungsbasierte Identitäten, denen präzise Berechtigungen zugewiesen werden können, sodass sie perfekt für automatisierte Prozesse oder Hintergrunddienste geeignet sind. Mithilfe von Dienstprinzipalen können Sie sicher eine Verbindung mit Ihren Datenquellen herstellen und gleichzeitig die Risiken von menschlichen Fehlern und identitätsbasierten Sicherheitsrisiken minimieren. Weitere Informationen zu Dienstprinzipalen im Allgemeinen finden Sie unter Anwendungs- und Dienstprinzipalobjekte in Microsoft Entra ID.
Voraussetzungen
Stellen Sie sicher, dass der Mandantenadministrator Dienstprinzipale können Fabric-APIs verwenden im Fabric Admin-Portal aktivieren kann.
Stellen Sie sicher, dass ein Benutzer mit Arbeitsbereichsrolle „Administrator“ durch Verwalten des Zugriffs im Arbeitsbereich Zugriff für einen SPN gewähren kann.
Erstellen und Zugreifen auf Lager über REST-APIs mit SPN
Benutzer mit Arbeitsbereichsrolle „Administration“, „Mitglied“ oder „Mitwirkende Person“ können Dienstprinzipale für die Authentifizierung verwenden, um Lagerelemente über Fabric REST-APIs zu erstellen, zu aktualisieren, zu lesen und zu löschen. Auf diese Weise können Sie sich wiederholende Aufgaben wie das Bereitstellen oder Verwalten von Lagerhäusern automatisieren, ohne sich auf Benutzeranmeldeinformationen zu verlassen.
Wenn Sie ein delegiertes Konto oder eine feste Identität (Identität der besitzenden Person) zum Erstellen des Lagers verwenden, verwendet das Lager diese Anmeldeinformationen beim Zugriff auf OneLake. Dies verursacht ein Problem, wenn der Besitzer die Organisation verlässt, da das Lager nicht mehr funktioniert. Um dies zu vermeiden, erstellen Sie Speicherorte unter Verwendung eines SPN.
Fabric erfordert außerdem, dass sich der Benutzer alle 30 Tage anmeldet, um sicherzustellen, dass ein gültiges Token aus Sicherheitsgründen bereitgestellt wird. Für ein Data Warehouse muss sich der Besitzer alle 30 Tage bei Fabric anmelden. Dies kann mit einem SPN und der API Liste automatisiert werden.
Lager, die von einem SPN mit REST-APIs erstellt werden, werden in der Listenansicht des Arbeitsbereichs im Fabric-Portal mit dem Namen Besitzende Person als SPN angezeigt. In der folgenden Abbildung, einem Screenshot aus dem Arbeitsbereich im Fabric-Portal, lautet der SPN, der das Contoso Marketing Warehouse erstellt hat, folgendermaßen: „Fabric Public API test app“.
Herstellen einer Verbindung mit Client-Anwendungen mithilfe von SPN
Sie können eine Verbindung mit Fabric-Lagern herstellen, indem Sie Dienstprinzipale mit Tools wie SQL Server Management Studio (SSMS) 19 oder höher verwenden.
- Authentifizierung: Microsoft Entra-Dienstprinzipal
- Benutzername: Client-ID des SPN (erstellt über Azure im Voraussetzungsabschnitt)
- Kennwort: Geheimnis (erstellt über Azure im Abschnitt 'Voraussetzungen')
Berechtigungen auf Steuerungsebene
Dienstprinzipalnamen kann im Arbeitsbereich mithilfe von Arbeitsbereichsrollen über Verwalten des Zugriffs Zugriff auf Lager gewährt werden. Darüber hinaus können Lager über das Fabric-Portal über Elementberechtigungen für einen SPN freigegeben werden.
Berechtigungen auf Datenebene
Sobald Lager über Arbeitsbereichsrollen oder Elementberechtigungen Steuerebenenberechtigungen für einen SPN bereitstellen, können Administratoren T-SQL-Befehle wie GRANT
verwenden, um bestimmte Berechtigungen für Datenebenen Dienstprinzipalen zuzuweisen und zu steuern, auf welche Metadaten/Daten und Vorgänge ein SPN Zugriff hat. Es wird empfohlen, das Prinzip der geringsten Berechtigung zu befolgen.
Beispiel:
GRANT SELECT ON <table name> TO <service principal name>;
Sobald Berechtigungen erteilt wurden, können SPN eine Verbindung mit Clientanwendungstools wie SSMS herstellen, wodurch Entwickler sicheren Zugriff auf die Ausführung von COPY INTO (sowohl mit als auch ohne Speicher mit aktivierter Firewall) erhalten und auch programmgesteuert eine T-SQL-Abfrage zeitlich gesteuert mit Data Factory-Pipelines ausführen können.
Überwachen
Wenn ein SPN Abfragen im Datenlager ausführt, gibt es verschiedene Überwachungstools, die Einblicke in den Benutzer oder das SPN bieten, der die Abfrage ausgeführt hat. Sie können den Benutzer für Abfrageaktivitäten auf die folgenden Arten finden:
- Dynamische Verwaltungssichten (Dynamic Management Views, DMVs): Spalte
login_name
insys.dm_exec_sessions
. - Abfrageeinblicke: Spalte
login_name
in Ansichtqueryinsights.exec_requests_history
. - Abfrageaktivität: Spalte
submitter
in Fabric-Abfrageaktivität. - Kapazitätsmetriken-App: Die Compute-Nutzung für von SPN ausgeführte Lagervorgänge wird als Client-ID unter der Spalte Benutzende in der Tabelle „Hintergrundvorgänge“ angezeigt.
Weitere Informationen finden Sie unter Fabric Data Warehouse überwachen.
Übernahme-API
Der Besitz von Lagerhäusern kann von einem SPN auf einen Benutzer und von einem Benutzer auf einen SPN übertragen werden.
Übernahme von SPN oder von einem Benutzer auf einen anderen Benutzer: Siehe Änderung des Besitzes von Fabric Warehouse.
Übernahme von einem SPN oder Benutzer auf einen SPN: Verwenden Sie einen POST-Aufruf an die REST-API.
POST <PowerBI Global Service FQDN>/v1.0/myorg/groups/{workspaceid}/datawarehouses/{warehouseid}/takeover
Begrenzungen
Einschränkungen der Dienstprinzipale mit Microsoft Fabric Data Warehouse:
- Standardsemantikmodelle werden für von SPN erstellte Lagerhäuser nicht unterstützt. Daher funktionieren Features wie das Auflisten von Tabellen in der Datasetansicht, das Erstellen eines Berichts aus dem Standard-Dataset nicht.
- Der Dienstprinzipal für SQL-Analyseendpunkte wird derzeit nicht unterstützt.
- Dienstprinzipal- oder Entra-ID-Anmeldeinformationen werden derzeit für COPY INTO-Fehlerdateien nicht unterstützt.
- Dienstprinzipale werden für GIT-APIs nicht unterstützt. Die SPN-Unterstützung ist nur für Bereitstellungspipeline-APIs vorhanden.