Utiliser Authentification Microsoft Entra

S’applique à :Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

Cet article présente une vue d’ensemble de l’utilisation de Microsoft Entra ID (anciennement Azure Active Directory) pour s’authentifier auprès d’Azure SQL Database, Azure SQL Managed Instance, SQL Server sur machines virtuelles Windows Azure, Synapse SQL dans Azure Synapse Analytics et SQL Server pour Windows et Linux.

Pour savoir comment créer et renseigner Microsoft Entra ID, puis configurer Microsoft Entra ID avec Azure SQL Database, Azure SQL Managed Instance et Synapse SQL dans Azure Synapse Analytics, consultez Configurer Microsoft Entra ID et Microsoft Entra ID avec SQL Server sur les machines virtuelles Azure.

Remarque

Microsoft Entra ID est le nouveau nom d'Azure Active Directory (Azure AD). Nous sommes en train de mettre à jour la documentation.

Vue d’ensemble

Avec l’authentification Microsoft Entra, vous pouvez gérer de manière centralisée les identités des utilisateurs de base de données et d’autres services Microsoft dans un emplacement central. La gestion centralisée des ID fournit un emplacement unique pour gérer les utilisateurs de la base de données et simplifie la gestion des autorisations. Les avantages suivants sont inclus :

  • Elle fournit une alternative à l’authentification SQL Server.

  • Elle aide à bloquer la prolifération des identités utilisateur sur plusieurs serveurs.

  • Elle permet une rotation du mot de passe dans un emplacement unique.

  • Les clients peuvent gérer les autorisations de base de données à l’aide de groupes Microsoft Entra.

  • Il peut éliminer le stockage des mots de passe en activant l’authentification intégrée Windows et les autres formes d’authentification prises en charge par Microsoft Entra ID.

  • L’authentification Microsoft Entra utilise les utilisateurs de base de données autonome pour authentifier les identités au niveau de la base de données.

  • Microsoft Entra ID prend en charge l’authentification basée sur des jetons pour les applications se connectant à SQL Database et SQL Managed Instance.

  • L’authentification Microsoft Entra prend en charge :

    • Les identités uniquement cloud Microsoft Entra.
    • Les identités hybrides Microsoft Entra qui prennent en charge :
      • L’authentification dans le cloud avec deux options associées à l’authentification unique (SSO) fluide : authentification directe et authentification avec hachage de mot de passe.
      • Authentification fédérée.
    • Pour plus d'informations sur les méthodes d'authentification Microsoft Entra et laquelle choisir, consultez l'article suivant :
  • SQL Server Management Studio prend en charge les connexions qui utilisent Microsoft Entra avec l’authentification multifacteur. L’authentification multifacteur fournit une authentification forte avec diverses options de vérification (appel téléphonique, SMS, cartes à puce avec code PIN ou notification d’application mobile). Pour plus d’informations, consultez Prise en charge de SSMS pour l’authentification multifacteur Microsoft Entra avec Azure SQL Database, SQL Managed Instance et Azure Synapse

  • SQL Server Data Tools (SSDT) prend également en charge un large éventail d’options d’authentification avec Microsoft Entra ID. Pour plus d'informations, consultez la rubrique Prise en charge de Microsoft Entra ID dans SQL Server Data Tools (SSDT).

Les étapes de configuration incluent les procédures suivantes pour configurer et utiliser l’authentification Microsoft Entra.

  1. Créer et alimenter un locataire Microsoft Entra.
  2. Facultatif : associez ou modifiez l’annuaire active associée à votre abonnement Azure.
  3. Créer un administrateur Microsoft Entra.
  4. Configurer vos ordinateurs clients.
  5. Créer des utilisateurs de base de données autonome dans votre base de données mappés sur les identités Microsoft Entra.
  6. Vous connecter à votre base de données avec des identités Microsoft Entra.

Remarque

Pour Azure SQL, les machines virtuelles Azure et SQL Server 2022, l’authentification Microsoft Entra ne prend en charge que les jetons d’accès qui proviennent de Microsoft Entra ID et ne prend pas en charge les jetons d’accès tiers. Microsoft Entra ID ne prend également pas en charge la redirection des requêtes de Microsoft Entra ID vers des points de terminaison tiers. Cela s’applique à toutes les plateformes SQL et à tous les systèmes d’exploitation qui prennent en charge l’authentification Microsoft Entra.

