Authentification Microsoft Entra pour Azure Synapse Analytics

Cet article offre un aperçu approfondi de l’utilisation de l’authentification Microsoft Entra avec Synapse SQL dans Azure Synapse Analytics.

Note

Les principaux de serveur Microsoft Entra sont actuellement en préversion pour Azure Synapse Analytics.

Pour configurer l’authentification Microsoft Entra, consultez Configurer et gérer l’authentification Microsoft Entra avec Azure Synapse Analytics.

Overview

Microsoft Entra ID vous permet de gérer de manière centralisée les identités des humains et des services dans votre patrimoine de données. En intégrant Microsoft Entra à Azure Synapse Analytics pour l’authentification, vous pouvez simplifier la gestion des identités et des permissions tout en permettant un accès conditionnel détaillé et une gouvernance sur les connexions à vos données.

L’utilisation de l’authentification Microsoft Entra offre les avantages suivants :

  • Remplace les méthodes d'authentification moins sûres telles que les noms d'utilisateur et les mots de passe.
  • Supprime ou aide à bloquer la prolifération des identités utilisateur sur plusieurs serveurs.
  • Les groupes Microsoft Entra permettent à la gestion des autorisations de base de données d’être extraite des comptes individuels et dans des groupes opérationnels.
  • Permet une rotation du mot de passe dans un emplacement unique.
  • L'authentification Microsoft Entra-only constitue une alternative complète à l'authentification SQL.
  • Les identités managées pour les ressources Azure éliminent la nécessité de stocker des mots de passe pour les services qui se connectent à vos bases de données et les connexions de vos bases de données à d’autres ressources Azure.
  • Permet des contrôles de sécurité modernes, y compris une authentification multifactorielle forte avec une gamme d'options de vérification simples, telles qu'un appel téléphonique, un SMS, une carte à puce avec code PIN ou une notification d'application mobile.
  • Microsoft Entra ID permet l’intégration à de nombreux protocoles d’authentification modernes, notamment OpenID Connect, OAuth2.0, délégation Kerberos contrainte, etc.
  • Permet une surveillance centralisée des connexions aux sources de données.
  • Active les contrôles d’accès conditionnel, tels que l’exigence d’appareils conformes ou de méthodes d’authentification pour les connexions réussies.

Note

L'authentification Microsoft Entra ne prend en charge que les jetons d'accès provenant de Microsoft Entra ID, et non les jetons d'accès de 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. Cette limitation s’applique à toutes les plateformes SQL et à tous les systèmes d’exploitation prenant en charge l’authentification Microsoft Entra.

Étapes de configuration

Les étapes générales de la configuration de l'authentification Microsoft Entra sont les suivantes :

  1. Créer et alimenter un locataire Microsoft Entra.
  2. Créez un espace de travail Azure Synapse ou un pool SQL dédié autonome.
  3. Assignez un administrateur Microsoft Entra à l’espace de travail ou au serveur logique.
  4. Créez des entités SQL dans votre base de données associées aux identités Microsoft Entra.
  5. Configurez vos applications clientes pour qu’elles se connectent en utilisant les bibliothèques d’identité Azure et les méthodes d’authentification.
  6. Vous connecter à votre base de données avec des identités Microsoft Entra.

Identités et méthodes d’authentification prises en charge

Azure Synapse Analytics prend en charge l’utilisation des identités Microsoft Entra suivantes comme connexions et utilisateurs (principaux de sécurité) dans Synapse SQL :

  • Utilisateurs de Microsoft Entra : tout type d’utilisateur dans un client Microsoft Entra, y compris les membres internes, externes, invités et membres. Les membres d'un domaine Active Directory fédéré avec Microsoft Entra ID sont également pris en charge et peuvent être configurés pour une connexion avec authentification unique transparente.
  • Applications : Les applications existant dans Azure peuvent utiliser des principaux de service ou des identités gérées pour s’authentifier directement auprès d’Azure Synapse Analytics. L’utilisation d’identités managées est préférable car l’authentification est sans mot de passe et élimine le besoin d’identifiants gérés par les développeurs.
  • Les Groupes Microsoft Entra, qui peuvent simplifier la gestion des accès au sein de votre organisation en gérant l’accès des utilisateurs et des applications appropriés en fonction de leur appartenance au groupe.

