Dela via


Aktivera Microsoft Entra-autentisering för SQL Server på virtuella Azure-datorer

gäller för:SQL Server på virtuella Azure-datorer

I den här artikeln lär du dig att aktivera autentisering med Microsoft Entra-ID (tidigare Azure Active Directory) för din SQL Server på virtuella Azure-datorer (VM).

Note

Det går att konfigurera Microsoft Entra-autentisering för oregistrerade instanser av SQL Server, till exempel när du har flera SQL Server-instanser på samma virtuella dator.

Overview

Från och med SQL Server 2022 kan du ansluta till SQL Server på virtuella Azure-datorer med någon av följande Microsoft Entra-autentiseringsmetoder:

  • Password erbjuder autentisering med Microsoft Entra-autentiseringsuppgifter
  • Universal med MFA lägger till multifaktorautentisering
  • Integrerat använder federationsprovidrar som Active Directory Federation Services (ADFS) för att aktivera enkel inloggning (SSO)
  • Tjänstens huvudnamn möjliggör autentisering från Azure-program
  • hanterad identitet möjliggör autentisering från program som tilldelats Microsoft Entra-identiteter

När du skapar en Microsoft Entra-inloggning för SQL Server och när en användare ansluter med den inloggningen använder SQL Server en hanterad identitet för att fråga Microsoft Graph. När du aktiverar Microsoft Entra-autentisering för din SQL Server på en virtuell Azure-dator måste du ange en hanterad identitet som SQL Server kan använda för att kommunicera med Microsoft Entra-ID. Den här hanterade identiteten måste ha behörighet att fråga Microsoft Graph.

När du aktiverar en hanterad identitet för en resurs i Azure är säkerhetsgränsen för identiteten den resurs som den är kopplad till. Säkerhetsgränsen för en virtuell dator med hanterade identiteter för Azure-resurser aktiverade är till exempel den virtuella datorn. All kod som körs på den virtuella datorn kan anropa slutpunkten för hanterade identiteter och begära token. När du aktiverar en hanterad identitet för SQL Server på virtuella Azure-datorer kopplas identiteten till den virtuella datorn, så säkerhetsgränsen är den virtuella datorn. Upplevelsen liknar den när du arbetar med andra resurser som stöder hanterade identiteter. Mer information finns i vanliga frågor och svar om hanterade identiteter.

De systemtilldelade och användartilldelade hanterade identiteterna som används för Microsoft Entra-autentisering med SQL Server på virtuella Azure-datorer medför följande fördelar:

  • Systemtilldelad hanterad identitet erbjuder en förenklad konfigurationsprocess. Eftersom den hanterade identiteten har samma livslängd som den virtuella datorn behöver du inte ta bort den separat när du tar bort den virtuella datorn.
  • Användartilldelad hanterad identitet erbjuder skalbarhet eftersom den kan kopplas till och användas för Microsoft Entra-autentisering för flera SQL Server på virtuella Azure-datorer.

Kom igång med hanterade identiteter genom att läsa Konfigurera hanterade identiteter med hjälp av Azure-portalen.

Prerequisites

Om du vill aktivera Microsoft Entra-autentisering på din SQL Server behöver du följande krav:

Bevilja behörigheter

Den hanterade identitet som du väljer för att underlätta autentiseringen mellan SQL Server och Microsoft Entra ID måste ha följande tre Microsoft Graph-programbehörigheter (approller): User.Read.All, GroupMember.Read.Alloch Application.Read.All.

Alternativt ger det tillräckliga behörigheter att lägga till den hanterade identiteten i rollen Microsoft Entra Directory-läsare. Ett annat sätt att tilldela rollen Katalogläsare till en hanterad identitet är att tilldela rollen Katalogläsare till en grupp i Microsoft Entra-ID. Gruppägarna kan sedan lägga till den hanterade identiteten för virtuella maskiner som medlem i den här gruppen. Detta minimerar inblandningen av Microsoft Entra-rolladministratörer och delegerar ansvaret till gruppägarna.

Lägga till hanterad identitet i rollen