Architecture d’approbation

  • Seule la partie cloud de Microsoft Entra ID, SQL Database, SQL Managed Instance, SQL Server sur les machines virtuelles Windows Azure et Azure Synapse est prise en compte pour prendre en charge les mots de passe des utilisateurs natifs de Microsoft Entra.
  • Pour prendre en charge les informations d’identification de l’authentification unique Windows (ou utilisateur/mot de passe pour les identifiants Windows), utilisez les identifiants Microsoft Entra à partir d’un domaine fédéré ou managé, configuré pour une authentification unique transparente, à des fins d’authentification directe et d’authentification par hachage du mot de passe. Pour plus d’informations, consultez la Authentification unique transparente de Microsoft Entra.
  • Pour prendre en charge l’authentification fédérée (ou utilisateur/mot de passe pour les informations d’identification Windows), la communication avec le bloc ADFS est requise.

Pour plus d’informations sur les identités hybrides Microsoft Entra, la configuration et la synchronisation, consultez les articles suivants :

Pour obtenir un exemple d’authentification fédérée avec l’infrastructure ADFS (ou utilisateur/mot de passe pour les informations d’identification Windows), consultez le diagramme ci-dessous. Les flèches indiquent les voies de communication.

Diagram of Microsoft Entra authentication for Azure SQL.

Le diagramme suivant indique la fédération, l’approbation et les relations d’hébergement qui autorisent un client à se connecter à une base de données en soumettant un jeton. Le jeton est authentifié par Microsoft Entra ID, et approuvé par la base de données. Le client 1 peut représenter Microsoft Entra ID avec des utilisateurs natifs ou avec des utilisateurs fédérés. Le client 2 représente une solution possible incluant des utilisateurs importés qui, dans cet exemple, proviennent d’une fédération Microsoft Entra ID dont l’ADFS est synchronisé avec Microsoft Entra ID. Il est important de comprendre que l’accès à une base de données à l’aide de l’authentification Microsoft Entra exige que l’abonnement d’hébergement soit associé à Microsoft Entra ID. Le même abonnement doit être utilisé pour créer les ressources Azure SQL Database, SQL Managed Instance ou Azure Synapse.

Diagram shows the relationship between subscriptions in the Microsoft Entra configuration.

Structure de l’administrateur

En cas d’utilisation de l’authentification Microsoft Entra, il existe deux comptes administrateur : l’administrateur d’origine d’Azure SQL Database et l’administrateur de Microsoft Entra. Les mêmes concepts s’appliquent à Azure Synapse. Seul l’administrateur basé sur un compte Microsoft Entra peut créer le premier utilisateur de la base de données autonome Microsoft Entra ID dans une base de données utilisateur. La connexion administrateur Microsoft Entra peut être un utilisateur Microsoft Entra ou un groupe Microsoft Entra. Lorsque l’administrateur est un compte de groupe, il peut être utilisé par n’importe quel membre du groupe, activant plusieurs administrateurs Microsoft Entra pour le serveur. L’utilisation d’un compte de groupe en tant qu’administrateur facilite la gestion en vous permettant d’ajouter et de supprimer de manière centralisée des membres du groupe dans Microsoft Entra ID sans modifier les utilisateurs ou les autorisations dans SQL Database ou Azure Synapse. Seul un administrateur Microsoft Entra (utilisateur ou groupe) peut être configuré à tout moment.

Diagram shows the administrator structure for Microsoft Entra ID used with SQL Server.

Remarque

L’authentification Microsoft Entra avec Azure SQL prend en charge un locataire Microsoft Entra unique où la ressource Azure SQL réside actuellement. Tous les objets Microsoft Entra de ce locataire peuvent être configurés en tant qu’utilisateurs autorisant l’accès à Azure SQL dans ce locataire. L’administrateur Microsoft Entra doit également provenir du locataire de la ressource Azure SQL. L’authentification multilocataire Microsoft Entra avec accès à Azure SQL à partir de différents locataires n’est pas prise en charge.

Autorisations

Pour créer de nouveaux utilisateurs, vous devez disposer de l’autorisation ALTER ANY USER dans la base de données. L’autorisation ALTER ANY USER peut être octroyée à un utilisateur de base de données. L’autorisation ALTER ANY USER est également détenue par les comptes d’administrateur de serveur et les utilisateurs de base de données avec les autorisations CONTROL ON DATABASE ou ALTER ON DATABASE pour cette base de données et par les membres du rôle de base de données db_owner.