Les méthodes d'authentification suivantes sont prises en charge pour les identités des utilisateurs :

  • Microsoft Entra Integrated (Authentification Windows) pris en charge par Microsoft Entra Hybrid Identities with Active Directory [federation].
  • Microsoft Entra MFA ou l’authentification multifacteur, qui nécessite des vérifications de sécurité supplémentaires au-delà de ce que sait l'utilisateur.
  • Authentification par mot de passe Microsoft Entra, qui utilise les informations d’identification utilisateur stockées et gérées dans l’ID Microsoft Entra.
  • Authentification Microsoft Entra par défaut, qui analyse différents caches d’informations d’identification sur la machine de l’application et peut utiliser des jetons utilisateur pour s’authentifier auprès de SQL.

Pour les identités de service ou de charge de travail, les méthodes d’authentification suivantes sont prises en charge :

  • Identités gérées pour les ressources Azure, qu'elles soient attribuées par l'utilisateur ou par le système. L’authentification d’identité managée est basée sur des jetons, dans laquelle l’identité est affectée à la ressource qui souhaite s’authentifier à l’aide de celle-ci. La plateforme Azure Identity valide cette relation, qui active l’authentification sans mot de passe.
  • Nom du principal du service Microsoft Entra et secret de l'application (client). Cette méthode d’authentification n’est pas recommandée en raison du risque associé à la divulgation des mots de passe.
  • Authentification Microsoft Entra par défaut, qui analyse différents caches d’informations d’identification sur la machine de l’application et peut utiliser des jetons d’application pour s’authentifier sur SQL.

Administrateur Microsoft Entra

Pour permettre l’authentification Microsoft Entra, un administrateur Microsoft Entra doit être configuré pour votre espace de travail Azure Synapse ou serveur logique. Cet administrateur coexiste aux côtés de l’administrateur SQL. L’administrateur Microsoft Entra peut être un utilisateur, un groupe, un principal de service ou une identité gérée dans votre locataire Azure. Une seule identité peut être configurée à la fois. Supprimer l’administrateur Microsoft Entra désactive les connexions basées sur l’authentification Microsoft Entra, même pour les utilisateurs existants de Microsoft Entra disposant d’autorisations dans une base de données.

Tip

Les groupes Microsoft Entra permettent à plusieurs identités d’agir en tant qu’administrateur Microsoft Entra sur le serveur. Lorsque l’administrateur est défini sur un groupe, tous les membres du groupe héritent du rôle d’administrateur Microsoft Entra. Un administrateur de groupe Microsoft Entra améliore la gestion en déplaçant la gestion administrative des actions du plan de données vers Microsoft Entra ID et la responsabilité des propriétaires de groupe. Les groupes peuvent être utilisés pour toutes les identités Microsoft Entra qui se connectent à SQL, ce qui permet une configuration d’utilisateur et d’autorisation unique dans le serveur et les bases de données, en laissant toute la gestion des utilisateurs aux groupes.

L'administrateur Microsoft Entra joue un rôle spécial : il s'agit du premier compte qui peut créer d'autres connexions et utilisateurs Microsoft Entra, collectivement appelés principaux. L’administrateur est un utilisateur de base de données autonome dans la base de données master du serveur. Les comptes administrateur de serveur sont des membres du rôle db_owner de chaque base de données utilisateur, et chaque base de données d'utilisateurs est saisie en tant qu'utilisateur dbo. Pour plus d'informations sur les comptes administrateur, consultez Gestion des bases de données et des connexions.

Entités principales de Microsoft Entra

Note

Les principaux serveur Microsoft Entra (ouvertures de session) sont actuellement en préversion pour Azure Synapse Analytics.

