Delen via


Microsoft Entra-verificatie inschakelen voor SQL Server op Azure-VM's

Van toepassing op:SQL Server op Azure VM-

In dit artikel leert u hoe u verificatie kunt inschakelen met Microsoft Entra ID (voorheen Azure Active Directory) voor uw SQL Server op virtuele Azure-machines (VM's).

Note

Het is mogelijk om Microsoft Entra-verificatie te configureren voor niet-geregistreerde exemplaren van SQL Server, bijvoorbeeld wanneer u meerdere SQL Server-exemplaren op dezelfde VIRTUELE machine hebt.

Overview

Vanaf SQL Server 2022 kunt u verbinding maken met SQL Server op Azure-VM's met behulp van een van de volgende Microsoft Entra-verificatiemethoden:

  • Wachtwoord biedt verificatie met Microsoft Entra-referenties
  • Universeel met MFA- voegt meervoudige verificatie toe
  • Geïntegreerde maakt gebruik van federatieproviders zoals Active Directory Federation Services (ADFS) om eenmalige aanmelding (SSO) in te schakelen
  • service-principal maakt verificatie vanuit Azure-toepassingen mogelijk
  • Managed Identity maakt verificatie mogelijk vanuit toepassingen die aan Microsoft Entra-identiteiten zijn toegewezen

Wanneer u een Microsoft Entra-aanmelding voor SQL Server maakt en wanneer een gebruiker verbinding maakt via deze aanmelding, gebruikt SQL Server een beheerde identiteit om een query uit te voeren op Microsoft Graph. Wanneer u Microsoft Entra-verificatie inschakelt voor uw SQL Server op azure-VM, moet u een beheerde identiteit opgeven die SQL Server kan gebruiken om te communiceren met Microsoft Entra-id. Deze beheerde identiteit moet machtigingen hebben om een query uit te voeren op Microsoft Graph.

Wanneer u een beheerde identiteit inschakelt voor een resource in Azure, is de beveiligingsgrens van de identiteit de resource waaraan deze is gekoppeld. De beveiligingsgrens voor een virtuele machine met beheerde identiteiten voor Azure-resources is bijvoorbeeld de virtuele machine. Elke code die op die VM wordt uitgevoerd, kan het eindpunt voor beheerde identiteiten aanroepen en tokens aanvragen. Wanneer u een beheerde identiteit inschakelt voor SQL Server op Azure-VM's, wordt de identiteit gekoppeld aan de virtuele machine, zodat de beveiligingsgrens de virtuele machine is. De ervaring is vergelijkbaar bij het werken met andere resources die beheerde identiteiten ondersteunen. Lees de veelgestelde vragen over beheerde identiteiten voor meer informatie.

De door het systeem toegewezen en door de gebruiker toegewezen beheerde identiteiten die worden gebruikt voor Microsoft Entra-verificatie met SQL Server op Azure-VM's bieden de volgende voordelen:

  • Door het systeem toegewezen beheerde identiteit biedt een vereenvoudigd configuratieproces. Omdat de beheerde identiteit dezelfde levensduur heeft als de virtuele machine, hoeft u deze niet afzonderlijk te verwijderen wanneer u de virtuele machine verwijdert.
  • Door de gebruiker toegewezen beheerde identiteit biedt schaalbaarheid omdat deze kan worden gekoppeld aan en gebruikt voor Microsoft Entra-verificatie voor meerdere SQL Server op Azure-VM's.

Raadpleeg Beheerde identiteiten configureren met behulp van Azure Portal om aan de slag te gaan met beheerde identiteiten.

Prerequisites

Als u Microsoft Entra-verificatie wilt inschakelen op uw SQL Server, hebt u de volgende vereisten nodig:

Machtigingen verlenen

De beheerde identiteit die u kiest om verificatie tussen SQL Server en Microsoft Entra ID te vergemakkelijken, moet beschikken over de volgende drie Microsoft Graph-toepassingsmachtigingen (app-rollen): User.Read.All, GroupMember.Read.Allen Application.Read.All.

Door de beheerde identiteit toe te voegen aan de rol Microsoft Entra Directory Readers, worden voldoende rechten verleend. Een andere manier om de rol Adreslijstlezers toe te wijzen aan een beheerde identiteit, is door de rol Adreslijstlezers toe te wijzen aan een groep in Microsoft Entra-id. De groepseigenaren kunnen vervolgens de beheerde identiteit van de virtuele machine toevoegen als lid van deze groep. Dit minimaliseert de betrokkenheid van beheerders van Microsoft Entra-rollen en draagt de verantwoordelijkheid over aan de groepseigenaren.

Beheerde identiteit toevoegen aan de rol

In deze sectie wordt uitgelegd hoe u uw beheerde identiteit toevoegt aan de rol Directory Readers in Microsoft Entra ID. U moet beheerdersbevoegdheden voor bevoorrechte rollen hebben om wijzigingen aan te brengen in de roltoewijzingen Adreslijstlezers. Als u niet over voldoende machtigingen beschikt, neem dan contact op met uw Microsoft Entra-beheerder om deze stappen uit te voeren.

Voer de volgende stappen uit om uw beheerde identiteit de rol Directory Readers toe te kennen:

  1. Open Microsoft Entra ID-rollen/beheerders in de Azure-portal.

  2. Typ Adreslijstlezers in het zoekvak en selecteer vervolgens de rol Adreslijstlezers om de adreslijstlezers te openen | Pagina Opdrachten :

    Schermopname van de pagina Rollen en beheerders van Azure Portal, zoeken naar en selecteren van de rol Adreslijstlezers.

  3. Op de Mappenlezers | Opdrachten pagina, selecteer + Opdrachten toevoegen om de Opdracht toevoegen pagina te openen.

    Schermopname van de pagina Directory Readers van Azure Portal.

  4. Kies op de pagina Toewijzingen toevoegende optie Geen lid geselecteerd onder Leden selecteren om de pagina Een lid selecteren te openen.

    Schermopname van de pagina Toewijzing toevoegen van Azure Portal, waarbij Geen lid is geselecteerd.

  5. Zoek op de pagina Een lid selecteren naar de naam van de beheerde identiteit die u wilt gebruiken met uw SQL Server-VM en voeg deze toe aan de rol Directory Readers . Zoek naar de naam van de virtuele machine voor door het systeem toegewezen beheerde identiteiten. Gebruik Select om de identiteit te bevestigen en terug te gaan naar de pagina Toewijzingen toevoegen .

    Schermopname van het zoeken naar leden die u wilt selecteren in Azure Portal.

  6. Controleer of u de gekozen identiteit ziet onder Leden selecteren en selecteer vervolgens Volgende.

    Schermopname van de pagina Toewijzing toevoegen in Azure Portal, met VM2 toegevoegd als toewijzing.

  7. Controleer of het toewijzingstype is ingesteld op Actief en of het selectievakje naast Permanent toegewezen is ingeschakeld. Voer een zakelijke rechtvaardiging in, zoals machtigingen van de rol Directory Reader toevoegen aan de door het systeem toegewezen identiteit voor VM2 en selecteer Toewijzen om uw instellingen op te slaan en terug te gaan naar de Directory Readers | Assignments pagina.

    Schermopname van instellingen voor de toewijzing toevoegen in Azure Portal.

  8. Op de pagina Directory Readers | Assignments, bevestig dat u uw zojuist toegevoegde identiteit onder Directory Readers ziet.

    Schermopname van de Directory Readers-pagina van de Azure-portal waarop uw VM-toewijzing aan de rol is toegevoegd.

App-rolmachtigingen toevoegen

U kunt Azure PowerShell gebruiken om app-rollen te verlenen aan een beheerde identiteit. Voer hiervoor de volgende stappen uit:

Note

Azure AD- en MSOnline PowerShell-modules zijn vanaf 30 maart 2024 afgeschaft. Voor meer informatie, lees de afschrijvingsupdate. Na deze datum is ondersteuning voor deze modules beperkt tot migratieondersteuning voor Microsoft Graph PowerShell SDK en beveiligingsoplossingen. De afgeschafte modules blijven functioneren tot en met 30 maart 2025.

Het is raadzaam om te migreren naar Microsoft Graph PowerShell om te communiceren met Microsoft Entra ID (voorheen Azure AD). Raadpleeg de veelgestelde vragen over migratie voor veelgestelde vragen over migratie. Opmerking: versies 1.0.x van MSOnline kunnen na 30 juni 2024 onderbrekingen ondervinden.

  1. Verbinding maken met Microsoft Graph

    Connect-MgGraph -Scopes "AppRoleAssignment.ReadWrite.All" -TenantId "<tenant id>"
    
  2. Haal de beheerde identiteit op:

    $Graph_SP = Get-MgServicePrincipal -Filter "DisplayName eq 'Microsoft Graph'"
    $MSI = Get-MgServicePrincipal -Filter "displayName eq '<your managed identity display name>'"
    
  3. Wijs de User.Read.All rol toe aan de identiteit:

    $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. Rol toewijzen GroupMember.Read.All aan de identiteit:

    $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. Rol toewijzen Application.Read.All aan de identiteit:

    $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}
    