Pour créer un utilisateur de base de données autonome dans Azure SQL Database, Azure SQL Managed Instance ou Azure Synapse, vous devez vous connecter à la base de données ou à l’instance avec une identité Microsoft Entra. Pour créer le premier utilisateur de la base de données autonome, vous devez vous connecter à la base de données à l’aide d’un administrateur Microsoft Entra (lequel est le propriétaire de la base de données). Cette procédure est expliquée dans Configurer et gérer l’authentification Microsoft Entra avec SQL Database ou Azure Synapse. L’authentification Microsoft Entra est possible seulement si l’administrateur Microsoft Entra a été créé pour Azure SQL Database, SQL Managed Instance ou Azure Synapse. Si l’administrateur Microsoft Entra a été supprimé du serveur, les utilisateurs Microsoft Entra existants créés précédemment à l’intérieur du serveur ne peuvent plus se connecter à la base de données à l’aide de leurs informations d’identification Microsoft Entra.

Fonctionnalités et limitations de Microsoft Entra

  • Les membres suivants de Microsoft Entra ID peuvent être provisionnés pour Azure SQL Database :

    • Membres natifs : un membre créé dans Microsoft Entra ID dans le domaine géré ou le domaine client. Pour plus d’informations, consultez Ajouter votre nom de domaine personnalisé à Microsoft Entra ID.
    • Membres d’un domaine Active Directory fédéré avec Microsoft Entra ID sur un domaine managé et configuré pour l’authentification unique transparente, avec authentification directe ou par hachage du mot de passe. Pour plus d’informations, consultez Fédération avec Microsoft Entra ID et Authentification unique transparente de Microsoft Entra.
    • Utilisateurs invités, fonctionnalité externe Microsoft Entra ID qui vous permet d’inviter des utilisateurs dans votre locataire Microsoft Entra, à partir de comptes situés en dehors de votre locataire Microsoft Entra.
    • Groupes Active Directory créés en tant que groupes de sécurité.
  • Les utilisateurs Microsoft Entra qui font partie d’un groupe membre du rôle de base de données db_owner ne peuvent pas utiliser la syntaxe CREATE DATABASE SCOPED CREDENTIAL dans Azure SQL Database ni dans Azure Synapse. L’erreur suivante apparaît :

    SQL Error [2760] [S0001]: The specified schema name 'user@mydomain.com' either doesn't exist or you do not have permission to use it.

    Pour atténuer le problème lié à CREATE DATABASE SCOPED CREDENTIAL, accordez le rôle db_owner directement à l’utilisateur individuel Microsoft Entra.

  • Ces fonctions système ne sont pas prises en charge. Elles renvoient des valeurs NULL lorsqu’elles sont exécutées sous des principaux Microsoft Entra :

    • SUSER_ID()
    • SUSER_NAME(<ID>)
    • SUSER_SNAME(<SID>)
    • SUSER_ID(<name>)
    • SUSER_SID(<name>)
  • Azure SQL Database ne crée pas d’utilisateurs implicites pour les utilisateurs qui sont connectés dans le cadre d’une appartenance à un groupe Microsoft Entra. Pour cette raison, diverses opérations qui nécessitent une attribution de propriété échouent, même si le groupe Microsoft Entra est ajouté comme membre à un rôle disposant de ces autorisations.

    Par exemple, un utilisateur connecté à une base de données par le biais d’un groupe Microsoft Entra avec le rôle db_ddladmin ne pourra pas exécuter les instructions CREATE SCHEMA, ALTER SCHEMA et d’autres instructions de création d’objets sans avoir un schéma explicitement défini (à l’instar d’une table, une vue ou un type). Pour résoudre ce problème, un utilisateur Microsoft Entra doit être créé pour cet utilisateur, ou le groupe Microsoft Entra doit être modifié afin d’attribuer DEFAULT_SCHEMA à dbo.

SQL Managed Instance

  • Les principaux de serveur (connexions) et les utilisateurs Microsoft Entra sont pris en charge pour SQL Managed Instance.

  • La définition des connexions Microsoft Entra mappées à un groupe Microsoft Entra en tant que propriétaire de base de données n’est pas prise en charge dans SQL Managed Instance.

    • Par extension, quand vous ajoutez un groupe dans le cadre du rôle serveur dbcreator, les utilisateurs de ce groupe peuvent se connecter à SQL Managed Instance et créer des bases de données, mais non accéder à la base de données. En effet, le propriétaire de la nouvelle base de données est SA et non l’utilisateur Microsoft Entra. Ce problème ne se manifeste pas si le rôle serveur dbcreator est accordé à l’utilisateur concerné.
  • La gestion de l'agent SQL et l'exécution des tâches sont prises en charge pour les connexions Microsoft Entra.

  • Les opérations de sauvegarde et de restauration de base de données peuvent être exécutées par les principaux de serveur (connexions) Microsoft Entra.

  • L’audit de toutes les instructions liées aux principaux de serveur (connexions) Microsoft Entra et aux événements d’authentification est pris en charge.

  • La connexion administrateur dédiée destinée aux principaux de serveur (connexions) Microsoft Entra, membres du rôle serveur sysadmin, est prise en charge.

    • Prise en charge par le biais de l’utilitaire SQLCMD et de SQL Server Management Studio.
  • Les déclencheurs d’ouverture de session sont pris en charge pour les événements d’ouverture de session provenant de principaux de serveur (connexions) Microsoft Entra.

  • Vous pouvez configurer Service Broker et DB mail à l’aide d’un principal de serveur (connexion) Microsoft Entra.