Vous pouvez créer des identités Microsoft Entra en tant que principaux de sécurité dans Azure Synapse Analytics de trois manières :

  • en tant que principaux au niveau du serveur ou identifiants de connexion
  • en tant qu’utilisateurs basés sur un login (un type de principal de base de données)
  • en tant qu’utilisateurs de base de données autonome

Important

L’authentification Microsoft Entra pour Azure SQL ne s’intègre pas à Azure RBAC. Pour utiliser les identités Microsoft Entra afin de se connecter à Azure SQL et d’exécuter des requêtes, vous devez créer ces identités en tant qu’entités de sécurité Microsoft Entra dans les bases de données auxquelles elles doivent accéder. Les rôles SQL Server Contributor et SQL DB Contributor sécurisent les opérations de déploiement liées à la gestion, pas l’accès à la connectivité à la base de données.

Identifiants (principaux du serveur) dans des pools SQL dédiés

Les principaux serveur (comptes de connexion) pour les identités Microsoft Entra sont en aperçu pour les pools SQL dédiés Azure Synapse Analytics.

Le T-SQL suivant montre comment créer une connexion Microsoft Entra :

CREATE LOGIN [MSEntraUser] FROM EXTERNAL PROVIDER

Une connexion Microsoft Entra a les valeurs de propriété suivantes dans sys.server_principals :

Property Value
SID (Identificateur de sécurité) Représentation binaire de l’ID d’objet de l’identité Microsoft Entra
type E = Connexion externe ou application à partir de l’ID Microsoft Entra
X = Groupe externe issu de l’identifiant Microsoft Entra
type_desc EXTERNAL_LOGIN pour la connexion ou l’application Microsoft Entra
EXTERNAL_GROUP pour le groupe Microsoft Entra

Utilisateurs basés sur la connexion

Les utilisateurs basés sur une connexion héritent des rôles et autorisations au niveau du serveur affectés à leur connexion Microsoft Entra.

Le T-SQL suivant montre comment créer un utilisateur basé sur une connexion pour une identité Microsoft Entra :

CREATE USER [MSEntraUser] FROM LOGIN [MSEntraUser]

Le tableau suivant détaille les valeurs des propriétés utilisateur basées sur la connexion à Microsoft Entra dans sys.database_principals :

Property Value
SID (Identificateur de sécurité) Représentation binaire de l’ID d’objet de l’identité Microsoft Entra, ainsi que « AADE ».
type E = Connexion externe ou application à partir de l’ID Microsoft Entra
X = Groupe externe issu de l’identifiant Microsoft Entra
type_desc EXTERNAL_LOGIN pour la connexion ou l’application Microsoft Entra
EXTERNAL_GROUP pour le groupe Microsoft Entra

Utilisateurs de base de données autonome

Les utilisateurs de base de données contenus sont portables avec la base de données. Ils n’ont aucun lien avec les identités définies dans le serveur ou l’instance, et vous pouvez facilement les déplacer avec la base de données d’un serveur ou d’une instance à une autre sans interruption.

Le T-SQL suivant montre comment créer un utilisateur de base de données autonome pour une identité Microsoft Entra :

CREATE USER [MSEntraUser] FROM EXTERNAL PROVIDER

Un utilisateur défini dans une base de données Microsoft Entra possède les mêmes valeurs de propriété que les utilisateurs définis sur la connexion dans sys.database_principals, à l'exception de la méthode de construction du SID.

Property Value
SID (Identificateur de sécurité) Représentation binaire de l’ID d’objet de l’identité Microsoft Entra
type E = Connexion externe ou application à partir de l’ID Microsoft Entra
X = Groupe externe issu de l’identifiant Microsoft Entra
type_desc EXTERNAL_LOGIN pour la connexion ou l’application Microsoft Entra
EXTERNAL_GROUP pour le groupe Microsoft Entra

Pour obtenir le GUID Microsoft Entra d’origine sur lequel le SID code est basé, utilisez la conversion T-SQL suivante :

SELECT CAST(sid AS UNIQUEIDENTIFIER) AS EntraID FROM sys.database_principals

Avertissement

