Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln visar hur du använder Microsoft Entra ID för autentisering med Azure Synapse Analytics.
Note
Microsoft Entra Server Principals är för närvarande i förhandsvisning för Azure Synapse Analytics.
Prerequisites
För att använda Microsoft Entra-autentisering med Azure Synapse Analytics behöver du följande förutsättningar:
- En Microsoft Entra-klient ifylld med användare och grupper.
- En befintlig Azure Synapse workspace eller en fristående dedikerad SQL-pool.
Skapa och fylla i en Microsoft Entra-klientorganisation
Innan du kan konfigurera Microsoft Entra-autentisering för Azure Synapse Analytics behöver du skapa en Microsoft Entra-tenant och fylla den med användare och grupper. Du kan hantera Microsoft Entra-klientorganisationer helt inom Azure eller använda dem för federationen av en lokal Active Directory Domain Service.
Mer information finns i:
- Vad är Microsoft Entra ID?
- Integrera dina lokala identiteter med Microsoft Entra ID
- Lägg till ditt domännamn i Microsoft Entra-ID
- Vad är federation med Microsoft Entra-ID?
- Katalogsynkronisering med Microsoft Entra-ID
- Hantera Microsoft Entra-ID med Windows PowerShell
- Portar och protokoll som krävs för hybrididentitet
Tilldela Microsoft Entra-administratör
För att använda Microsoft Entra-autentisering behöver din Azure Synapse-resurs en Microsoft Entra-administratör.
Du kan också konfigurera Microsoft Entra-administratören när du skapar resursen. Om du redan har en administratör konfigurerad, hoppa över denna sektion.
Azure Synapse-arbetsyta
För en Azure Synapse-arbetsyta, konfigurera Microsoft Entra-administratören på arbetsytan. För mer information, se Administratörsstruktur.
Fristående dedikerad SQL-pool
När du sätter Microsoft Entra-administratören aktiverar du Microsoft Entra-autentisering för den logiska servern som är värd för en fristående dedikerad SQL-pool. Du kan ställa in administratören genom att använda Azure-portalen, PowerShell, Azure CLI eller REST API:er.
I Azure-portalen hittar du namnet logical server
- I fältet servernamn på sidan Overview i din fristående dedikerade SQL-pool i Azure Synapse Analytics.
Följ dessa steg för att ange Microsoft Entra-administratören för din logiska server i Azure-portalen:
I fönstret Kataloger + prenumerationer i Azure-portalen väljer du den katalog som innehåller din Azure Synapse-resurs som Aktuell katalog.
Sök efter SQL-servrar och välj sedan den logiska servern för din dedikerade SQL-pool för att öppna SQL-serverpanelen .
I fönstret SQL för den logiska servern väljer du Microsoft Entra ID under Inställningar för att öppna fönstret Microsoft Entra ID.
I fönstret Microsoft Entra ID väljer du Uppsättningsadministratör för att öppna fönstret Microsoft Entra ID.
Fönstret Microsoft Entra ID visar alla användare, grupper och program i den aktuella katalogen och gör att du kan söka efter namn, alias eller ID. Leta upp din önskade identitet för din Microsoft Entra administratör och välj den och välj sedan Select för att stänga fönstret.
Längst upp på sidan Microsoft Entra ID för den logiska servern väljer du Spara.
Object ID visas bredvid administratörsnamnet för Microsoft Entra användare och grupper. Program-ID:t visas för program (tjänstens huvudnamn).
Det kan ta flera minuter att ändra administratören. Sedan visas den nya administratören i fältet Microsoft Entra admin.
Om du vill ta bort administratören väljer du Remove admin längst upp på sidan Microsoft Entra ID och väljer sedan Spara. Om du tar bort Microsoft Entra-administratören inaktiveras Microsoft Entra-autentisering för din logiska server.
Note
Microsoft Entra-administratören lagras i serverns master-databas som en användare (databasens huvudrepresentant). Eftersom databasens huvudnamn måste vara unika kan visningsnamnet för administratören inte vara samma som namnet på någon användare i serverns master databas. Om det redan finns en användare med namnet misslyckas Microsoft Entra administratörskonfiguration och rullas tillbaka, vilket visar att namnet redan används.
Tilldela Microsoft Graph-behörigheter
För vissa operationer kräver Azure Synapse Analytics behörigheter för att fråga Microsoft Graph, enligt beskrivningen i Microsoft Graph-behörigheter. Azure Synapse Analytics stöder finjusterade Microsoft Graph API-behörigheter såsom User.Read.All, GroupMember.Read.All, och Application.Read.All på resursidentiteten. Den här metoden följer principen om lägsta behörighet och rekommenderas. Du kan också använda rollen som katalogläsare som ett bredare alternativ. För mer information, se Managed identities i Microsoft Entra for Azure Synapse Analytics.
Rollen för katalogläsare
För en vägledd procedur, se Tilldela Katalogläsarrollen till en Microsoft Entra-grupp.
Följande PowerShell-skript lägger till en Azure Synapse-resursidentitet till rollen 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."
}
Microsoft Entra-administratören kan nu skapa Microsoft Entra-serverprinciper (inloggningar) och databasprinciper (användare).
Skapa Microsoft Entra-huvudkonton i SQL
För att ansluta till en databas i Azure Synapse Analytics med Microsoft Entra-autentisering måste du konfigurera en principal i databasen för den identiteten med minst behörigheten CONNECT.
Databasanvändarbehörigheter
När du skapar en databasanvändare får den behörigheten CONNECT till databasen som standard. En databasanvändare ärver också behörigheter under två omständigheter:
- Användaren är medlem i en Microsoft Entra-grupp som också har tilldelade behörigheter på servern.
- Du skapar användaren från en inloggning, och användaren ärver de server-tilldelade behörigheterna för inloggningen som gäller för databasen.
Hantering av behörigheter för server- och databashuvudnamn fungerar på samma sätt oavsett typ av huvudnamn (Microsoft Entra-ID, SQL-autentisering osv.). Ge behörigheter till databasroller istället för att direkt ge behörigheter till användare. Lägg sedan till användare i roller med lämpliga behörigheter. Denna metod förenklar långsiktig behörighetshantering och minskar sannolikheten att en identitet behåller åtkomst när det inte längre är lämpligt.
Mer information finns i:
- Behörigheter och exempel för databasmotorn
- Blogg: Grundläggande behörighet till databasmotorn
- Auktorisera databasåtkomst till Azure Synapse Analytics
Inhägnade databasanvändare
En innesluten databasanvändare är en typ av SQL-användare som inte är ansluten till en inloggning i master databasen. För att skapa en Microsoft Entra-innehållen databasanvändare, koppla till databasen med en Microsoft Entra-identitet som har åtminstone ALTER ANY USER-behörigheten. Följande T-SQL-exempel skapar en databasprincip med namnet Microsoft_Entra_principal_name från Microsoft Entra ID.
CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;
Om du vill skapa en innesluten databasanvändare för en Microsoft Entra grupp anger du visningsnamnet för gruppen:
CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;
Om du vill skapa en innesluten databasanvändare för en hanterad identitet eller tjänstens huvudnamn anger du identitetens visningsnamn:
CREATE USER [appName] FROM EXTERNAL PROVIDER;
Om du vill skapa en innesluten databasanvändare för en Microsoft Entra användare anger du användarens huvudnamn för identiteten:
CREATE USER [adrian@contoso.com] FROM EXTERNAL PROVIDER;
Inloggningsbaserade användare
Note
Microsoft Entra server principals (logins) är för närvarande i förhandsvisning för Azure Synapse Analytics.
Microsoft Entra-serverhuvudkonton (eller inloggningar) stöds, vilket innebär att oberoende databasanvändare inte krävs. Databashuvudnamn (användare) kan skapas baserat på ett serverhuvudnamn, vilket innebär att Microsoft Entra användare kan ärva tilldelade behörigheter på servernivå för en inloggning.
CREATE USER [appName] FROM LOGIN [appName];
Syntax för att skapa Microsoft Entra-serverhuvudkonton (inloggningar) finns i SKAPA INLOGGNING.
Externa användare
Du kan inte direkt skapa en databasanvändare för en identitet som hanteras i en annan Microsoft Entra-klientorganisation än den som är associerad med din Azure-prenumeration. Du kan dock importera användare från andra kataloger till den tillhörande katalogen som externa användare. Du kan sedan använda dem för att skapa inneslutna databasanvändare som kan komma åt databasen. Externa användare kan också få åtkomst via medlemskap i Microsoft Entra-grupper.
Examples: Skapa en oberoende databasanvändare som representerar en Microsoft Entra federerad eller hanterad domänanvändare:
CREATE USER [alice@fabrikam.com] FROM EXTERNAL PROVIDER;
- Ett federerat domänanvändarkonto som du importerar till en hanterad domän som extern användare måste använda den hanterade domänidentiteten.
Namnöverväganden
Du kan inte använda specialtecken som kolon : eller ampersand & i användarnamn för T-SQL CREATE LOGIN och CREATE USER satser.
Microsoft Entra ID och Azure Synapse Analytics skiljer sig i sin användarhanteringsdesign på ett viktigt sätt: Microsoft Entra ID tillåter dubbletter av visningsnamn inom en tenant, medan Azure Synapse Analytics kräver unika namn på serverprincipaler i en dedikerad SQL-pool och unika namn på databasprincipaler i en databas.
Microsoft Graph-behörigheter
Kommandot CREATE USER ... FROM EXTERNAL PROVIDER kräver att Azure Synapse Analytics får tillgång till Microsoft Entra ID (den externa leverantören) på uppdrag av den inloggade användaren. Ibland returnerar Microsoft Entra ID ett fel.
- Du kan stöta på SQL-fel 33134, som innehåller det Microsoft Entra-ID-specifika felmeddelandet. Felet säger vanligtvis att åtkomst nekas, att användaren måste registrera sig i MFA för att få åtkomst till resursen, eller att åtkomst mellan program från första part måste hanteras via förautentisering. I de första två fallen orsakas problemet vanligtvis av principer för villkorsstyrd åtkomst som anges i användarens Microsoft Entra-klientorganisation: de hindrar användaren från att komma åt den externa providern. Att uppdatera villkorsåtkomstpolicyerna för att tillåta åtkomst till applikationen
00000003-0000-0000-c000-000000000000(applikations-ID:t för Microsoft Graph API) bör lösa problemet. Om felet anger att åtkomst mellan förstapartsprogram måste hanteras via förauktorisering, beror problemet på att användaren är inloggad som tjänstens huvudanvändare. Kommandot bör lyckas om det körs av en användare i stället. - Om du får en Anslutningstidsgräns utgått kan du behöva ange parametern
TransparentNetworkIPResolutionför anslutningssträngen till false. Mer information finns i Anslutningstidsfel med .NET Framework 4.6.1 – TransparentNetworkIPResolution.
Mer information om hur du skapar oberoende databasanvändare baserat på Microsoft Entra-identiteter finns i SKAPA ANVÄNDARE.
Konfigurera multifaktorautentisering
För förbättrad säkerhet, överväg att konfigurera multifaktorautentisering (MFA), som uppmanar användaren att använda en andra metod för autentisering till databasen, såsom ett telefonsamtal eller en autentiseringsapp.
För att använda multifaktorautentisering med Azure Synapse Analytics, aktivera först multifaktorautentisering och använd sedan en villkorlig åtkomstpolicy för att upprätthålla MFA.
Anslut med Microsoft Entra
Efter att Microsoft Entra-autentisering har konfigurerats kan du använda den för att ansluta till Azure Synapse Analytics med SQL Server Management Studio eller SQL Server Data Tools, och konfigurera klientapplikationer att ansluta med Microsoft Entra-identiteter.
Felsöka Microsoft Entra autentisering
För vägledning, se Felsökning av problem relaterade till Microsoft Entra-autentisering.