I det här avsnittet beskrivs hur du lägger till din hanterade identitet i rollen Katalogläsare i Microsoft Entra-ID. Du måste ha privilegierad rolladministratörsbehörighet för att kunna göra ändringar i rolltilldelningarna katalogläsare. Om du inte har tillräcklig behörighet kan du samarbeta med Microsoft Entra-administratören för att följa dessa steg.

Följ dessa steg för att ge den hanterade identiteten rollen Katalogläsare :

  1. Öppna Roller och administratörer för Microsoft Entra-ID i Azure-portalen:

  2. Skriv Katalogläsare i sökrutan och välj sedan rollen Katalogläsare för att öppna Katalogläsare | Sidan Tilldelningar :

    Skärmbild av sidan Roller och administratörer i Azure-portalen, där du söker efter och väljer rollen Katalogläsare.

  3. På sidan Directory Readers | Tilldelningar väljer du + Lägg till tilldelningar för att öppna sidan Lägg till tilldelning.

    Skärmbild av sidan Katalogläsare i Azure-portalen.

  4. På sidan Lägg till tilldelningar väljer du Ingen medlem markerad under Välj medlemmar för att öppna sidan Välj en medlem .

    Skärmbild av sidan för att lägga till tilldelningar i Azure-portalen, där Ingen medlem har markerats.

  5. På sidan Välj en medlem söker du efter namnet på den hanterade identitet som du vill använda med din virtuella SQL Server-dator och lägger till den i rollen Katalogläsare . Sök efter namnet på den virtuella datorn som har systemtilldelade hanterade identiteter. Använd Välj för att bekräfta identiteten och gå tillbaka till sidan Lägg till tilldelningar .

    Skärmbild som söker efter medlemmar att välja i Azure-portalen.

  6. Kontrollera att du ser din valda identitet under Välj medlemmar och välj sedan Nästa.

    Skärmbild av sidan Lägg till tilldelning i Azure-portalen, där VM2 har lagts till som en tilldelning.

  7. Kontrollera att tilldelningstypen är inställd på Aktiv och att rutan bredvid Permanent tilldelad är markerad . Ange en affärsmotivering, till exempel Lägga till rollbehörigheter för katalogläsare till den systemtilldelade identiteten för VM2 och välj sedan Tilldela för att spara inställningarna och gå tillbaka till Katalogläsare | Sidan Tilldelningar .

    Skärmbild av inställningar för Lägg till tilldelning i Azure-portalen.

  8. På sidan Directory Readers | Assignments bekräftar du att du ser den nyligen tillagda identiteten under Directory Readers.

    Skärmbild av sidan Katalogläsare i Azure-portalen som visar din VM-tilldelning som lagts till i rollen.

Lägga till app-rollbehörigheter

Du kan använda Azure PowerShell för att bevilja approller till en hanterad identitet. Gör det genom att följa dessa steg:

Note

Azure AD- och MSOnline PowerShell-moduler är inaktuella från och med den 30 mars 2024. Läs informationen om utfasningen för mer information. Efter det här datumet är stödet för dessa moduler begränsat till migreringshjälp till Microsoft Graph PowerShell SDK och säkerhetskorrigeringar. De inaktuella modulerna fortsätter att fungera till och med mars 30 2025.

Vi rekommenderar att du migrerar till Microsoft Graph PowerShell för att interagera med Microsoft Entra-ID (tidigare Azure AD). Vanliga migreringsfrågor finns i Vanliga frågor och svar om migrering. Obs! Versioner 1.0.x av MSOnline kan uppleva störningar efter den 30 juni 2024.

  1. Ansluta till Microsoft Graph

    Connect-MgGraph -Scopes "AppRoleAssignment.ReadWrite.All" -TenantId "<tenant id>"
    
  2. Hämta den hanterade identiteten:

    $Graph_SP = Get-MgServicePrincipal -Filter "DisplayName eq 'Microsoft Graph'"
    $MSI = Get-MgServicePrincipal -Filter "displayName eq '<your managed identity display name>'"
    
  3. Tilldela rollen User.Read.All till identiteten:

    $AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "User.Read.All"}  
    New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}
    
  4. Tilldela GroupMember.Read.All rollen till identiteten:

    $AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "GroupMember.Read.All"}  
    New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}
    
  5. Tilldela Application.Read.All rollen till identiteten:

    $AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "Application.Read.All"}  
    New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}
    