Vous pourriez involontairement créer un utilisateur contenu de la base de données Microsoft Entra avec le même nom qu’une connexion Microsoft Entra au niveau du serveur ou de l’instance. Comme les principaux de sécurité ne sont pas connectés entre eux, l’utilisateur de la base de données n’hérite pas des permissions de la connexion serveur. Les identités peuvent se confondre dans les requêtes de connexion, entraînant un comportement indéfini.

Utilisez la requête T-SQL suivante pour déterminer si un utilisateur de base de données est un utilisateur basé sur la connexion ou un utilisateur de base de données autonome :

SELECT CASE
    WHEN CONVERT(VARCHAR(100), sid, 2) LIKE '%AADE' AND len(sid) = 18 THEN 'login-based user'
    ELSE 'contained database user'
    END AS user_type,
    *
FROM sys.database_principals WHERE TYPE = 'E' OR TYPE = 'X'

Utilisez la requête T-SQL suivante pour voir tous les principaux Microsoft Entra dans une base de données :

SELECT
  name,
  CAST(sid AS UNIQUEIDENTIFIER) AS EntraID,
  CASE WHEN TYPE = 'E' THEN 'App/User' ELSE 'Group' AS user_type,
  sid
FROM sys.database_principals WHERE TYPE = 'E' OR TYPE = 'X'

Authentification avec Microsoft Entra uniquement

Lorsque vous activez l’authentification Microsoft Entra uniquement, vous désactivez l’authentification SQL. Vous ne pouvez pas utiliser l’authentification SQL pour vous connecter à l’espace de travail, au pool SQL ou à la base de données.

Pour commencer, consultez Configurer l’authentification Microsoft Entra uniquement.

Authentification multifacteur (MFA)

L’authentification multifacteur Microsoft Entra est une fonctionnalité de sécurité fournie par le service de gestion des identités et des accès basé sur le cloud de Microsoft. L’authentification multifacteur (MFA) améliore la sécurité des connexions utilisateur en obligeant les utilisateurs à fournir des étapes de vérification supplémentaires autres qu’un mot de passe.

L’authentification multifacteur Microsoft Entra permet de sécuriser l’accès aux données et aux applications tout en répondant aux besoins des utilisateurs qui demandent un processus de connexion simple. L’authentification multifacteur ajoute une couche de sécurité supplémentaire aux connexions utilisateur en obligeant les utilisateurs à fournir deux facteurs d’authentification ou plus. Ces facteurs incluent généralement quelque chose que l’utilisateur sait (mot de passe), quelque chose que l’utilisateur possède (smartphone ou module de sécurité matériel), et/ou quelque chose que l’utilisateur est (données biométriques). En combinant plusieurs facteurs, l’authentification multifacteur réduit considérablement la probabilité d’un accès non autorisé.

L’authentification multifactorielle est une méthode d’authentification prise en charge par Azure Synapse Analytics.

Pour commencer, consultez Configurer l’authentification multifacteur Microsoft Entra.

Prise en charge de Microsoft Entra B2B

L'authentification Microsoft Entra dans tous les produits SQL prend également en charge la collaboration B2B Microsoft Entra, ce qui permet aux entreprises d'inviter des utilisateurs invités à collaborer avec leur organisation. Les utilisateurs invités peuvent se connecter à des bases de données en tant qu’utilisateurs individuels ou membres d’un groupe Microsoft Entra.

Architecture d’approbation pour la fédération Microsoft Entra vers Active Directory

Microsoft Entra ID s’intègre également aux solutions de gestion des identités et des accès familières comme Active Directory. En joignant de façon hybride votre Active Directory local, vous permettez aux identités Windows fédérées via Microsoft Entra ID d’utiliser des informations d’identification d’authentification unique afin de se connecter à Azure Synapse Analytics.

Pour la fédération, Microsoft Entra ID fournit deux méthodes d’authentification sécurisées : l’authentification directe et l’authentification par hachage de mot de passe. Si vous envisagez de fédérer votre Active Directory local à Microsoft Entra ID, consultez Choisir la méthode d’authentification appropriée pour votre solution d’identité hybride Microsoft Entra.

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

