Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek vám ukáže, jak použít Microsoft Entra ID pro autentizaci pomocí Azure Synapse Analytics.
Poznámka:
Microsoft Entra server principals jsou momentálně v preview pro Azure Synapse Analytics.
Prerequisites
Pro použití Microsoft Entra autentizace s Azure Synapse Analytics potřebujete následující předpoklady:
- Tenant Microsoft Entra naplněný uživateli a skupinami.
- Existující pracovní prostor Azure Synapse nebo samostatný dedikovaný SQL pool.
Vytvoření a konfigurace tenanta Microsoft Entra
Než můžete nastavit autentizaci Microsoft Entra pro Azure Synapse Analytics, musíte vytvořit Microsoft Entra tenant a naplnit ho uživateli a skupinami. Tenanty Microsoft Entra můžete spravovat zcela v Azure nebo je použít pro federaci místní služby Doména služby Active Directory Services.
Další informace najdete tady:
- Co je Microsoft Entra ID?
- Integrace vašich místních identit se službou Microsoft Entra ID
- Přidání názvu domény do Microsoft Entra ID
- Co je federace s Microsoft Entra ID?
- Synchronizace adresáře s Microsoft Entra ID
- Spravování Microsoft Entra ID pomocí Windows PowerShellu
- Požadované porty a protokoly hybridní identity
Nastavení správce Microsoft Entra
Pro použití ověřování Microsoft Entra potřebuje váš prostředek Azure Synapse správce Microsoft Entra.
Správce Microsoft Entra můžete také nastavit při vytváření zdroje. Pokud už máte nastaveného administrátora, tuto sekci přeskočte.
pracovní prostor Azure Synapse
Pro pracovní oblast Azure Synapse nakonfigurujte správce Microsoft Entra přímo v pracovní oblasti. Pro více informací viz Administrátorská struktura.
Samostatný dedikovaný SQL pool
Když nastavíte správce Microsoft Entra, povolíte Microsoft Entra autentizaci pro logický server, který hostuje samostatný dedikovaný SQL pool. Správce můžete nastavit pomocí Azure portálu, PowerShellu, Azure CLI nebo REST API.
Na portálu Azure najdete název logical server
- V poli název serveru na stránce Přehled samostatného vyhrazeného fondu SQL v Azure Synapse Analytics.
Chcete-li nastavit správce Microsoft Entra pro váš logický server v portálu Azure, postupujte takto:
V panelu Azure portálu podokno Directories + subscriptions vyberte adresář, který obsahuje váš prostředek Azure Synapse, jako aktuální adresář.
Vyhledejte SQL servery a pak vyberte logický server pro svůj dedikovaný SQL pool, abyste otevřeli panel SQL serveru .
V podokně SQL pro logický server vyberte Microsoft Entra ID v části Settings a otevřete podokno Microsoft Entra ID.
V podokně Microsoft Entra ID vyberte Naset správce a otevřete podokno Microsoft Entra ID.
Podokno Microsoft Entra ID zobrazuje všechny uživatele, skupiny a aplikace v aktuálním adresáři a umožňuje vyhledávat podle názvu, aliasu nebo ID. Vyhledejte požadovanou identitu pro správce Microsoft Entra a vyberte ji a pak výběrem možnosti Select podokno zavřete.
V horní části stránky Microsoft Entra ID pro logický server vyberte Save.
Id objektu Objektu se zobrazí vedle názvu správce pro uživatele a skupiny Microsoft Entra. Pro aplikace (principály služeb) se zobrazí ID aplikace.
Proces změny správce může trvat několik minut. Nový správce se pak zobrazí v poli Microsoft Entra admin.
Pokud chcete správce odebrat, v horní části stránky Microsoft Entra ID vyberte Remove admin a pak vyberte Save. Odebráním správce Microsoft Entra zakážete ověřování Microsoft Entra pro váš logický server.
Poznámka:
Správce Microsoft Entra je uložený v databázi master serveru jako uživatel (hlavní objekt databáze). Vzhledem k tomu, že hlavní názvy databází musí být jedinečné, zobrazovaný název správce nemůže být stejný jako název žádného uživatele v databázi serveru master . Pokud již existuje uživatel se stejným jménem, nastavení správce Microsoft Entra selže a vrátí se zpět, což znamená, že toto jméno je již používáno.
Přiřaďte oprávnění Microsoft Graph
Pro některé operace vyžaduje Azure Synapse Analytics oprávnění k dotazování do Microsoft Graph, jak je vysvětleno v Microsoft Graph permissions. Azure Synapse Analytics podporuje jemně odstupňovaná oprávnění Microsoft Graph API, jako jsou User.Read.All, GroupMember.Read.All a Application.Read.All na identitě zdroje. Tento přístup se řídí principem nejnižšího oprávnění a doporučuje se. Můžete také využít roli Directory Readers jako širší alternativu. Pro více informací viz Managed identities in Microsoft Entra for Azure Synapse Analytics.
Role čtenářů adresářů
Pro řízený postup viz Přiřaďte skupině Microsoft Entra roli Directory Readers.
Následující PowerShell skript přidává identitu zdroje Azure Synapse do role Directory Readers.
# This script grants "Directory Readers" permission to an Azure Synapse service principal.
# It can be executed only by a user who is a member of the **Privileged Roles Administrator** role.
Import-Module Microsoft.Graph.Authentication
$instanceName = "<InstanceName>" # Enter the name of your managed instance or server
$tenantId = "<TenantId>" # Enter your tenant ID
Connect-MgGraph -TenantId $tenantId -Scopes "RoleManagement.ReadWrite.Directory"
# Get Microsoft Entra "Directory Readers" role and create if it doesn't exist
$roleName = "Directory Readers"
$role = Get-MgDirectoryRole -Filter "DisplayName eq '$roleName'"
if ($role -eq $null) {
# Instantiate an instance of the role template
$roleTemplate = Get-MgDirectoryRoleTemplate -Filter "DisplayName eq '$roleName'"
New-MgDirectoryRoleTemplate -RoleTemplateId $roleTemplate.Id
$role = Get-MgDirectoryRole -Filter "DisplayName eq '$roleName'"
}
# Get service principal for your logical server
$roleMember = Get-MgServicePrincipal -Filter "DisplayName eq '$instanceName'"
$roleMember.Count
if ($roleMember -eq $null) {
Write-Output "Error: No service principal with name '$($instanceName)' found, make sure that instanceName parameter was entered correctly."
exit
}
if (-not ($roleMember.Count -eq 1)) {
Write-Output "Error: Multiple service principals with name '$($instanceName)'"
Write-Output $roleMember | Format-List DisplayName, Id, AppId
exit
}
# Check if service principal is already member of Directory Readers role
$isDirReader = Get-MgDirectoryRoleMember -DirectoryRoleId $role.Id -Filter "Id eq '$($roleMember.Id)'"
if ($isDirReader -eq $null) {
# Add principal to Directory Readers role
Write-Output "Adding service principal '$($instanceName)' to 'Directory Readers' role..."
$body = @{
"@odata.id"= "https://graph.microsoft.com/v1.0/directoryObjects/{$($roleMember.Id)}"
}
New-MgDirectoryRoleMemberByRef -DirectoryRoleId $role.Id -BodyParameter $body
Write-Output "'$($instanceName)' service principal added to 'Directory Readers' role."
} else {
Write-Output "Service principal '$($instanceName)' is already member of 'Directory Readers' role."
}
Správce Microsoft Entra nyní může vytvářet objekty zabezpečení serveru Microsoft Entra (přihlášení) a objekty zabezpečení databáze (uživatele).
Vytvoření principálů Microsoft Entra v SQL
Pro připojení k databázi v Azure Synapse Analytics s ověřováním Microsoft Entra je potřeba v databázi nakonfigurovat objekt principal pro tuto identitu alespoň s oprávněním CONNECT.
Uživatelská oprávnění databáze
Když vytvoříte uživatele databáze, získá CONNECT oprávnění k databázi automaticky. Uživatel databáze také dědí oprávnění za dvou okolností:
- Uživatel je členem skupiny Microsoft Entra, která má také přiřazená oprávnění na serveru.
- Uživatele vytvoříte z přihlášení a uživatel zdědí oprávnění přihlášení přiřazená serverem, která se vztahují na databázi.
Správa oprávnění pro objekty zabezpečení serveru a databáze funguje stejně bez ohledu na typ objektu zabezpečení (Microsoft Entra ID, ověřování SQL atd.). Udělujte oprávnění databázovým rolím místo přímého udělování oprávnění uživatelům. Pak přidejte uživatele do rolí s příslušnými oprávněními. Tento přístup zjednodušuje dlouhodobou správu oprávnění a snižuje pravděpodobnost, že si identita udrží přístup, když už to není vhodné.
Další informace najdete tady:
- Oprávnění a příklady databázového systému
- Blog: základy oprávnění Database Engine
- Autorizovat přístup k databázi pro Azure Synapse Analytics
Uživatelé databáze s omezením
Uživatel databáze s omezením je typ uživatele SQL, který není připojený k přihlášení v master databázi. Pro vytvoření obsaženého uživatele databáze Microsoft Entra se připojte k databázi pomocí identity Microsoft Entra, která má alespoň oprávnění ALTER ANY USER. Následující příklad T-SQL vytváří databázový objekt zabezpečení s názvem Microsoft_Entra_principal_name z Microsoft Entra ID.
CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;
Pokud chcete vytvořit uživatele databáze s omezením pro skupinu Microsoft Entra, zadejte zobrazovaný název skupiny:
CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;
Pokud chcete vytvořit uživatele databáze s omezenými oprávněními pro spravovanou identitu nebo služební principál, zadejte zobrazovaný název identity:
CREATE USER [appName] FROM EXTERNAL PROVIDER;
Chcete-li vytvořit uzavřeného uživatele databáze pro uživatele Microsoft Entra, zadejte hlavní název uživatelského účtu:
CREATE USER [adrian@contoso.com] FROM EXTERNAL PROVIDER;
Uživatelé na základě přihlášení
Poznámka:
Microsoft Entra server principals (logins) jsou momentálně v preview pro Azure Synapse Analytics.
Podporované jsou hlavní objekty serveru Microsoft Entra (nebo přihlášení), což znamená, že uživatelé obsažené databáze nejsou potřeba. Objekty zabezpečení databáze (uživatelé) je možné vytvořit na základě objektu zabezpečení serveru, což znamená, že uživatelé Microsoft Entra mohou dědit oprávnění přidělená na úrovni serveru pro přihlášení.
CREATE USER [appName] FROM LOGIN [appName];
Pro syntax vytváření serverových objektů (přihlášení) pro Microsoft Entra viz CREATE LOGIN.
Externí uživatelé
Nemůžete přímo vytvořit databázového uživatele pro identitu spravovanou v jiném tenantovi Microsoft Entra, než je ten přidružený k vašemu předplatnému Azure. Nicméně můžete importovat uživatele z jiných adresářů do příslušného adresáře jako externí uživatele. Pak je můžete použít k vytvoření obsažených uživatelů databáze, kteří mají přístup k databázi. Externí uživatelé můžou také získat přístup prostřednictvím členství ve skupinách Microsoft Entra.
Examples: Vytvoření uživatele uzamčené databáze představujícího uživatele federované nebo spravované domény Microsoft Entra:
CREATE USER [alice@fabrikam.com] FROM EXTERNAL PROVIDER;
- Federovaný doménový uživatelský účet, který importujete do spravované domény jako externí uživatel, musí používat identitu spravované domény.
Důležité informace o názvu
Speciální znaky jako dvojtečka : nebo ampersand & nelze používat v uživatelských jménech pro T-SQL CREATE LOGIN a CREATE USER příkazy.
Microsoft Entra ID a Azure Synapse Analytics se liší v návrhu správy uživatelů v jednom klíčovém ohledu: Microsoft Entra ID umožňuje duplicitní zobrazovaná jména v rámci tenanta, zatímco Azure Synapse Analytics vyžaduje jedinečné názvy serverových objektů zabezpečení ve vyhrazeném fondu SQL a jedinečné názvy databázových objektů zabezpečení v databázi.
Oprávnění pro Microsoft Graph
Příkaz CREATE USER ... FROM EXTERNAL PROVIDER vyžaduje, aby Azure Synapse Analytics přistupovalo k Microsoft Entra ID (externí poskytovatel) jménem přihlášeného uživatele. Někdy Microsoft Entra ID vrací výjimku.
- Může dojít k chybě SQL 33134, která obsahuje chybovou zprávu specifickou pro Microsoft Entra ID. Tato chyba obvykle říká, že přístup byl odepřen, že se uživatel musí zaregistrovat do vícefaktorového ověřování pro přístup k prostředku nebo že přístup mezi aplikacemi první strany musí být zpracován prostřednictvím předběžného ověření. V prvních dvou případech je problém obvykle způsoben zásadami podmíněného přístupu, které jsou nastavené v tenantovi Microsoft Entra uživatele: brání uživateli v přístupu k externímu poskytovateli. Aktualizace pravidel podmíněného přístupu tak, aby umožnily přístup k aplikaci
00000003-0000-0000-c000-000000000000(ID aplikace Microsoft Graph API), by měla problém vyřešit. Pokud chyba uvádí, že přístup mezi interními aplikacemi se musí řešit prostřednictvím předběžného ověření, příčinou problému je to, že uživatel je přihlášený jako služební principal. Příkaz by měl být úspěšný, pokud ho uživatel spustí. - Pokud se zobrazí Vypršení časového limitu připojení, možná budete muset nastavit parametr
TransparentNetworkIPResolutionpřipojovací řetězec na hodnotu false. Další informace najdete v tématu Problém s časovým limitem připojení pro .NET Framework 4.6.1 – TransparentNetworkIPResolution.
Další informace o vytváření uživatelů databáze s omezením na základě identit Microsoft Entra naleznete v tématu CREATE USER.
Konfigurace vícefaktorového ověřování
Pro lepší bezpečnost zvažte konfiguraci vícefaktorové autentizace (MFA), která uživatele vyzve k použití druhé metody ověření při přihlašování k databázi, například telefonním hovorem nebo autentizační aplikací.
Pro použití vícefaktorové autentizace s Azure Synapse Analytics nejprve povolte vícefaktorovou autentizaci a poté použijte politiku podmíněného přístupu k vynucení MFA.
Připojení pomocí Microsoft Entra
Po nastavení Microsoft Entra autentizace ji můžete použít k připojení k Azure Synapse Analytics pomocí SQL Server Management Studio nebo SQL Server Data Tools a nakonfigurovat klientské aplikace pro připojení pomocí identit Microsoft Entra.
Řešení potíží s ověřováním Microsoft Entra
Pro návod viz Řešení problémů souvisejících s autentizací Microsoft Entra.