Du kan verifiera att behörigheter har tilldelats till den hanterade identiteten genom att göra följande:

  1. Gå till Microsoft Entra-ID i Azure-portalen.
  2. Välj Företagsprogram och välj sedan Alla program under Hantera.
  3. Filtrera programtypen efterManaged identities.
  4. Välj den hanterade identiteten och välj sedan Behörigheter under Säkerhet. Du bör se följande behörigheter: User.Read.All, GroupMember.Read.All, Application.Read.All.

Aktivera utgående kommunikation

För att Microsoft Entra-autentisering ska fungera behöver du följande:

  • Utgående kommunikation från SQL Server till Microsoft Entra-ID och Microsoft Graph-slutpunkten.
  • Utgående kommunikation från SQL-klienten till Microsoft Entra-ID.

Standardkonfigurationer för virtuella Azure-datorer tillåter utgående kommunikation till Microsoft Graph-slutpunkten samt Microsoft Entra-ID, men vissa användare väljer att begränsa utgående kommunikation antingen med hjälp av en brandvägg på OPERATIVSYSTEMnivå eller Azure VNet-nätverkssäkerhetsgruppen (NSG).

Brandväggar på den virtuella SQL Server-datorn och alla SQL-klienter måste tillåta utgående trafik på portarna 80 och 443.

Azure VNet NSG-regeln för det virtuella nätverk som är värd för din virtuella SQL Server-dator bör ha följande:

  • Tjänsttagg på AzureActiveDirectory.
  • Målportsintervall för: 80, 443.
  • Åtgärd inställd på Tillåt.
  • Hög prioritet (vilket är ett lågt tal).

Aktivera Microsoft Entra-autentisering för den registrerade instansen

När du registrerar din SQL Server-instans med SQL IaaS-agenttillägget kan du aktivera Microsoft Entra-autentisering för den registrerade instansen med hjälp av Azure-portalen, Azure CLI eller PowerShell. Användning av Azure-portalen eller Azure CLI för att hantera din instans stöds endast på den registrerade instansen av SQL Server.

Note

När Microsoft Entra-autentisering har aktiverats kan du följa samma steg i det här avsnittet för att uppdatera konfigurationen för att använda en annan hanterad identitet.

Följ dessa steg för att aktivera Microsoft Entra-autentisering till din virtuella SQL Server-dator:

  1. Gå till resursen för virtuella SQL-datorer i Azure-portalen.

  2. Välj Säkerhetskonfiguration under Säkerhet.

  3. Välj Aktivera under Microsoft Entra-autentisering.

  4. Välj den hanterade identitetstypen i listrutan, antingen Systemtilldelad eller Användartilldelad. Om du väljer användartilldelad väljer du den identitet som du vill använda för att autentisera till SQL Server på den virtuella Azure-datorn från listrutan Användartilldelad hanterad identitet som visas.

    Skärmbild av säkerhetskonfigurationssidan för den virtuella SQL-datorn i Azure-portalen med Microsoft Entra-autentisering vald.

När Microsoft Entra-autentisering har aktiverats kan du följa samma steg för att ändra vilken hanterad identitet som kan autentiseras till din virtuella SQL Server-dator.

Note

Felet The selected managed identity does not have enough permissions for Microsoft Entra authentication anger att behörigheterna inte har tilldelats korrekt till den identitet som du har valt. Kontrollera avsnittet Bevilja behörigheter för att tilldela rätt behörigheter.

Aktivera Microsoft Entra-autentisering för oregistrerade instanser

Om SQL Server-instansen inte är registrerad med SQL IaaS Agent-tillägget, till exempel när du har flera SQL Server-instanser på samma virtuella dator, kan du aktivera Microsoft Entra-autentisering med hjälp av PowerShell. Du kan aktivera Microsoft Entra-autentisering för specifika oregistrerade instanser eller för alla instanser på den virtuella datorn.

Note

Om du vill använda Microsoft Entra-autentisering med oregistrerade instanser på SQL Server på virtuella Azure-datorer måste du ha minst en instans registrerad med SQL IaaS Agent-tillägget.