Microsoft Entra ID authentifie le jeton, et la base de données l’approuve et valide l’émetteur et d’autres détails. 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 via l'authentification Microsoft Entra nécessite que l'abonnement d'hébergement soit associé à Microsoft Entra ID. Vous devez utiliser le même abonnement pour créer les ressources Azure SQL ou Azure Synapse.

Permissions

Les autorisations attribuées à l’administrateur Microsoft Entra diffèrent de celles attribuées aux autres principaux de sécurité dans Azure Synapse Analytics. Dans certains cas, Azure Synapse Analytics a également besoin des permissions Microsoft Graph pour utiliser l’authentification Microsoft Entra.

Autorisations d’administration

Les autorisations et rôles suivants sont attribués à l’administrateur Microsoft Entra au moment de la création :

  • db_owner de chaque base de données

Autorisations Azure Synapse Analytics

Un principal a besoin de l’autorisation ALTER ANY USER dans la base de données pour créer un utilisateur.

Par défaut, les comptes d’administrateur du serveur, les utilisateurs de base de données avec CONTROL ON DATABASE, et les membres du rôle de base de données db_owner ont cette permission ALTER ANY USER.

Pour créer un principal Microsoft Entra dans Azure SQL, l’identité demandante doit interroger Microsoft Graph pour obtenir des détails sur le principal. Lors du déploiement initial, la seule identité pouvant interroger Microsoft Graph est l’administrateur Microsoft Entra. Par conséquent, l’administrateur doit être la première identité à créer d’autres principaux Microsoft Entra. Ensuite, l’administrateur peut assigner ALTER ANY USER à d’autres principaux afin qu’ils puissent créer d’autres principaux Microsoft Entra.

Déploiements sans contact avec l’authentification Microsoft Entra

Parce que l’administrateur Microsoft Entra doit être la première identité à se connecter à la base de données et à créer d’autres utilisateurs Microsoft Entra, il peut être utile d’ajouter l’identité de votre infrastructure de déploiement en tant qu’administrateur. Vos déploiements peuvent ensuite effectuer une configuration initiale, comme la création d’autres principaux Microsoft Entra et leur attribution d’autorisations. Pour les déploiements, utilisez des outils comme les modèles ARM PowerShell pour automatiser par script la création automatisée de principaux de sécurité. Azure SQL ne prend pas en charge aujourd'hui les API natives pour configurer la création d'utilisateurs et la gestion des permissions. Vous ne pouvez effectuer ces opérations qu’en utilisant une connexion directe à l’instance SQL.

Autorisations de Microsoft Graph

Pour créer des principaux Microsoft Entra et quelques autres scénarios, Azure SQL doit effectuer des appels Microsoft Graph pour récupérer des informations et valider l’existence de l’identité dans Microsoft Entra ID. Pour cela, le processus SQL doit avoir ou obtenir accès aux permissions de lecture Microsoft Graph au sein du locataire client. Vous pouvez obtenir cet accès de plusieurs manières :

  • Si le principal SQL exécutant la commande est une identité utilisateur, vous n'avez pas besoin d'accorder d'autorisations supplémentaires sur l'instance SQL pour interroger Microsoft Graph.
  • Si le principal SQL exécutant la commande est un identité de service, comme un principal de service ou une identité managée, l’instance Azure SQL nécessite ses propres autorisations pour interroger Microsoft Graph.
    • Attribuer les autorisations d’application à l’identité de serveur principale (identité gérée) du serveur logique ou de l’instance gérée. Le processus SQL peut utiliser l’identité primaire du serveur pour s’authentifier auprès d’autres services Azure dans un locataire, comme Microsoft Graph. Le tableau suivant explique divers scénarios et les permissions Microsoft Graph nécessaires pour que la commande s’exécute correctement.
Scenario Autorisations minimales
CREATE USERou CREATE LOGIN pour un principal de service Microsoft Entra ou une identité managée Application.Read.All
CREATE USERou CREATE LOGIN pour un utilisateur Microsoft Entra User.Read.All
CREATE USERou CREATE LOGIN pour un groupe Microsoft Entra GroupMember.Read.All

Tip

Le rôle Directory Readers est le rôle ayant la plus petite portée que vous pouvez attribuer à une identité et couvre toutes les autorisations nécessaires. En utilisant des rôles, vous pouvez les attribuer aux groupes de sécurité Microsoft Entra, ce qui dissocie la gestion des entités individuelles pour la reporter sur des groupes conceptuels.

Support d'outils

SQL Server Management Studio (SSMS) prend en charge plusieurs options de connexion d’authentification Microsoft Entra, notamment l’authentification multifacteur.

SQL Server Data Tools (SSDT) pour Visual Studio, à compter de 2015, prend en charge l’authentification par mot de passe, intégrée et interactive avec l’ID Microsoft Entra. Pour plus d'informations, consultez la rubrique Prise en charge de Microsoft Entra ID dans SQL Server Data Tools (SSDT).

  • Actuellement, SSDT Explorateur d'objets n'affiche pas les utilisateurs Microsoft Entra. Comme solution de contournement, vous pouvez afficher les utilisateurs dans sys.database_principals.

Versions minimales

Pour utiliser l’authentification Microsoft Entra avec Azure Synapse Analytics, vous avez besoin des versions minimales suivantes lors de l’utilisation de ces outils :

  • SQL Server Management Studio (SSMS) version 18.6 ou ultérieure
  • SQL Server Data Tools for Visual Studio 2015, version 14.0.60311.1 (avril 2016) ou ultérieure
  • Fournisseur de données .NET Framework pour SqlServer, version minimale .NET Framework 4.6
  • À 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.
  • 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.

Connectez Microsoft Entra à Azure Synapse Analytics

Après avoir configuré l’authentification Microsoft Entra pour votre ressource Azure SQL, vous pouvez vous connecter en utilisant SQL Server Management Studio, SQL Server Data Tools et une application cliente.

Limitations

Lors de l’utilisation de l’authentification Microsoft Entra avec Azure Synapse Analytics, considérez les limitations suivantes :

  • Les utilisateurs de Microsoft Entra et les mandants de service (applications Microsoft Entra) qui sont membres de plus de 2048 groupes de sécurité Microsoft Entra ne sont pas pris en charge et ne peuvent pas se connecter à la base de données.

  • Les fonctions système suivantes ne sont pas prises en charge et retournent des valeurs NULL lorsqu’elles sont exécutées par les entités principales de Microsoft Entra.

    • SUSER_ID()
    • SUSER_NAME(<ID>)
    • SUSER_SNAME(<SID>)
    • SUSER_ID(<name>)
    • SUSER_SID(<name>)
  • Nous vous conseillons de définir l’expiration du délai de connexion à 30 secondes.

  • Les utilisateurs de Microsoft Entra faisant partie d’un groupe membre du rôle de base de données db_owner peuvent constater l’erreur suivante lorsqu’ils tentent d’utiliser CREATE DATABASE SCOPED CREDENTIAL dans Azure Synapse Analytics :

    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 CREATE DATABASE SCOPED CREDENTIAL, ajoutez directement l’identité de l’utilisateur Microsoft Entra au rôle db_owner.

  • Azure Synapse Analytics ne crée pas d'utilisateurs implicites pour les utilisateurs connectés via l'adhésion au groupe Microsoft Entra. À cause de cela, les opérations nécessitant l’attribution de la propriété peuvent échouer, même si le groupe Microsoft Entra fait partie d’un rôle disposant de ces permissions.

    Par exemple, un utilisateur connecté à une base de données via un groupe Microsoft Entra avec le rôle db_ddladmin ne peut pas exécuter CREATE SCHEMA, ALTER SCHEMAet d’autres instructions de création d’objets sans schéma explicitement défini (par exemple, table, vue ou 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é pour affecter un DEFAULT_SCHEMA tel que dbo.

  • Supprimer l’administrateur Microsoft Entra empêche les connexions d’authentification Microsoft Entra.