U kunt als volgt valideren dat machtigingen zijn toegewezen aan de beheerde identiteit:

  1. Ga naar Microsoft Entra-id in Azure Portal.
  2. Kies Bedrijfstoepassingen en selecteer vervolgens Alle toepassingen onder Beheren.
  3. Filter het toepassingstype met behulp van Managed identities.
  4. Selecteer de beheerde identiteit en kies vervolgens Machtigingen onder Beveiliging. U ziet nu de volgende machtigingen: User.Read.All, GroupMember.Read.All, Application.Read.All.

Uitgaande communicatie inschakelen

Microsoft Entra-verificatie werkt alleen als u het volgende nodig hebt:

  • Uitgaande communicatie van SQL Server naar Microsoft Entra ID en het Microsoft Graph-eindpunt.
  • Uitgaande communicatie van de SQL-client naar Microsoft Entra-id.

Standaardconfiguraties voor Virtuele Azure-machines staan uitgaande communicatie met het Microsoft Graph-eindpunt en Microsoft Entra-id toe, maar sommige gebruikers kiezen ervoor om uitgaande communicatie te beperken met behulp van een firewall op besturingssysteemniveau of de Azure VNet-netwerkbeveiligingsgroep (NSG).

Firewalls op de SQL Server-VM en elke SQL-client moeten uitgaand verkeer toestaan op poort 80 en 443.

