Configurer et gérer l’authentification Microsoft Entra avec Azure SQL

S’applique à : Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics

Cet article vous montre comment utiliser Microsoft Entra ID pour l'authentification avec Azure SQL Database, Azure SQL Managed Instance et Azure Synapse Analytics.

Remarque

Microsoft Entra ID était précédemment connu sous le nom d’Azure Active Directory (Azure AD).

Vous pouvez également configurer l’authentification Microsoft Entra pour SQL Server sur les Machines Virtuelles Azure.

Prérequis

Pour activer l’authentification Microsoft Entra sur votre ressource Azure SQL prenez en compte les prérequis suivants :

Créer et remplir un locataire Microsoft Entra

Avant de pouvoir configurer l’authentification Microsoft Entra pour votre ressource Azure SQL, vous devez créer un client Microsoft Entra et le remplir avec des utilisateurs et des groupes. Les locataires Microsoft Entra peuvent être gérés entièrement dans Azure ou utilisés pour la fédération d’un service de domaine local Active Directory.

Pour plus d’informations, consultez l’article suivant :

Définit un administrateur Microsoft Entra

Pour utiliser l’authentification Microsoft Entra avec votre ressource, l’administrateur Microsoft Entra doit être défini. Bien que les étapes soient conceptuellement identiques pour Azure SQL Database, Azure Synapse Analytics et Azure SQL Managed Instance, cette section décrit en détail les différentes API et expériences de portail pour chaque produit.

L’administrateur Microsoft Entra peut également être configuré lors de la création de la ressource Azure SQL. Si un administrateur Microsoft Entra est déjà configuré, ignorez cette section.

Azure SQL Database et Azure Synapse Analytics

La définition de l’administrateur Microsoft Entra active l’authentification Microsoft Entra pour votre serveur logique pour Azure SQL Database et Azure Synapse Analytics. Vous pouvez définir un administrateur Microsoft Entra pour votre serveur à l’aide des API REST Portail Azure, PowerShell, Azure CLI ou REST.

Dans le portail Azure, vous pouvez trouver le nom du serveur logique

  • Dans le champ du nom du serveur sur la page Vue d’ensemble d'Azure SQL Database.
  • Dans le champ nom du serveur dans la page Vue d’ensemble de votre pool SQL dédié autonome dans Azure Synapse Analytics.
  • Dans le point de terminaison SQL approprié dans la page Vue d’ensemble de votre espace de travail Azure Synapse Analytics.

Pour définir l’administrateur Microsoft Entra pour votre serveur logique dans le Portail Azure, procédez comme suit :

  1. Dans le volet Répertoires + abonnements du portail Azure, choisissez le répertoire qui contient votre ressource Azure SQL comme répertoire actuel.

  2. Recherchez des serveurs SQL, puis sélectionnez le serveur logique de votre ressource de base de données pour ouvrir le volet serveur SQL.

    Capture d'écran montrant comment rechercher et sélectionner des serveurs SQL.

  3. Dans le volet SQL Server de votre serveur logique, sélectionnez Microsoft Entra ID sous Paramètres pour ouvrir le volet Microsoft Entra ID .

  4. Dans la page Microsoft Entra ID, sélectionnez Définir l’administrateur pour ouvrir la fenêtre Microsoft Entra ID.

    Capture d’écran montrant l’option pour définir l’administrateur Microsoft Entra pour les serveurs SQL.

  5. Le volet ID Microsoft Entra affiche tous les utilisateurs, groupes et applications dans votre annuaire actif et vous permet de rechercher par nom, alias ou ID. Recherchez votre identité souhaitée pour votre administrateur Microsoft Entra et sélectionnez-la, puis cliquez sur Sélectionner pour fermer le volet.

  6. En haut de la page Microsoft Entra ID en référence à votre serveur logique, sélectionnez Enregistrer.

    Capture d’écran montrant l’option pour enregistrer un administrateur Microsoft Entra.

    Pour les utilisateurs et groupes Microsoft Entra, l’ID d’objet s’affiche à côté du nom d’administrateur. Pour les applications (principaux de service), l’ID d’application s’affiche.

La procédure de changement de l’administrateur peut prendre plusieurs minutes. Ensuite, le nouvel administrateur apparaît dans le champ Administrateur Microsoft Entra.

Pour supprimer un administrateur, en haut de la page Microsoft Entra ID, sélectionnez Supprimer l’administrateur, puis cliquez Enregistrer. La suppression de l’administrateur Microsoft Entra désactive l’authentification Microsoft Entra pour votre serveur logique.

Remarque