Se connecter en utilisant des identités Microsoft Entra

L’authentification Microsoft Entra prend en charge les méthodes suivantes de connexion à une base de données à l'aide des identités Microsoft Entra :

  • Mot de passe Microsoft Entra
  • Microsoft Entra intégré
  • Microsoft Entra Universal avec authentification multifacteur
  • À l’aide de l’authentification par jeton d’application

Les méthodes d’authentification suivantes sont prises en charge pour les principaux de serveur (connexions) Microsoft Entra :

  • Mot de passe Microsoft Entra
  • Microsoft Entra intégré
  • Microsoft Entra Universal avec authentification multifacteur

Considérations supplémentaires

  • Pour améliorer la facilité de gestion, nous vous recommandons de provisionner un groupe Microsoft Entra dédié en tant qu’administrateur.
  • Un seul administrateur Microsoft Entra (utilisateur ou groupe) peut être configuré pour un serveur dans SQL Database ou Azure Synapse à tout moment.
    • L’ajout de principaux de serveur (connexions) Microsoft Entra pour SQL Managed Instance permet de créer plusieurs principaux de serveur (connexions) Microsoft Entra pouvant être ajoutés au rôle sysadmin.
  • Seul un administrateur Microsoft Entra pour le serveur peut initialement se connecter au serveur ou à l’instance managée à l’aide d’un compte Microsoft Entra. L’administrateur Microsoft Entra peut configurer les utilisateurs de base de données Microsoft Entra suivants.
  • Les utilisateurs Microsoft Entra et les principaux de service (applications Microsoft Entra), membres de plus de 2048 groupes de sécurité Microsoft Entra, ne sont pas pris en charge pour la connexion à la base de données dans SQL Database, SQL Managed Instance ou Azure Synapse.
  • Nous vous conseillons de définir l’expiration du délai de connexion à 30 secondes.
  • SQL Server 2016 Management Studio et SQL Server Data Tools pour Visual Studio 2015 (version 14.0.60311.1 d’avril 2016 ou ultérieure) prennent en charge l’authentification Microsoft Entra. (L’authentification Microsoft Entra est prise en charge par le Fournisseur de données .NET Framework pour SQL Server ; .NET Framework version 4.6 minimum). Par conséquent, les dernières versions de ces outils et applications de la couche Données (DAC et BACPAC) peuvent utiliser l’authentification Microsoft Entra.
  • À partir de la version 15.0.1, l’utilitaire sqlcmd et l’utilitaire bcp prennent en charge l’authentification interactive Active Directory ainsi que l’authentification multifacteur.
  • SQL Server Data Tools pour Visual Studio 2015 requiert la version d’avril 2016 (version 14.0.60311.1) ou une version ultérieure. Actuellement, les utilisateurs Microsoft Entra ne sont pas affichés dans l’explorateur d’objets SSDT. Comme solution de contournement, vous pouvez afficher les utilisateurs dans sys.database_principals.
  • Le pilote Microsoft JDBC 6.0 pour SQL Server prend en charge l’authentification Microsoft Entra. Consultez également Définition des propriétés de connexion.
  • PolyBase ne peut pas s’authentifier avec l’authentification Microsoft Entra.
  • L’authentification Microsoft Entra est prise en charge pour Azure SQL Database et Azure Synapse en utilisant les panneaux Importer la base de données et Exporter la base de données du portail Azure. L’importation et l’exportation à l’aide de l’authentification Microsoft Entra sont également prises en charge depuis une invite de commandes PowerShell.
  • L’authentification Microsoft Entra est prise en charge pour SQL Database, SQL Managed Instance et Azure Synapse via l’interface de ligne de commande (CLI). Pour plus d’informations, consultez Configurer et gérer l’authentification Microsoft Entra avec SQL Database ou Azure Synapse et SQL Server - az sql server.

Étapes suivantes