Activer l’authentification Microsoft Entra pour SQL Server sur des machines virtuelles Azure

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.

Vue d’ensemble

À partir de SQL Server 2022, vous pouvez vous connecter à SQL Server sur des machines virtuelles Azure en utilisant 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
  • Universaelle avec MFA ajoute l’authentification multifacteur
  • Integré utilise des fournisseurs de fédération tels que Active Directory Federation Services (ADFS) pour permettre des 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 peut 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. Lors de l’activation d’une identité managée pour SQL Server sur des machines virtuelles Azure, l’identité est attachée à la machine virtuelle, de sorte que la limite de sécurité est 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, lesquelles servent à assurer l’authentification Microsoft Entra avec SQL Server sur les machines virtuelles Azure, offrent les avantages suivants :

  • L’identité managée affectée par le système propose un processus de configuration simplifié. Comme 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 certaine scalabilité puisqu’elle peut être attachée à plusieurs machines virtuelles SQL Server sur Azure et utilisée pour l’authentification Microsoft Entra.

Pour commencer à utiliser les identités managées, consultez Configurer les identités managées à l’aide du portail Azure.

Prérequis

Pour activer l’authentification Microsoft Entra sur votre instance SQL Server, prenez en compte les prérequis suivants :

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 de Lecteurs de répertoire à une identité managée consiste à attribuer le rôle de lecteurs de répertoire à un groupe dans Microsoft Entra ID. Les propriétaires du groupe peuvent ensuite ajouter l’identité managée Machine Virtuelle en tant que membre de ce groupe. Cela réduit l’implication des administrateurs généraux Microsoft Entra et délègue la responsabilité aux propriétaires du groupe.

Ajouter une identité managée au rôle

Cette section explique comment ajouter votre identité managée au rôle de lecteurs de répertoire dans Microsoft Entra ID. Vous devez disposer des privilèges d'administrateur global pour modifier l'attribution des rôles aux lecteurs de répertoire. Si vous ne disposez pas d’autorisations suffisantes, contactez votre administrateur Microsoft Entra pour suivre ces étapes.

Pour attribuer à votre identité managée le rôle de lecteur de répertoire, procédez comme suit :

  1. Ouvrez les rôles et administrateurs de Microsoft Entra ID dans le Portail Azure :

  2. Tapez Lecteurs d’annuaires dans la zone de recherche, puis sélectionnez le rôle Lecteurs d’annuaires pour ouvrir la page Lecteurs d’annuaires | Attributions :

    Capture d’écran de la page Rôles et administrateurs dans le portail Azure, pour rechercher et sélectionner le rôle Lecteurs d’annuaires.

  3. Dans la page Lecteurs d’annuaires | Attributions, sélectionnez + Ajouter des attributions pour ouvrir la page Ajouter une attribution.

    Capture d’écran de la page Lecteurs d’annuaires dans le portail Azure.

  4. Dans la page Ajouter des attributions, choisissez Aucun membre sélectionné sous Sélectionner des membres pour ouvrir la page Sélectionner un membre.

    Capture d’écran de la page Ajouter une attribution dans le portail Azure, avec l’option Aucun membre sélectionné en surbrillance.

  5. Dans 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-le au rôle de lecteurs de répertoire. Pour les identités managées affectées par le système, recherchez le nom de la machine virtuelle. Choisissez Sélectionner pour confirmer votre identité et revenir à la page Ajouter des attributions.

    Capture d’écran de la recherche de membres à sélectionner dans le portail Azure.

  6. Vérifiez que vous voyez l’identité choisie sous Sélectionner des membres, puis sélectionnez Suivant.

    Capture d’écran de la page Ajouter une attribution dans le portail Azure, avec VM2 ajouté en tant qu’attribution.

  7. Vérifiez que le type d’attribution est défini sur Actif et que la case Affecté en permanence 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.

    Capture d’écran des paramètres dans la page Ajouter une attribution dans le portail Azure.

  8. Dans la page Lecteurs d’annuaires | Attributions, vérifiez que la nouvelle identité ajoutée est listée sous Lecteurs d’annuaires.

    Capture d’écran de la page Lecteurs d’annuaires dans le portail Azure montrant votre attribution de machine virtuelle ajoutée au rôle.

Ajouter 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 :

Remarque

Les modules Azure AD et MSOnline PowerShell sont dépréciés depuis le 30 mars 2024. Pour en savoir plus, lisez les informations de dépréciation. Passé cette date, la prise en charge de ces modules est limitée à une assistance de migration vers le SDK et les correctifs de sécurité Microsoft Graph PowerShell. Les modules déconseillés continueront de fonctionner jusqu’au 30 mars 2025.

