Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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:
- Gebruik SQL Server 2022.
- Registreer de SQL Server-VM met de SQL Server Iaas Agent-extensie in elke cloud.
- Een bestaande beheerde identiteit, door het systeem toegewezen of door de gebruiker toegewezen, hebben in dezelfde Microsoft Entra-tenant als uw SQL Server-VM. Configureer beheerde identiteiten met behulp van Azure Portal voor meer informatie.
- Azure CLI 2.48.0 of hoger als u de Azure CLI wilt gebruiken om Microsoft Entra-verificatie te configureren voor uw SQL Server-VM.
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:
Open Microsoft Entra ID-rollen/beheerders in de Azure-portal.
Typ Adreslijstlezers in het zoekvak en selecteer vervolgens de rol Adreslijstlezers om de adreslijstlezers te openen | Pagina Opdrachten :
Op de Mappenlezers | Opdrachten pagina, selecteer + Opdrachten toevoegen om de Opdracht toevoegen pagina te openen.
Kies op de pagina Toewijzingen toevoegende optie Geen lid geselecteerd onder Leden selecteren om de pagina Een lid selecteren te openen.
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 .
Controleer of u de gekozen identiteit ziet onder Leden selecteren en selecteer vervolgens Volgende.
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.
Op de pagina Directory Readers | Assignments, bevestig dat u uw zojuist toegevoegde identiteit onder Directory Readers ziet.
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.
Verbinding maken met Microsoft Graph
Connect-MgGraph -Scopes "AppRoleAssignment.ReadWrite.All" -TenantId "<tenant id>"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>'"Wijs de
User.Read.Allrol 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}Rol toewijzen
GroupMember.Read.Allaan 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}Rol toewijzen
Application.Read.Allaan 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:
- Ga naar Microsoft Entra-id in Azure Portal.
- Kies Bedrijfstoepassingen en selecteer vervolgens Alle toepassingen onder Beheren.
- Filter het toepassingstype met behulp van
Managed identities. - 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:
Navigeer naar de resource van uw virtuele SQL-machines in Azure Portal.
Selecteer Beveiligingsconfiguratie onder Beveiliging.
Kies Inschakelen onder Microsoft Entra-verificatie.
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.
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
CheckPermissionsparameter is ingesteld optrue. - Geef de client-id van de identiteitsparameter
ClientIDop voor het gebruik van een door de gebruiker toegewezen beheerde identiteit. Wanneer deClientIDparameter leeg is, wordt een door het systeem toegewezen beheerde identiteit gebruikt. - Geef een lijst op met exemplaren in de
EnableForGivenInstancesparameter om Microsoft Entra-verificatie in te schakelen voor specifieke niet-geregistreerde exemplaren. Anders, gebruik deEnableForAllInstancesparameter 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.AllenApplication.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: