Tutoriel : Configuration de l’authentification Microsoft Entra pour SQL Server activée par Azure Arc
S’applique à : SQL Server 2022 (16.x)
Cet article décrit un processus pas à pas pour configurer l'authentification avec Microsoft Entra ID et montre comment utiliser différentes méthodes d'authentification Microsoft Entra.
Remarque
Microsoft Entra ID était anciennement appelé Azure Active Directory (Azure AD).
Dans ce tutoriel, vous allez apprendre à :
- Créer et inscrire une application Microsoft Entra
- Accorder des autorisations à l'application Microsoft Entra
- Créer et attribuer un certificat
- Configurer l'authentification Microsoft Entra pour SQL Server à partir du portail Azure
- Créer des connexions et des utilisateurs
- Se connecter avec une méthode d’authentification prise en charge
Prérequis
Windows Server physique ou virtuel local avec une instance de SQL Server 2022 (16.x).
Pour SQL Server sur des ordinateurs virtuels Azure, consultez Authentification Microsoft Entra pour SQL Server 2022 sur des ordinateurs virtuels Azure.
Serveur et instance activés par Azure Arc. Pour plus d'informations, consultez Connecter votre serveur SQL Server à Azure Arc.
L'accès à Microsoft Entra ID est disponible à des fins d'authentification. Pour plus d'informations, consultez Authentification Microsoft Entra pour SQL Server.
SQL Server Management Studio (SSMS) version 18.0 ou supérieure est installé sur la machine cliente. Sinon, téléchargez la dernière version d’Azure Data Studio.
Conditions préalables à l'authentification
Remarque
Des fonctionnalités étendues ont été implémentées dans Azure pour permettre la création automatique du certificat Azure Key Vault et de l'application Microsoft Entra lors de la configuration d'un administrateur Microsoft Entra pour SQL Server. Pour plus d'informations, consultez Tutoriel : Utilisation de l'automatisation pour configurer l'administrateur Microsoft Entra pour SQL Server.
Inscription d'application Microsoft Entra pour SQL Server. L'inscription d'une instance SQL Server en tant qu'application Microsoft Entra permet à l'instance d'interroger Microsoft Entra ID et permet à l'application Microsoft Entra de s'authentifier au nom de l'instance SQL Server. L'inscription d'application nécessite également quelques autorisations, qui sont utilisées par SQL Server pour certaines requêtes.
SQL Server utilise un certificat pour cette authentification, qui est stocké dans Azure Key Vault (AKV). L’agent Azure Arc télécharge le certificat sur l’hôte de l’instance SQL Server.
Avertissement
Les connections authentifiées par Microsoft Entra ID sont toujours chiffrées. Si SQL Server utilise un certificat auto-signé, vous devez ajouter trust server cert = true
à la chaîne de connexion. Les connexions authentifiées SQL Server et Windows ne nécessitent pas de chiffrement, mais celui-ci est fortement recommandé.
Créer et inscrire une application Microsoft Entra
- Dans le portail Azure, sélectionnez Microsoft Entra ID>Inscriptions d'applications>Nouvelle inscription.
- Spécifiez un nom : l'exemple de cet article utilise SQLServerCTP1.
- Sélectionnez Types de comptes pris en charge et utilisez Comptes dans cet annuaire organisationnel uniquement
- Ne définissez pas d'URI de redirection
- Sélectionnez Inscrire
Consultez l’inscription d’application ci-dessous :
Octroyer des autorisations aux applications
Sélectionnez l’application nouvellement créée et, dans le menu de gauche, sélectionnez Autorisations d’API.
Sélectionnez Ajouter une autorisation>Microsoft Graph>Autorisations de l’application
- Cochez Directory.Read.All
- Sélectionner Ajouter des autorisations
Sélectionnez Ajouter une autorisation>Microsoft Graph>Autorisations déléguées
- Cochez Application.Read.All
- Cochez Directory.AccessAsUser.All
- Cochez Group.Read.All
- Cochez User.Read.All
- Sélectionner Ajouter des autorisations
Sélectionner Accorder le consentement administrateur
Remarque
Pour octroyer le consentement administrateur aux autorisations ci-dessus, votre compte nécessite un rôle d'administrateur général ou d'administrateur de rôle privilégié.
Créer et attribuer un certificat
Accédez au portail Azure, sélectionnez Coffres de clés, puis sélectionnez le coffre de clés que vous voulez utiliser ou créez-en un. Sélectionnez Certificats>Générer/importer
Pour la Méthode de création de certificat, utilisez Générer.
Ajoutez un nom et un objet de certificat.
La période de validité recommandée est de 12 mois maximum. Vous pouvez laisser les autres valeurs par défaut.
Sélectionnez Créer.
Remarque
Une fois le certificat créé, il peut être désactivé. Actualisez le site pour le voir comme étant activé.
Accédez au nouveau certificat et sélectionnez la ligne de la dernière version du certificat. Sélectionnez Télécharger au format CER pour enregistrer la clé publique du certificat.
Remarque
Vous n’avez pas besoin de le faire sur l’hôte SQL Server, mais plutôt pour tout client qui accède au portail Azure pour l’étape suivante.
Dans le portail Azure, accédez à l'inscription d'application créée ci-dessus et sélectionnez la liste Certificats.
- Sélectionnez Charger un certificat.
- Sélectionnez la clé publique (fichier .cer) téléchargée à la dernière étape.
- Sélectionnez Ajouter.
Dans le portail Azure, accédez à l'instance Azure Key Vault où est stocké le certificat, puis sélectionnez Stratégies d'accès depuis le menu de navigation.
Sélectionnez Créer.
Pour les autorisations de secret, sélectionnez Obtenir et Liste.
Pour Autorisations du certificat, sélectionnez Obtenir et Liste.
Cliquez sur Suivant.
Sur la page Principal, recherchez le nom de votre instance Machine – Azure Arc, qui est le nom de l'hôte du serveur SQL.
Ignorez la page Application (facultative) en sélectionnant Suivant deux fois ou en sélectionnant Vérifier + créer.
Vérifiez que l'« ID d'objet » du Principal correspond à l'ID de principal de l'identité managée attribué à l'instance.
Pour confirmer, accédez à la page de ressources et sélectionnez Affichage JSON en haut à droite de la zone Essentials de la page Vue d'ensemble. Sous l'identité, vous trouverez le principalId
Sélectionnez Créer.
Vous devez sélectionner Créer pour que les autorisations soient appliquées. Pour vous assurer que les autorisations ont bien été stockées, actualisez la fenêtre du navigateur et vérifiez que la ligne correspondant à votre instance Azure Arc est toujours présente.
Configurer l'authentification Microsoft Entra pour SQL Server à partir du portail Azure
Remarque
Il est possible d'utiliser l'Azure CLI, PowerShell ou un modèle ARM pour configurer un administrateur Microsoft Entra pour SQL Server.
Accédez au portail Azure, puis sélectionnez SQL Server – Azure Arc et sélectionnez l’instance de votre hôte SQL Server.
Vérifiez l’état de votre ressource SQL Server - Azure Arc et vérifiez qu’elle est connectée en accédant au menu Propriétés. Pour plus d’informations, consultez Valider les ressources SQL Server - Azure Arc.
Sélectionnez Microsoft Entra ID et Purview sous Paramètres dans le menu des ressources.
Sélectionnez Définir Administration pour ouvrir le volet Microsoft Entra ID, puis choisissez un compte à définir en tant que connexion administrateur pour SQL Server.
Sélectionnez Certificat géré par le client et Sélectionner un certificat.
Sélectionnez Changer le certificat et sélectionnez l'instance AKV et le certificat que vous avez créés précédemment dans le nouveau panneau.
Sélectionnez Inscription d’application gérée par le client.
Sélectionnez Changer l’inscription d’application et sélectionnez l’inscription d’application que vous avez créée précédemment.
Cliquez sur Enregistrer. Cela envoie une demande à l'agent de serveur Arc qui configure l'authentification Microsoft Entra pour cette instance SQL Server.
Il faut plusieurs minutes pour télécharger les certificats et configurer les paramètres. Après avoir défini tous les paramètres et sélectionné Enregistrer dans le portail Azure, le message suivant peut apparaître :
SQL Server's Azure Arc agent is currently processing a request. Values below may be incorrect. Please wait until the agent is done before continuing
. Attendez que le processus d'enregistrement soit confirmé avecSaved successfully
, avant de tenter une connexion Microsoft Entra.L’agent de serveur Azure Arc peut se mettre à jour seulement une fois l’action précédente terminée. Cela signifie que l'enregistrement d'une nouvelle configuration Microsoft Entra avant que la dernière soit terminée peut entraîner un échec. Si vous voyez le message L’appel étendu a échoué quand vous sélectionnez Enregistrer, attendez 5 minutes et réessayez.
Remarque
Une fois la connexion d'administrateur Microsoft Entra accordée au rôle
sysadmin
, la modification de l'administrateur Microsoft Entra dans le Portail Azure ne supprime pas la connexion précédente qui reste en tant quesysadmin
. La suppression de la connexion doit être faite manuellement.La modification de l'administrateur Microsoft Entra pour l'instance SQL Server a lieu sans redémarrage du serveur, une fois le processus terminé avec l'agent Azure Arc de SQL Server. Pour que le nouvel administrateur s'affiche dans
sys.server_principals
, l'instance SQL Server doit être redémarrée et, en attendant, c'est l'ancien administrateur qui est affiché. L'administrateur Microsoft Entra actuel peut être vérifié dans le Portail Azure.
Créer des connexions et des utilisateurs
Lorsque que l'agent Azure Arc sur l'hôte SQL Server a terminé son opération, le compte administrateur sélectionné dans le panneau Microsoft Entra ID du portail passera à sysadmin
sur l'instance SQL Server. Connectez-vous à SQL Server avec le compte d'administrateur Microsoft Entra disposant d'autorisations sysadmin
sur le serveur à l'aide d'un client tel que SSMS ou Azure Data Studio.
Remarque
Toutes les connexions à SQL Server effectuées avec l'authentification Microsoft Entra nécessitent une connexion chiffrée. Si l’administrateur de base de données n’a pas configuré de certificat SSL/TLS approuvé pour le serveur, les connexions risquent d’échouer avec le message La chaîne de certificats a été émise par une autorité qui n’est pas approuvée. Pour corriger ce problème, configurez l’instance SQL Server pour utiliser un certificat SSL/TLS approuvé par le client ou sélectionnez faire confiance au certificat du serveur dans les propriétés de connexion avancées. Pour plus d’informations, consultez Activer les connexions chiffrées au moteur de base de données.
Syntaxe de création de connexion
La même syntaxe utilisée pour créer des connexions et des utilisateurs Microsoft Entra sur Azure SQL Database et Azure SQL Managed Instance peut désormais être utilisée sur SQL Server.
Remarque
Sur SQL Server, tout compte disposant de l'autorisation ALTER ANY LOGIN
ou ALTER ANY USER
peut créer des connexions ou des utilisateurs Microsoft Entra, respectivement. Le compte n'a pas besoin d'être une connexion Microsoft Entra.
Pour créer une connexion pour un compte Microsoft Entra, exécutez la commande T-SQL suivante dans la base de données master
:
CREATE LOGIN [principal_name] FROM EXTERNAL PROVIDER;
Pour les utilisateurs, le nom de principal doit être au format user@tenant.com
. Dans Microsoft Entra ID, il s'agit du nom d'utilisateur principal. Pour tous les autres types de comptes, tels que les groupes ou applications Microsoft Entra, le nom du principal est le nom de l'objet Microsoft Entra.
Voici quelques exemples :
-- login creation for Microsoft Entra user
CREATE LOGIN [user@contoso.com] FROM EXTERNAL PROVIDER;
GO
-- login creation for Microsoft Entra group
CREATE LOGIN [my_group_name] FROM EXTERNAL PROVIDER;
GO
-- login creation for Microsoft Entra application
CREATE LOGIN [my_app_name] FROM EXTERNAL PROVIDER;
GO
Pour lister les connexions Microsoft Entra dans la base de données master
, exécutez la commande T-SQL :
SELECT * FROM sys.server_principals
WHERE type IN ('E', 'X');
Pour accorder à un utilisateur Microsoft Entra une appartenance au rôle sysadmin
(par exemple admin@contoso.com
), exécutez les commandes suivantes dans master
:
CREATE LOGIN [admin@contoso.com] FROM EXTERNAL PROVIDER;
GO
ALTER SERVER ROLE sysadmin ADD MEMBER [admin@contoso.com];
GO
La procédure stockée sp_addsrvrolemember
doit être exécutée par un membre du rôle serveur sysadmin
SQL Server.
Syntaxe de création d’utilisateur
Vous pouvez créer un utilisateur de base de données à partir de Microsoft Entra ID en tant qu'utilisateur de base de données associé à un principal de serveur (connexion) ou en tant qu'utilisateur de base de données autonome.
Pour créer un utilisateur Microsoft Entra à partir d'une connexion Microsoft Entra dans une base de données SQL Server, utilisez la syntaxe suivante :
CREATE USER [principal_name] FROM LOGIN [principal_name];
La syntaxe principal_name
est la même que pour les connexions.
Voici quelques exemples :
-- for Azure AD user
CREATE USER [user@contoso.com] FROM LOGIN [user@contoso.com];
GO
-- for Azure AD group
CREATE USER [my_group_name] FROM LOGIN [my_group_name];
GO
-- for Azure AD application
CREATE USER [my_app_name] FROM LOGIN [my_app_name];
GO
Pour créer un utilisateur de base de données autonome Microsoft Entra, qui est un utilisateur qui n'est pas lié à une connexion de serveur, la syntaxe suivante peut être exécutée :
CREATE USER [principal name] FROM EXTERNAL PROVIDER;
Utilisez le nom du groupe Microsoft Entra ou le nom de l'application Microsoft Entra comme <principal name>
lors de la création d'un utilisateur de base de données Microsoft Entra à partir d'un groupe ou d'une application.
Voici quelques exemples :
-- for Azure AD contained user
CREATE USER [user@contoso.com] FROM EXTERNAL PROVIDER;
GO
-- for Azure AD contained group
CREATE USER [my_group_name] FROM EXTERNAL PROVIDER;
GO
--for Azure AD contained application
CREATE USER [my_group_name] FROM EXTERNAL PROVIDER;
GO
Pour lister les utilisateurs créés dans la base de données, exécutez la commande T-SQL suivante :
SELECT * FROM sys.database_principals;
Un nouvel utilisateur de base de données reçoit l'autorisation Connecter par défaut. Toutes les autres autorisations SQL Server pour cet utilisateur doivent être accordées explicitement.
Compte invité Microsoft Entra
La syntaxe CREATE LOGIN
et CREATE USER
prend également en charge les utilisateurs invités. Par exemple, si testuser@outlook.com
est invité au locataire contoso.com
, il peut être ajouté en tant que connexion à SQL Server avec la même syntaxe que la création d'un autre utilisateur ou connexion Microsoft Entra. Lors de la création d'utilisateurs invités et de connexions, utilisez l'e-mail d'origine du compte invité, et non son nom d'utilisateur principal dans le locataire. Dans l'exemple, outlook.com
est fourni même si le compte est inscrit dans le locataire contoso.com
.
Créer un utilisateur invité avec une connexion existante
CREATE USER [testuser@outlook.com] FROM LOGIN [testuser@outlook.com];
Créer un utilisateur invité comme utilisateur autonome
CREATE USER [testuser@outlook.com] FROM EXTERNAL PROVIDER;
Se connecter avec une méthode d’authentification prise en charge
SQL Server prend en charge les méthodes d'authentification Microsoft Entra suivantes :
- Par défaut
- Nom d'utilisateur et mot de passe
- Intégré
- Universelle avec l'authentification multifacteur
- Principal du service
- Identité managée
- Access token (Jeton d'accès)
Utilisez l’une de ces méthodes pour vous connecter à l’instance SQL Server. Pour plus d'informations, consultez Authentification Microsoft Entra pour SQL Server.
Exemple d’authentification avec SSMS
Remarque
Bien que Microsoft Entra ID soit le nouveau nom d’Azure Active Directory (Azure AD) pour empêcher l’interruption des environnements existants, Azure AD reste toujours dans certains éléments codés en dur, tels que les champs d’interface utilisateur, les fournisseurs de connexions, les codes d’erreur et cmdlets. Dans cet article, les deux noms sont interchangeables.
Voici l'instantané de la page de connexion de SQL Server Management Studio (SSMS) qui utilise la méthode d'authentification, Azure Active Directory – Universelle avec MFA.
Pendant le processus d’authentification, une base de données dans laquelle l’utilisateur a été créé doit explicitement être indiquée dans SSMS. Développez Options > Propriétés de connexion > Se connecter à la base de données : database_name
.
Pour plus d’informations, consultez Utilisation de l’authentification multifacteur Microsoft Entra.
Les outils SQL Server qui prennent en charge l'authentification Microsoft Entra pour Azure SQL sont également pris en charge pour SQL Server 2022 (16.x).
Emplacement de stockage des paramètres Microsoft Entra ID
Avertissement
Les paramètres Microsoft Entra ID sont configurés par l'agent Azure Arc et ne doivent pas être reconfigurés manuellement.
Sur Linux, les paramètres Microsoft Entra ID sont stockés dans mssql-conf
. Pour plus d'informations, consultez Configurer SQL Server sur Linux avec l'outil mssql-conf.
Problèmes connus
- La mise à jour du certificat ne se propage pas :
Une fois l'authentification Microsoft Entra configurée pour SQL Server, la mise à jour du certificat dans le volet Microsoft Entra ID et Purview de la ressource SQL Server – Azure Arc peuvent ne pas se propager entièrement. Le résultat indique que l’enregistrement est réussi, mais l’ancienne valeur est toujours affichée. Pour mettre à jour le certificat, effectuez les étapes suivantes :
- Sélectionnez Supprimer l’administrateur.
- Cliquez sur Enregistrer.
- Sélectionnez Définir l'administrateur et reconfigurez l'authentification Microsoft Entra avec le nouveau certificat.
- Sélectionnez Enregistrer.