De NSG-regel van Azure VNet voor het VNet dat als host fungeert voor uw SQL Server-VM, moet het volgende hebben:

  • Een servicetag van AzureActiveDirectory.
  • Doelpoortbereiken van: 80, 443.
  • Actie ingesteld op Toestaan.
  • Een hoge prioriteit (een laag getal).

Microsoft Entra-verificatie inschakelen voor het geregistreerde exemplaar

Wanneer u uw SQL Server-exemplaar registreert bij de SQL IaaS Agent-extensie, kunt u Microsoft Entra-verificatie inschakelen voor het geregistreerde exemplaar met behulp van Azure Portal, de Azure CLI of PowerShell. Het gebruik van Azure Portal of Azure CLI om uw exemplaar te beheren, wordt alleen ondersteund op het geregistreerde exemplaar van SQL Server.

Note

Nadat Microsoft Entra-verificatie is ingeschakeld, kunt u dezelfde stappen in deze sectie volgen om de configuratie bij te werken voor het gebruik van een andere beheerde identiteit.

Voer de volgende stappen uit om Microsoft Entra-verificatie in te schakelen voor uw SQL Server-VM:

  1. Navigeer naar de resource van uw virtuele SQL-machines in Azure Portal.

  2. Selecteer Beveiligingsconfiguratie onder Beveiliging.

  3. Kies Inschakelen onder Microsoft Entra-verificatie.

  4. Kies het type beheerde identiteit in de vervolgkeuzelijst, door het systeem toegewezen of door de gebruiker toegewezen. Als u door de gebruiker toegewezen kiest, selecteert u vervolgens de identiteit die u wilt gebruiken om te verifiëren bij SQL Server op uw Azure-VM in de vervolgkeuzelijst Door de gebruiker toegewezen beheerde identiteit die wordt weergegeven.

    Schermopname van de pagina beveiligingsconfiguratie voor SQL-VM in Azure Portal, waarbij Microsoft Entra-verificatie is geselecteerd.

Nadat Microsoft Entra-verificatie is ingeschakeld, kunt u dezelfde stappen volgen om te wijzigen welke beheerde identiteit kan worden geverifieerd bij uw SQL Server-VM.

Note

De fout The selected managed identity does not have enough permissions for Microsoft Entra authentication geeft aan dat machtigingen niet juist zijn toegewezen aan de identiteit die u hebt geselecteerd. Controleer de sectie Machtigingen verlenen om de juiste machtigingen toe te wijzen.

Microsoft Entra-verificatie inschakelen voor niet-geregistreerde exemplaren

Als uw SQL Server-exemplaar niet is geregistreerd bij de SQL IaaS Agent-extensie, bijvoorbeeld wanneer u meerdere SQL Server-exemplaren op dezelfde VM hebt, kunt u Microsoft Entra-verificatie inschakelen met behulp van PowerShell. U kunt Microsoft Entra-verificatie inschakelen voor specifieke niet-geregistreerde exemplaren of voor alle exemplaren op de VIRTUELE machine.

Note

Als u Microsoft Entra-verificatie wilt gebruiken met niet-geregistreerde exemplaren op SQL Server op Azure-VM's, moet u ten minste één exemplaar hebben geregistreerd bij de SQL IaaS Agent-extensie.

Wanneer u de Set-AzVMExtension -ExtensionName "SqlIaasExtension" opdracht gebruikt om Microsoft Entra-verificatie in te schakelen voor een SQL Server-exemplaar, moet u rekening houden met het volgende:

  • Machtigingen van de beheerde identiteit worden alleen gecontroleerd wanneer de CheckPermissions parameter is ingesteld op true.
  • Geef de client-id van de identiteitsparameter ClientID op voor het gebruik van een door de gebruiker toegewezen beheerde identiteit. Wanneer de ClientID parameter leeg is, wordt een door het systeem toegewezen beheerde identiteit gebruikt.
  • Geef een lijst op met exemplaren in de EnableForGivenInstances parameter om Microsoft Entra-verificatie in te schakelen voor specifieke niet-geregistreerde exemplaren. Anders, gebruik de EnableForAllInstances parameter om Microsoft Entra-verificatie in te schakelen voor alle niet-geregistreerde exemplaren op de virtuele machine.

In het volgende voorbeeld wordt Microsoft Entra-verificatie ingeschakeld voor alle exemplaren op de VM met behulp van een door het systeem toegewezen identiteit:

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}}'

In het volgende voorbeeld wordt Microsoft Entra-verificatie ingeschakeld voor specifieke niet-geregistreerde exemplaren met behulp van een door de gebruiker toegewezen identiteit:

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}}'

Aanmeldingen en gebruikers maken

Volg de stappen in de zelfstudie Microsoft Entra om aanmeldingen en gebruikers voor de beheerde identiteit te maken.

Verbinding maken met uw instantie

Volg de instructies in de zelfstudie Microsoft Entra om verbinding te maken met uw SQL Server-exemplaar met behulp van Microsoft Entra-verificatie.

Limitations

Houd rekening met de volgende beperkingen:

  • Microsoft Entra-verificatie wordt alleen ondersteund met SQL Server 2022 die wordt uitgevoerd op Windows-VM's die zijn geregistreerd bij de SQL IaaS Agent-extensie, geïmplementeerd in elke cloud.
  • Het beheren van Microsoft Entra-verificatie in Azure Portal is alleen beschikbaar voor exemplaren die worden ondersteund door de SQL IaaS Agent-extensie, zoals een standaardexemplaren of één benoemd exemplaar. Gebruik de Azure CLI of PowerShell om Aanvullende exemplaren van Microsoft Entra-verificatie te beheren op de SQL Server-VM die niet zijn geregistreerd bij de SQL IaaS Agent-extensie.
  • Het gebruik van Microsoft Entra-verificatie met exemplaren van failoverclusters wordt niet ondersteund.
  • De identiteit die u kiest om te verifiëren bij SQL Server moet de rol Directory Readers hebben in Microsoft Entra ID of de volgende drie Microsoft Graph-toepassingsmachtigingen (app-rollen): User.Read.All, GroupMember.Read.Allen Application.Read.All.
  • Zodra Microsoft Entra-verificatie is ingeschakeld, kunt u deze niet meer uitschakelen.
  • Verificatie bij SQL Server op Azure-VM's via Microsoft Entra-verificatie met behulp van de FIDO2-methode wordt momenteel niet ondersteund.

Volgende stappen

Bekijk de aanbevolen beveiligingsprocedures voor SQL Server.

Zie het overzicht van SQL Server op Azure Virtual Machines voor andere artikelen met betrekking tot het uitvoeren van SQL Server in Azure-VM's. Als u vragen hebt over virtuele SQL Server-machines, raadpleegt u de veelgestelde vragen.

Zie de andere artikelen in deze reeks aanbevolen procedures voor meer informatie: