Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :SQL Server sur la machine virtuelle Azure
Cet article vous explique comment activer l’authentification Microsoft Entra ID (anciennement Azure Active Directory) pour votre instance SQL Server sur des machines virtuelles Azure.
Note
Il est possible de configurer l’authentification Microsoft Entra pour les instances non inscrites de SQL Server, par exemple lorsque vous avez plusieurs instances SQL Server sur la même machine virtuelle.
Overview
À partir de SQL Server 2022, vous pouvez vous connecter à SQL Server sur des machines virtuelles Azure avec l’une des méthodes d’authentification suivantes de Microsoft Entra :
- Le mot de passe offre une authentification avec les informations d’identification de Microsoft Entra
- L’authentification universelle avec prise en charge de MFA ajoute l’authentification multifacteur
- L’intégration utilise des fournisseurs de fédération comme Active Directory Federation Services (ADFS) pour activer les expériences d’authentification unique (SSO)
- Le principal de service permet l’authentification à partir des applications Azure
- L’identité managée active l’authentification à partir d’applications affectées aux identités Microsoft Entra
Lorsque vous créez une connexion Microsoft Entra pour SQL Server et que cette connexion est employée par utilisateur, SQL Server utilise une identité managée pour interroger Microsoft Graph. Lorsque vous activez l’authentification Microsoft Entra pour votre instance SQL Server sur une machine virtuelle Azure, vous devez fournir une identité managée que SQL Server pourra utiliser pour communiquer avec Microsoft Entra ID. Cette identité managée doit être autorisée à interroger Microsoft Graph.
Lors de l’activation d’une identité managée pour une ressource dans Azure, la limite de sécurité de l’identité est la ressource à laquelle elle est attachée. Par exemple, la limite de sécurité activée pour une machine virtuelle avec des identités managées pour des ressources Azure est la machine virtuelle. Tout code s’exécutant sur cette machine virtuelle est en mesure d’appeler le point de terminaison des identités managées et de demander des jetons. Quand vous activez une identité managée pour SQL Server sur une machine virtuelle Azure, l’identité est attachée à la machine virtuelle pour que la délimitation de sécurité corresponde à la machine virtuelle. L’expérience est similaire quand vous travaillez avec d’autres ressources qui prennent en charge les identités managées. Pour plus d’informations, consultez le FAQ sur les identités managées.
Les identités managées affectées par le système et par l’utilisateur, qui servent à assurer l’authentification Microsoft Entra auprès de SQL Server sur les machines virtuelles Azure, offrent les avantages suivants :
- L’identité managée affectée par le système offre un processus de configuration simplifié. Étant donné que l’identité managée a la même durée de vie que la machine virtuelle, il n’est pas nécessaire de la supprimer séparément quand vous supprimez la machine virtuelle.
- L’identité managée affectée par l’utilisateur offre une scalabilité, car elle peut être attachée et utilisée pour l’authentification Microsoft Entra pour plusieurs instances de SQL Server sur des machines virtuelles Azure.
Pour bien démarrer avec les identités managées, réévaluez Configurer les identités managées à l’aide du Portail Azure.
Prerequisites
Pour activer l’authentification Microsoft Entra sur votre instance SQL Server, prenez en compte les prérequis suivants :
- Utilisez SQL Server 2022.
- Inscrire la machine virtuelle SQL Server avec l’extension Agent Iaas SQL Server sur le cloud.
- Ayez une identité gérée assignée par le système ou assignée par l'utilisateur dans le même tenant Microsoft Entra que votre machine virtuelle SQL Server. Configurer les identités managées à l’aide du Portail Azure pour en savoir plus.
- Azure CLI 2.48.0 ou une version ultérieure si vous envisagez d’utiliser Azure CLI pour configurer l’authentification Microsoft Entra pour votre machine virtuelle SQL Server.
Accorder des autorisations
L’identité managée que vous choisissez pour faciliter l’authentification entre SQL Server et Microsoft Entra ID doit avoir les trois autorisations d’application (rôles d’application) Microsoft Graph suivantes : User.Read.All, GroupMember.Read.All et Application.Read.All.
Vous pouvez également ajouter l’identité managée au rôle de lecteurs de répertoire Microsoft Entra pour accorder des autorisations suffisantes. Une autre façon d’attribuer le rôle Lecteurs d’annuaire à une identité managée consiste à attribuer le rôle Lecteurs d’annuaire à un groupe dans l’ID Microsoft Entra. Les propriétaires de groupe peuvent ensuite ajouter l’identité managée de la machine virtuelle en tant que membre de ce groupe. Cela réduit l’implication des administrateurs de rôles Microsoft Entra et délègue la responsabilité aux propriétaires du groupe.
Ajoutez l’identité managée au rôle
Cette section explique comment ajouter votre identité managée au rôle Lecteurs d’annuaire dans Microsoft Entra ID. Vous devez disposer de privilèges d’administrateur de rôle privilégié pour apporter des modifications aux attributions de rôles Lecteurs d’annuaire. Si vous ne disposez pas des autorisations suffisantes, contactez votre administrateur Microsoft Entra pour suivre ces étapes.
Pour accorder à votre identité managée le rôle Lecteurs d’annuaire , procédez comme suit :
Ouvrez Rôles et administrateurs Microsoft Entra ID sur le portail Azure :
Tapez les lecteurs d’annuaire dans la zone de recherche, puis sélectionnez le rôle Lecteurs d’annuaire pour ouvrir les lecteurs d’annuaire | Page Affectations :
Dans la page Lecteurs d’annuaires | Attributions, sélectionnez + Ajouter des attributions pour ouvrir la page Ajouter une attribution.
Dans la page Ajouter des affectations , choisissez Aucun membre sélectionné sous Sélectionner des membres pour ouvrir la page Sélectionner un membre .
Sur la page Sélectionner un membre, recherchez le nom de l’identité managée que vous souhaitez utiliser avec votre machine virtuelle SQL Server et ajoutez-la au rôle Lecteurs d’annuaires. Pour les identités managées affectées par le système, recherchez le nom de la machine virtuelle. Utilisez Sélectionner pour confirmer l’identité et revenir à la page Ajouter des affectations .
Vérifiez que vous voyez votre identité choisie sous Sélectionner des membres , puis sélectionnez Suivant.
Vérifiez que votre type d’affectation est défini sur Actif et que la case en regard de l’affectation définitive est cochée. Entrez une justification métier, comme Ajout d’autorisations de rôle Lecteur d’annuaire à l’identité affectée par le système pour VM2, puis sélectionnez Attribuer pour enregistrer vos paramètres et revenir à la page Lecteurs d’annuaires | Attributions.
Dans la page Lecteurs d’annuaires | Attributions, vérifiez que la nouvelle identité ajoutée est listée sous Lecteurs d’annuaires.
Ajoutez des autorisations de rôle d’application
Vous pouvez utiliser Azure PowerShell pour accorder des rôles d’application à une identité managée. Pour ce faire, procédez comme suit :
Se connecter à Microsoft Graph
Connect-MgGraph -Scopes "AppRoleAssignment.ReadWrite.All" -TenantId "<tenant id>"Récupérez une identité managée :
$Graph_SP = Get-MgServicePrincipal -Filter "DisplayName eq 'Microsoft Graph'" $MSI = Get-MgServicePrincipal -Filter "displayName eq '<your managed identity display name>'"Attribuez le
User.Read.Allrôle à l’identité :$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}Attribuez
GroupMember.Read.Allrôle à l’identité :$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}Attribuez
Application.Read.Allrôle à l’identité :$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}
Vous pouvez valider que les autorisations ont été affectées à l’identité managée en procédant comme suit :
- Accédez à Microsoft Entra ID sur le portail Azure.
- Choisissez Applications d’entreprise , puis sélectionnez Toutes les applications sous Gérer.
- Filtrez le type d’application par
Managed identities. - Sélectionnez l’identité managée, puis choisissez Autorisations sous Sécurité. Vous devez voir les autorisations suivantes :
User.Read.All,GroupMember.Read.All,Application.Read.All.
Activez la communication sortante
Pour que l’authentification Microsoft Entra fonctionne, vous avez besoin des éléments suivants :
- Communication sortante de SQL Server vers Microsoft Entra ID et le point de terminaison Microsoft Graph.
- Communication sortante du client SQL vers Microsoft Entra ID.
Les configurations de machine virtuelle Azure par défaut autorisent la communication sortante vers le point de terminaison Microsoft Graph, ainsi que l’ID Microsoft Entra, mais certains utilisateurs choisissent de restreindre la communication sortante à l’aide d’un pare-feu au niveau du système d’exploitation ou du groupe de sécurité réseau Azure (NSG).
Les Pare-feu sur la machine virtuelle SQL Server et de tout client SQL doivent autoriser le trafic sortant sur les ports 80 et 443.
La règle de groupe de sécurité réseau de réseau virtuel Azure pour le réseau virtuel qui héberge votre machine virtuelle SQL Server doit avoir les éléments suivants :
- Une étiquette de service de
AzureActiveDirectory. - Plages de ports de destination de : 80, 443.
- Action définie sur Autoriser.
- Une haute priorité (qui est un nombre faible).
Activer l’authentification Microsoft Entra pour l’instance inscrite
Lorsque vous inscrivez votre instance SQL Server avec l’extension SQL IaaS Agent, vous pouvez activer l’authentification Microsoft Entra pour l’instance inscrite à l’aide du portail Azure, d’Azure CLI ou de PowerShell. L’utilisation du portail Azure ou d’Azure CLI pour gérer votre instance n’est prise en charge que sur l’instance inscrite de SQL Server.
Note
Une fois l’authentification Microsoft Entra activée, vous pouvez suivre les mêmes étapes dans cette section pour mettre à jour la configuration afin d’utiliser une identité managée différente.
Pour activer l’authentification Microsoft Entra sur votre machine virtuelle SQL Server, procédez comme suit :
Accédez à votre ressource de machines virtuelles SQL dans le portail Azure.
Sélectionnez Configuration de sécurité sous Sécurité.
Choisissez Activer sous l’authentification Microsoft Entra.
Choisissez le type d’identité managée dans la liste déroulante, affectée par le système ou affectée par l’utilisateur. Si vous choisissez Affectée par l’utilisateur, dans la liste déroulante Identité managée affectée par l’utilisateur qui s’affiche, sélectionnez l’identité que vous souhaitez utiliser pour vous authentifier auprès de SQL Server sur votre machine virtuelle Azure.
Une fois l’authentification Microsoft Entra activée, vous pouvez suivre les mêmes étapes pour modifier l’identité managée qui peut s’authentifier auprès de votre machine virtuelle SQL Server.
Note
L’erreur The selected managed identity does not have enough permissions for Microsoft Entra authentication indique que les autorisations n’ont pas été correctement attribuées à l’identité que vous avez sélectionnée. Vérifiez la section Accorder des autorisations pour attribuer des autorisations appropriées.
Activer l’authentification Microsoft Entra pour les instances non inscrites
Si votre instance SQL Server n’est pas inscrite auprès de l’extension SQL IaaS Agent, par exemple lorsque vous avez plusieurs instances SQL Server sur la même machine virtuelle, vous pouvez activer l’authentification Microsoft Entra à l’aide de PowerShell.
Vous pouvez activer l’authentification Microsoft Entra pour des instances non inscrites spécifiques ou pour toutes les instances sur la machine virtuelle.
Note
Pour utiliser l’authentification Microsoft Entra avec des instances non inscrites sur SQL Server sur des machines virtuelles Azure, vous devez disposer d’au moins une instance inscrite auprès de l’extension SQL IaaS Agent.
Lorsque vous utilisez la commande pour activer l’authentification Set-AzVMExtension -ExtensionName "SqlIaasExtension" Microsoft Entra pour une instance SQL Server, tenez compte des éléments suivants :
- Les autorisations de l’identité managée sont vérifiées uniquement lorsque le paramètre
CheckPermissionsest défini àtrue. - Spécifiez l’ID client du paramètre d’identité
ClientIDpour utiliser une identité managée affectée par l’utilisateur. Lorsque le paramètre est vide, uneClientIDle système est utilisée. - Fournissez la liste des instances du paramètre pour activer l’authentification
EnableForGivenInstancesMicrosoft Entra pour des instances non inscrites spécifiques. Sinon, utilisez le paramètre pour activer l’authentificationEnableForAllInstancesMicrosoft Entra pour toutes les instances non inscrites sur la machine virtuelle.
L’exemple suivant active l’authentification Microsoft Entra pour toutes les instances sur la machine virtuelle à l’aide d’une identité affectée par le système :
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}}'
L’exemple suivant active l’authentification Microsoft Entra pour certaines instances non enregistrées spécifiques à l’aide d’une identité assignée par l’utilisateur :
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}}'
Créer des connexions et des utilisateurs
Suivez les étapes du didacticiel Microsoft Entra pour créer des connexions et des utilisateurs pour l’identité managée.
Se connecter à votre instance
Suivez les instructions du didacticiel Microsoft Entra pour vous connecter à votre instance SQL Server à l’aide de l’authentification Microsoft Entra.
Limitations
Tenez compte des limitations suivantes :
- L’authentification Microsoft Entra est uniquement prise en charge avec SQL Server 2022 exécuté sur des machines virtuelles Windows enregistrées avec l’extension SQL IaaS Agent, déployées sur n’importe quel cloud.
- La gestion de l’authentification Microsoft Entra dans le portail Azure est disponible uniquement pour les instances prises en charge par l’extension SQL IaaS Agent, comme une instance par défaut ou une seule instance nommée. Utilisez Azure CLI ou PowerShell pour gérer des instances supplémentaires d’authentification Microsoft Entra sur la machine virtuelle SQL Server qui ne sont pas inscrites auprès de l’extension SQL IaaS Agent.
- L’utilisation de l’authentification Microsoft Entra avec les instances de cluster de basculement n’est pas prise en charge.
- L’identité que vous choisissez de s’authentifier auprès de SQL Server doit avoir le rôle Lecteurs d’annuaire dans Microsoft Entra ID ou les trois autorisations d’application Microsoft Graph suivantes (rôles d’application) :
User.Read.All,GroupMember.Read.AlletApplication.Read.All. - Une fois l’authentification Microsoft Entra activée, il n’est plus possible de la désactiver.
- Actuellement, l’authentification auprès de SQL Server sur des machines virtuelles Azure via l’authentification Microsoft Entra à l’aide de la méthode FIDO2 n’est pas prise en charge.
Étapes suivantes
Passez en revue les meilleures pratiques de sécurité pour SQL Server.
Pour d’autres rubriques relatives à l’exécution de SQL Server sur des machines virtuelles Azure, consultez présentation de SQL Server sur les machines virtuelles Azure. Si vous avez des questions sur les machines virtuelles SQL Server, consultez les questions fréquentes (FAQ).
Pour en savoir plus, consultez les autres articles de cette série sur les meilleures pratiques :