Nous vous recommandons de migrer vers Microsoft Graph PowerShell pour interagir avec Microsoft Entra ID (anciennement Azure AD). Pour explorer les questions courantes sur la migration, reportez-vous au FAQ sur la migration. Remarque : Les versions 1.0.x de MSOnline peuvent connaître une interruption après le 30 juin 2024.

  1. Recherchez Microsoft Graph :

    $AAD_SP = Get-AzureADServicePrincipal -Filter "DisplayName eq 'Microsoft Graph'"
    
  2. Récupérez l’identité managée :

    $MSI = Get-AzureADServicePrincipal -Filter "DisplayName eq '<your managed identity display name>'"
    
  3. Attribuez le rôle User.Read.All à l’identité :

    $AAD_AppRole = $AAD_SP.AppRoles | Where-Object {$_.Value -eq "User.Read.All"}
    New-AzureADServiceAppRoleAssignment -ObjectId $MSI.ObjectId  -PrincipalId $MSI.ObjectId  
    -ResourceId $AAD_SP.ObjectId  -Id $AAD_AppRole.Id
    
  4. Attribuez le rôle GroupMember.Read.All à l’identité :

    $AAD_AppRole = $AAD_SP.AppRoles | Where-Object {$_.Value -eq "GroupMember.Read.All"}  
    New-AzureADServiceAppRoleAssignment -ObjectId $MSI.ObjectId  -PrincipalId $MSI.ObjectId  
    -ResourceId $AAD_SP.ObjectId  -Id $AAD_AppRole.Id 
    
  5. Attribuez le rôle Application.Read.All à l’identité :

    $AAD_AppRole = $AAD_SP.AppRoles | Where-Object {$_.Value -eq "Application.Read.All"}  
    New-AzureADServiceAppRoleAssignment -ObjectId $MSI.ObjectId  -PrincipalId $MSI.ObjectId  
    -ResourceId $AAD_SP.ObjectId  -Id $AAD_AppRole.Id 
    

Pour vérifier que des autorisations ont été attribuées à l’identité managée, effectuez les étapes suivantes :

  1. Dans le portail Azure, accédez à Microsoft Entra ID.
  2. Choisissez Applications d’entreprise, puis sélectionnez Toutes les applications sous Gérer.
  3. Filtrez le type d’application par Managed identities.
  4. Sélectionnez l’identité managée, puis choisissez Autorisations sous Sécurité. Vous devriez voir les autorisations suivantes : User.Read.All, GroupMember.Read.All, Application.Read.All.

Activer 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 point de terminaison Microsoft Graph.
  • Communication sortante du client SQL vers Microsoft Entra ID.

Les configurations de machine virtuelle Azure par défaut autorisent les communications sortantes vers le point de terminaison Microsoft Graph, ainsi que vers Microsoft Entra ID, mais certains utilisateurs choisissent de restreindre les communications sortantes en utilisant un pare-feu au niveau du système d’exploitation ou le groupe de sécurité réseau (NSG) Azure VNet.

Les pare-feux sur la machine virtuelle SQL Server et tout client SQL doivent autoriser le trafic sortant sur les ports 80 et 443.

La règle de groupe de sécurité réseau Azure VNet pour le réseau virtuel qui héberge votre machine virtuelle SQL Server doit avoir les éléments suivants :

  • Étiquette de service AzureActiveDirectory.
  • Plages de ports de destination : 80, 443.
  • Action définie sur Autoriser.
  • Priorité élevée (nombre faible).

Activez l’authentification Microsoft Entra

Vous pouvez activer l’authentification Microsoft Entra sur votre machine virtuelle SQL Server en utilisant le portail Azure ou l’interface Azure CLI.

Remarque

Une fois l’authentification Microsoft Entra activée, vous pouvez suivre les mêmes étapes de cette section pour modifier la configuration afin d’utiliser une autre identité managée.

Pour activer l’authentification Microsoft Entra sur votre machine virtuelle SQL Server, procédez comme suit :

  1. Accédez à votre ressource de machines virtuelles SQL dans le portail Azure.

  2. Dans Sécurité, sélectionnez Configuration de la sécurité.

  3. Choisissez Activer dans la section authentification Microsoft Entra.

  4. 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.

    Capture d’écran de la page de configuration de la sécurité pour une machine virtuelle SQL dans le portail Azure, avec l’authentification Microsoft Entra sélectionnée.

Une fois l’authentification de Microsoft Entra activée, vous pouvez suivre les mêmes étapes pour changer l’identité managée qui peut s’authentifier auprès de votre machine virtuelle SQL Server.

Remarque

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. Consultez la section Accorder des autorisations pour attribuer les autorisations appropriées.

Limitations

Tenez compte des limitations suivantes :

  • L'authentification Microsoft Entra n'est prise en charge qu'avec SQL Server 2022 exécuté sur des machines virtuelles Windows enregistrées avec l'extension SQL IaaS Agent et déployées dans le cloud public. Les scénarios pris en charge par l'extension SQL IaaS Agent sont les seuls à être pris en charge, par exemple une instance par défaut ou une seule instance nommée. Les instances de cluster de basculement ne sont pas prises en charge.
  • L’identité choisie pour vous authentifier auprès de SQL Server doit avoir soit le rôle de lecteurs de répertoire dans Microsoft Entra ID, soit les trois autorisations d’application (rôles d’application) Microsoft Graph suivantes : User.Read.All, GroupMember.Read.All et Application.Read.All.
  • Une fois l’authentification Microsoft Entra activée, il n’est pas possible de la désactiver.
  • Pour l’heure, l’authentification auprès de SQL Server sur machines virtuelles Azure via l’authentification Microsoft Entra et l’usage de la méthode FIDO2 n’est pas prise en charge.

Étapes suivantes

Prenez connaissance des bonnes pratiques en matière de sécurité pour SQL Server.

Vous trouverez des références à d’autres articles relatifs à l’exécution de SQL Server sur machines virtuelles Azure dans Vue d’ensemble de SQL Server sur 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 :