L’administrateur Microsoft Entra est stocké dans la base de données du serveur master en tant qu’utilisateur (principal de base de données). Étant donné que les noms de principal de base de données doivent être uniques, le nom complet de l’administrateur ne peut pas être identique au nom d’un utilisateur dans la base de données du serveur master. Si un utilisateur portant le nom existe déjà, le programme d’installation de l’administrateur Microsoft Entra échoue et s’annule, indiquant que le nom est déjà utilisé.

Azure SQL Managed Instance

La définition de l’administrateur Microsoft Entra active l’authentification Microsoft Entra pour Azure SQL Managed Instance. Vous pouvez définir un administrateur Microsoft Entra pour votre instance managée SQL à l’aide des API REST Portail Azure, PowerShell, Azure CLI ou REST.

Pour accorder à votre instance SQL Managed Instance une autorisation d’accès en lecture pour Microsoft Entra ID, à l’aide du portail Azure, connectez-vous en tant qu’administrateur général ou Administrateur de rôle privilégié et procédez comme suit :

  1. Dans le portail Azure, dans le coin supérieur droit, sélectionnez votre compte, puis choisissez Changer de répertoires pour confirmer quel est votre répertoire actuel. Changez de répertoires, si nécessaire.

    Capture d’écran du portail Azure montrant où changer de répertoire.

  2. Dans le volet Répertoires + abonnements du portail Azure, choisissez le répertoire qui contient votre instance managée en tant que répertoire actuel.```

  3. Recherchez des instances managées SQL, puis sélectionnez votre instance managée pour ouvrir le volet d’instance managée SQL. Sélectionnez ensuite Microsoft Entra ID sous Paramètres pour ouvrir le volet Microsoft Entra ID pour votre instance.

    Capture d'écran du portail Azure sur lequel la page d'administration de Microsoft Entra est ouverte pour l'instance SQL Managed Instance sélectionnée.

  4. Dans la page administrateur Microsoft Entra, sélectionnez Définir l’administrateur dans la barre de navigation pour ouvrir la fenêtre Microsoft Entra ID.

    Capture d'écran représentant la commande Définir l'administrateur en surbrillance sur la page d'administration de Microsoft Entra pour l'instance SQL Managed Instance sélectionnée.

  5. Dans la fenêtre Microsoft Entra ID, recherchez un utilisateur, cochez la case se référant à l’utilisateur ou groupe devant être administrateur, puis cliquez sur Sélectionner pour fermer la fenêtre et revenir à la page administrateur Microsoft Entra pour votre instance managée.

    La fenêtre Microsoft Entra ID affiche tous les membres et groupes de votre répertoire actif. Les utilisateurs ou les groupes grisés ne peuvent pas être sélectionnés, car ils ne sont pas pris en charge en tant qu’administrateurs Microsoft Entra. Sélectionnez l’identité que vous souhaitez attribuer en tant qu’administrateur.

  6. Dans la barre de navigation de la page administrateur Microsoft Entra pour votre instance managée, sélectionnez Enregistrer pour confirmer votre administrateur Microsoft Entra.

    Capture d'écran de la page d'administration de Microsoft Entra, avec le bouton Enregistrer sur la ligne supérieure en regard des boutons Définir l'administrateur et Supprimer l'administrateur.

    Une fois l’opération de modification de l’administrateur terminée, le nouvel administrateur apparaît dans le champ Administrateur Microsoft Entra.

    Pour les utilisateurs et groupes Microsoft Entra, l’ID d’objet s’affiche à côté du nom d’administrateur. Pour les applications (principaux de service), l’ID d’application s’affiche.

Conseil

Pour supprimer un administrateur, en haut de la page Microsoft Entra ID, sélectionnez Supprimer l’administrateur, puis cliquez Enregistrer.

Attribuer des Autorisations Microsoft Graph

L'instance gérée SQL a besoin d'autorisations de lecture de Microsoft Entra ID pour des scénarios tels que l'autorisation des utilisateurs qui se connectent par le biais de l'appartenance à un groupe de sécurité et la création de nouveaux utilisateurs. Pour que l’authentification Microsoft Entra fonctionne, vous devez affecter l’identité d’instance managée au rôle Lecteurs de répertoire. Vous pouvez effectuer cette opération dans le portail Azure ou à l’aide de PowerShell.

Pour certaines opérations, Azure SQL Database et Azure Synapse Analytics nécessitent également des autorisations pour interroger Microsoft Graph, expliquées dans les autorisations Microsoft Graph. Azure SQL Database et Azure Synapse Analytics prennent en charge les autorisations Graph affinées pour ces scénarios, tandis que SQL Managed Instance nécessite le rôle Lecteurs de répertoire. Les autorisations affinées et leur affectation sont décrites en détail dans activation des principaux de service pour créer des utilisateurs Microsoft Entra.

Rôle Lecteurs d’annuaires

La page ID Microsoft Entra pour SQL Managed Instance dans le Portail Azure affiche une bannière pratique lorsque l’instance n’a pas les autorisations Lecteurs de répertoire.

  1. Sélectionnez la bannière en haut de la page Microsoft Entra ID et accordez l’autorisation à l’identité managée affectée par le système ou affectée par l’utilisateur qui représente votre instance. Seul un administrateur global ou un administrateur de rôle privilégié de votre client peut effectuer cette opération.

    Capture d’écran de la boîte de dialogue permettant d’accorder des autorisations à une instance SQL Managed Instance pour l’accès à Microsoft Entra ID. Le bouton Accorder des autorisations est sélectionné.

  2. Lorsque l’opération réussit, une notification de réussite s’affiche dans le coin supérieur droit :

    Capture d'écran d'une notification confirmant que les autorisations de lecture Microsoft Entra ID ont été correctement mises à jour pour l'instance gérée.

L’administrateur Microsoft Entra peut désormais être utilisé pour créer des principaux de serveur Microsoft Entra (connexions) et des principaux de base de données (utilisateurs). Pour plus d’informations, consultez intégration de Microsoft Entra à Azure SQL Managed Instance.

Créer des principaux Microsoft Entra dans SQL

Pour vous connecter à une base de données dans SQL Database ou Azure Synapse Analytics avec l’authentification Microsoft Entra, un principal doit être configuré sur la base de données pour cette identité avec au moins l’autorisation CONNECT .

Autorisations d'un utilisateur de base de données

Lorsqu’un utilisateur de base de données est créé, il reçoit l’autorisation CONNECT à la base de données par défaut. Un utilisateur de base de données hérite également des autorisations dans deux circonstances :

  • Si l’utilisateur est membre d’un groupe Microsoft Entra qui dispose également des autorisations sur le serveur.
  • Si l’utilisateur est créé à partir d’une connexion, il hérite des autorisations attribuées par le serveur de la connexion applicable sur la base de données.

La gestion des autorisations pour les principaux de serveur et de base de données fonctionne de la même façon, quel que soit le type de principal (ID Microsoft Entra, authentification SQL, etc.). Nous vous recommandons d’accorder des autorisations aux rôles de base de données au lieu d’accorder directement des autorisations aux utilisateurs. Les utilisateurs peuvent ensuite être ajoutés aux rôles avec les autorisations appropriées. Cela simplifie la gestion des autorisations à long terme et réduit la probabilité qu'une identité conserve un accès au-delà de ce qui est souhaitable.

Pour plus d’informations, consultez l’article suivant :

Utilisateurs de base de données autonome

Un utilisateur de base de données autonome est un type d’utilisateur SQL qui n’est pas connecté à une connexion dans la base de données master. Pour créer un utilisateur de base de données autonome basé sur Microsoft Entra, connectez-vous à la base de données avec une identité Microsoft Entra doté d’au moins l’autorisation ALTER ANY USER. L’exemple T-SQL suivant crée un principal Microsoft_Entra_principal_name de base de données à partir de l’ID Microsoft Entra.

CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;

Pour créer un utilisateur de base de données autonome pour un groupe Microsoft Entra, indiquez le nom complet du groupe :

CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;

Pour créer un utilisateur de base de données autonome pour une identité managée ou un principal de service, entrez le nom complet de l’identité :

CREATE USER [appName] FROM EXTERNAL PROVIDER;

Pour créer un utilisateur de base de données autonome pour un utilisateur Microsoft Entra, entrez le nom d’utilisateur principal de l’identité :

CREATE USER [adrian@contoso.com] FROM EXTERNAL PROVIDER;

Utilisateurs basés sur la connexion

Remarque

Les principaux de serveur Microsoft Entra (connexions) sont actuellement en préversion publique pour la base de données Azure SQL et Azure Synapse Analytics. La connexion à Microsoft Entra est en disponibilité générale pour Azure SQL Managed Instance et SQL Server 2022.

Les principaux de serveur Microsoft Entra (ou connexions) sont pris en charge, ce qui signifie que les utilisateurs de base de données autonome ne sont pas requis. Les principaux de base de données (utilisateurs) peuvent être créés en fonction d’un principal de serveur, ce qui signifie que les utilisateurs Microsoft Entra peuvent hériter des autorisations attribuées au niveau du serveur d’une connexion.

CREATE USER [appName] FROM LOGIN [appName];

Pour plus d’informations, consultez Vue d’ensemble de SQL Managed Instance. Pour la syntaxe de création des principaux de serveur (connexions) Microsoft Entra, consultez CREATE LOGIN.

Utilisateurs externes

Vous ne pouvez pas créer directement un utilisateur de base de données pour une identité gérée dans un locataire Microsoft Entra autre que celui associé à votre abonnement Azure. Toutefois, les utilisateurs d’autres répertoires peuvent être importés dans le répertoire associé en tant qu’utilisateurs externes. Ils peuvent ensuite être utilisés pour créer des utilisateurs de base de données autonome qui peuvent accéder à la Base de données. Les utilisateurs externes peuvent également obtenir un accès via l'appartenance à des groupes Microsoft Entra.

Exemples : pour créer une base de données autonome représentant un utilisateur de domaine fédéré ou géré Microsoft Entra :

CREATE USER [alice@fabrikam.com] FROM EXTERNAL PROVIDER;

Un compte d’utilisateur de domaine fédéré importé dans un domaine managé comme utilisateur externe doit utiliser l’identité de domaine managé.

Considérations relatives au nommage

Les caractères spéciaux comme le deux-points : ou l’esperluette &, lorsqu’ils sont inclus dans les instructions T-SQL CREATE LOGIN et CREATE USER, ne sont pas pris en charge.

Microsoft Entra ID et Azure SQL divergent dans leur conception de gestion des utilisateurs d’une manière unique : Microsoft Entra ID permet aux noms d’affichage d’être dupliqués au sein d’un client, tandis qu’Azure SQL nécessite tous les principaux de serveur sur un serveur ou une instance et tous les principaux de base de données d’une base de données d’avoir un nom unique. Étant donné qu’Azure SQL utilise directement le nom complet Microsoft Entra de l’identité lors de la création de principaux, cela peut entraîner des erreurs lors de la création d’utilisateurs. Pour résoudre ce problème, Azure SQL a publié l’amélioration WITH OBJECT_ID actuellement en préversion, ce qui permet aux utilisateurs de spécifier l’ID d’objet Microsoft Entra de l’identité ajoutée au serveur ou à l’instance.

Autorisations Microsoft Graph

La commande CREATE USER ... FROM EXTERNAL PROVIDER impose que Azure SQL accède à Microsoft Entra ID (le « fournisseur externe ») pour le compte de l’utilisateur connecté. Parfois, les circonstances font que Microsoft Entra ID renvoie une exception à Azure SQL.

  • Vous pouvez rencontrer l’erreur SQL 33134, qui contient le message d’erreur spécifique à Microsoft Entra ID. La plupart du temps, l’erreur indique que l’accès est refusé, ou que l’utilisateur doit passer par l’authentification multifacteur afin d’accéder à la ressource, ou que l’accès entre les applications internes doit être géré via une autorisation préalable. Dans les deux premiers cas, le problème est généralement dû à des stratégies d’accès conditionnel définies dans le locataire Microsoft Entra de l’utilisateur. Elles l’empêchent d’accéder au fournisseur externe. La mise à jour des stratégies d’accès conditionnel de façon à autoriser l’accès à l’application « 00000003-0000-0000-c000-000000000000 » (ID d’application de l’API Microsoft Graph) doit résoudre le problème. Si l’erreur indique que l’accès entre les applications internes doit être géré par le biais de l’autorisation préalable, le problème vient du fait que l’utilisateur est connecté en tant que principal du service. La commande doit aboutir si au lieu de cela elle est exécutée par un utilisateur.
  • Si vous recevez le message Délai d’expiration de la connexion dépassé, vous devrez peut-être définir le paramètre TransparentNetworkIPResolution de la chaîne de connexion sur la valeur false. Pour plus d’informations, consultez Problème lié au délai d’expiration de la connexion avec .NET Framework 4.6.1 - TransparentNetworkIPResolution.

Pour plus d’informations sur la création d’utilisateurs de base de données autonome basés sur des identités Microsoft Entra, consultez CRÉER UN UTILISATEUR.

Configurer l’authentification multifacteur

Pour améliorer la sécurité de votre ressource Azure SQL, envisagez de configurer l’authentification multifacteur (ADG), ce qui invite l’utilisateur à utiliser une deuxième méthode alternative pour s’authentifier auprès de la base de données, comme un appel téléphonique ou une application d’authentificateur.

Pour utiliser l’authentification multifacteur avec votre ressource Azure SQL, commencez par activer l’authentification multifacteur, puis utilisez une stratégie d’accès conditionnel pour appliquer l’authentification multifacteur pour votre ressource Azure SQL.

Connexion avec Microsoft Entra

Une fois l’authentification Microsoft Entra configurée, vous pouvez l’utiliser pour vous connecter à votre ressource SQL avec des outils Microsoft tels que SQL Server Management Studio et SQL Server Data Tools, et configurer des applications clientes pour vous connecter à l’aide des identités Microsoft Entra.

Résoudre les problèmes d’authentification Microsoft Entra

Pour obtenir des conseils sur la résolution des problèmes, consultez Blog : Résolution des problèmes liés à l'authentification Microsoft Entra avec Azure SQL Database et Azure Synapse.