Delen via


Serviceprincipal in Fabric Data Warehouse

van toepassing op:✅ Warehouse in Microsoft Fabric

Een Azure-service-principal (SPN) is een beveiligingsidentiteit die wordt gebruikt door toepassingen of automatiseringsprogramma's voor toegang tot specifieke Azure-resources. In tegenstelling tot gebruikersidentiteiten zijn service-principals niet-interactief, op toepassingen gebaseerde identiteiten die nauwkeurige machtigingen kunnen krijgen, waardoor ze perfect zijn voor geautomatiseerde processen of achtergrondservices. Met behulp van service-principals kunt u veilig verbinding maken met uw gegevensbronnen en tegelijkertijd de risico's van menselijke fouten en beveiligingsproblemen op basis van identiteit minimaliseren. Voor meer informatie over service-principals, zie Toepassings- en service-principalobjecten in Microsoft Entra ID.

Voorwaarden

  1. Een service-principal maken, rollen toewijzen en een geheim maken met behulp van Azure.

  2. Zorg ervoor dat de tenantbeheerder Service-principals kan inschakelen, fabric-API's kunnen gebruiken in de Fabric-beheerportal.

  3. Zorg ervoor dat een gebruiker met de werkruimterol Administrator toegang voor een SPN kan verlenen via Toegang beheren in de werkruimte.

    Schermopname van de Fabric-portal van het pop-upvenster voor toegang beheren.

Warehouses maken en openen via REST API's met behulp van SPN

Gebruikers met de rol beheerder, lid of inzender werkruimte kunnen service-principals gebruiken voor verificatie voor het maken, bijwerken, lezen en verwijderen van warehouse-items via Fabric REST API's. Hierdoor kunt u terugkerende taken automatiseren, zoals het inrichten of beheren van magazijnen zonder dat u afhankelijk bent van gebruikersreferenties.

Als u een gedelegeerd account of een vaste identiteit (identiteit van de eigenaar) gebruikt om het magazijn aan te maken, gebruikt het magazijn die referentie voor toegang tot OneLake. Hierdoor ontstaat er een probleem wanneer de eigenaar de organisatie verlaat, omdat het magazijn niet meer werkt. Om dit te voorkomen, maakt u magazijnen met behulp van een SPN.

Fabric vereist ook dat de gebruiker zich elke 30 dagen aanmeldt om ervoor te zorgen dat er om veiligheidsredenen een geldig token wordt opgegeven. Voor een datawarehouse moet de eigenaar zich elke 30 dagen aanmelden bij Fabric. Dit kan worden geautomatiseerd met behulp van een SPN met de List-API.

Schermopname van een Fabric API POST-aanroep met behulp van een SPN.

Warehouses die zijn gemaakt door een SPN met behulp van REST-API's, worden weergegeven in de werkruimtelijstweergave in de Fabric-portal, met de eigenaar naam als de SPN. In de volgende afbeelding ziet u een screenshot van de werkruimte in de Fabric-portal. "Fabric Public API test app" is de SPN die het Contoso Marketing Warehouse heeft gemaakt.

schermopname van de Fabric-portal van de lijst met werkruimte-items. Er wordt een magazijn weergegeven. De eigenaar is geen persoonlijk account, maar een SPN.

Verbinding maken met clienttoepassingen met behulp van SPN

U kunt verbinding maken met Fabric-magazijnen met behulp van service-principals met hulpprogramma's zoals SSMS (SQL Server Management Studio) 19 of hogere versies.

  • verificatie: Microsoft Entra-service-principal
  • gebruikersnaam: client-id van SPN (gemaakt via Azure in de sectie Vereisten)
  • wachtwoord: geheim (gemaakt via Azure in de sectie Vereisten)

Schermopname van het aanmelden bij Fabric met een SPN in SQL Server Management Studio (SSMS).

Machtigingen voor het controlevlak

SPN's kunnen toegang krijgen tot magazijnen met behulp van werkruimterollen via Toegang beheren in de werkruimte. Bovendien kunnen magazijnen worden gedeeld met een SPN via de Fabric-portal met behulp van Artikelmachtigingen.

Machtigingen voor het gegevensvlak

Zodra warehouses machtigingen voor het besturingsvlak voor een SPN krijgen via werkruimterollen of itemmachtigingen, kunnen beheerders T-SQL-opdrachten zoals GRANT gebruiken om specifieke machtigingen voor gegevensvlak toe te wijzen aan service-principals, om precies te bepalen tot welke metagegevens/gegevens en bewerkingen een SPN toegang heeft. Dit wordt aanbevolen om het principe van minimale bevoegdheden te volgen.

Bijvoorbeeld:

GRANT SELECT ON <table name> TO <service principal name>;

Zodra machtigingen zijn verleend, kunnen SPN's verbinding maken met clienttoepassingshulpprogramma's zoals SSMS, waardoor ontwikkelaars veilige toegang krijgen om COPY INTO uit te voeren (met en zonder firewallopslag), en ook programmatisch een T-SQL-query uitvoeren volgens een schema met Data Factory-pijplijnen.

Schermopname van een query en resulteert in SQL Server Management Studio (SSMS), waarbij de gebruiker toegang heeft tot een Azure Storage-object met behulp van de SPN.

Monitor

Wanneer een SPN query's uitvoert in het magazijn, zijn er verschillende bewakingshulpprogramma's die inzicht bieden in de gebruiker of SPN die de query heeft uitgevoerd. U vindt de gebruiker voor queryactiviteit op de volgende manieren:

Zie Fabric-datawarehouse bewakenvoor meer informatie.

Overname-API

Eigendom van magazijnen kan worden gewijzigd van een SPN naar een gebruiker en van een gebruiker naar een SPN.

  • Overname van SPN of gebruiker naar gebruiker: Zie Wijzig eigendom van Fabric Warehouse.

  • Overname van SPN of gebruiker naar SPN: gebruik een POST-aanroep in REST API.

    POST <PowerBI Global Service FQDN>/v1.0/myorg/groups/{workspaceid}/datawarehouses/{warehouseid}/takeover
    

Beperkingen

Beperkingen van service-principals met Microsoft Fabric Data Warehouse:

  • Standaard semantische modellen worden niet ondersteund voor door SPN gemaakte magazijnen en als gevolg hiervan werken functies zoals het weergeven van tabellen in de gegevenssetweergave, het maken van een rapport op basis van de standaardgegevensset niet.
  • Service-principal voor SQL-analyse-eindpunten wordt momenteel niet ondersteund.
  • Referenties voor een service-principal of Entra ID worden momenteel niet ondersteund voor Copy Into-foutlogbestanden.
  • Service principals worden niet ondersteund voor GIT-API's. SPN-ondersteuning bestaat alleen voor api's voor implementatiepijplijn.