Tänk på Set-AzVMExtension -ExtensionName "SqlIaasExtension" följande när du använder kommandot för att aktivera Microsoft Entra-autentisering för en SQL Server-instans:

  • Behörigheter för den hanterade identiteten kontrolleras endast när parametern CheckPermissions är inställd på true.
  • Ange klient-ID för identitetsparametern ClientID för att använda en användartilldelad hanterad identitet. När parametern ClientID är tom används en systemtilldelad hanterad identitet .
  • Ange en lista över instanser i parametern EnableForGivenInstances för att aktivera Microsoft Entra-autentisering för specifika oregistrerade instanser. Annars, använd parametern EnableForAllInstances för att aktivera Microsoft Entra-autentisering för alla oregistrerade instanser på den virtuella datorn.

Följande exempel möjliggör Microsoft Entra-autentisering för alla instanser på den virtuella datorn med hjälp av en systemtilldelad identitet:

Set-AzVMExtension -ExtensionName "SqlIaasExtension" -ResourceGroupName $resourceGroupName -VMName $sqlVMName -Publisher "Microsoft.SqlServer.Management" -ExtensionType "SqlIaaSAgent" -TypeHandlerVersion 2.0 -Location $region -SettingString '{"ServerConfigurationsManagementSettings": {"AADAuthenticationSettings": {"ClientId":"", "EnableForAllInstances":true, "CheckPermissions":true}},"DeploymentTokenSettings":{"DeploymentToken":12345678}}'

I följande exempel aktiveras Microsoft Entra-autentisering för specifika oregistrerade instanser med hjälp av en användartilldelad identitet:

Set-AzVMExtension -ExtensionName "SqlIaasExtension" -ResourceGroupName $resourceGroupName -VMName $sqlVMName -Publisher "Microsoft.SqlServer.Management" -ExtensionType "SqlIaaSAgent" -TypeHandlerVersion 2.0 -Location $region -SettingString '{"ServerConfigurationsManagementSettings": {"AADAuthenticationSettings": {"ClientId":$clientId, "EnableForGivenInstances":["MSSQLSERVER","MSSQLSERVER01"], "CheckPermissions":true}},"DeploymentTokenSettings":{"DeploymentToken":12345678}}'

Skapa inloggningar och användare

Följ stegen i Microsoft Entra-självstudien för att skapa inlogg och användare för hanterad identitet.

Ansluta till din instans

Följ anvisningarna i Microsoft Entra-självstudien för att ansluta till din SQL Server-instans med Microsoft Entra-autentisering.

Limitations

Tänk på följande begränsningar:

  • Microsoft Entra-autentisering stöds endast med SQL Server 2022 som körs på virtuella Windows-datorer som är registrerade med SQL IaaS Agent-tillägget, distribuerat till alla moln.
  • Hantering av Microsoft Entra-autentisering i Azure-portalen är endast tillgängligt för instanser som stöds av SQL IaaS Agent-tillägget, till exempel en standardinstans eller en enda namngiven instans. Använd Azure CLI eller PowerShell för att hantera ytterligare Instanser av Microsoft Entra-autentisering på den virtuella SQL Server-datorn som inte är registrerade med SQL IaaS Agent-tillägget.
  • Det går inte att använda Microsoft Entra-autentisering med redundansklusterinstanser.
  • Den identitet som du väljer att autentisera till SQL Server måste ha rollen Katalogläsare i Microsoft Entra-ID eller följande tre Microsoft Graph-programbehörigheter (approller): User.Read.All, GroupMember.Read.Alloch Application.Read.All.
  • När Microsoft Entra-autentisering har aktiverats går det inte att inaktivera den.
  • För närvarande stöds inte autentisering till SQL Server på virtuella Azure-datorer via Microsoft Entra-autentisering med FIDO2-metoden .

Nästa steg

Granska metodtipsen för säkerhet för SQL Server.

Andra artiklar som rör körning av SQL Server på virtuella Azure-datorer finns i Översikt över SQL Server på Virtuella Azure-datorer. Om du har frågor om virtuella SQL Server-datorer kan du läsa vanliga frågor och svar.

Mer information finns i de andra artiklarna i den här serien med metodtips: