Aby bylo možné využít autentizaci Azure Service Principal, je nutné nejprve vytvořit aplikaci a její přihlašovací údaje v Entra ID (původně Azure Active Directory). Tuto metodu authentikace následně budeme potřebovat pro správné nastavení konfiguračního souboru profiles.yml pro připojení k Fabricu, kterou řešíme v článku – Fabric | dbt – Konfigurace profiles.yml pro SPN Autentizaci k SQL Endpointu. Správně nastavená konfigurace nám následně umožní komunikovat přes dbt a SQL dotazy s Fabric prostředím bezpečně.
Service principal založený v Entra ID budeme také opakovaně potřebovat v prostředí Fabricu pro důležitou věc. Chceme-li mít jód ve Fabricu bezpečný, tak musíme zajistit bezpečné předání hesel (Secrets) do Fabric notebooků a ve Fabricu bychom hesla storovat neměli – pokud by vás to zajímalo, mrkněte Fabric – Pipeline a Key Vault pro bezpečné předání Secretů (riziko kompromitace SecureString)
Postup k vytvoření Azure Service Principal (SPN)
- V Azure Portal přejděte do sekce Microsoft Entra ID – App registrations.
- Vyberte možnost New registration a vytvořte novou aplikaci (např. „FabricConnectorjanzednicek“)
- Po vytvoření aplikace klikneme na náš SPN a poznamenáme si hodnoty Application (client) ID a Directory (tenant) ID. Tyto údaje patří do konfiguračního souboru profiles.yml
- V sekci Certificates & secrets vytvořte nový Client secret a uložte jeho hodnotu do bezpečného úložiště – např. Azure Key Vault nebo lokální správce hesel (Keypass, a další). Pro více služeb můžeme mít více secrets ke stejnému SPN, to záleží na nás a naší strategii rotace secrets.
- V rámci Fabricu přejděte do nastavení SQL Endpointu a přidejte SPN aplikaci jako uživatele s příslušnými oprávněními (např. db_owner pro testovací účely nebo jemněji definovaná oprávnění pro produkci).
- Hodnoty tenant_id, client_id a client_secret poté vložíme do konfigurace profiles.yml.
Závěr
Po dokončení těchto kroků se budeme schopni připojit k Fabric SQL Endpointu bez nutnosti ručního přihlášení. SPN autentizace je doporučený způsob pro automatizované datové pipeline, CI/CD procesy a produkční nasazení dbt projektů.


