Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article vous montre comment utiliser Microsoft Entra ID pour l’authentification avec Azure Synapse Analytics.
Remarque
Les principaux de serveur Microsoft Entra sont actuellement en préversion pour Azure Synapse Analytics.
Prerequisites
Pour utiliser l’authentification Microsoft Entra avec Azure Synapse Analytics, vous avez besoin des prérequis suivants :
- Un tenant Microsoft Entra comportant des utilisateurs et des groupes.
- Un espace de travail Azure Synapse existant ou un pool SQL dédié autonome.
Créer et configurer un client Microsoft Entra
Avant de pouvoir configurer l’authentification Microsoft Entra pour Azure Synapse Analytics, vous devez créer un annuaire Microsoft Entra et le remplir avec des utilisateurs et des groupes. Vous pouvez gérer les tenants Microsoft Entra entièrement dans Azure ou les utiliser pour la fédération d’un service domaine Active Directory Services sur site.
Pour en savoir plus, consultez :
- Qu’est-ce que Microsoft Entra ID ?
- Intégration de vos identités sur site avec Microsoft Entra ID
- Ajoutez votre nom de domaine à Microsoft Entra ID
- Quelle est la fédération avec Microsoft Entra ID ?
- Synchronisation de l'annuaire avec Microsoft Entra ID
- Manage Microsoft Entra ID à l’aide de Windows PowerShell
- Ports et protocoles nécessaires à l’identité hybride
Configurer l'administrateur Microsoft Entra
Pour utiliser l’authentification Microsoft Entra, votre ressource Azure Synapse nécessite un administrateur Microsoft Entra.
Vous pouvez également configurer l’administrateur Microsoft Entra lors de la création de la ressource. Si vous avez déjà un administrateur configuré, passez cette section.
Espace de travail Azure Synapse
Pour un espace de travail Azure Synapse, configurez l’administrateur Microsoft Entra sur l’espace de travail. Pour plus d’informations, voir Structure administrateur.
Pool SQL dédié autonome
Lorsque vous définissez l’administrateur Microsoft Entra, vous activez l’authentification Microsoft Entra pour le serveur logique qui héberge un pool SQL dédié autonome. Vous pouvez définir l’administrateur en utilisant le portail Azure, PowerShell, Azure CLI ou les API REST.
Dans le portail Azure, vous trouverez le nom du serveur logical
- Dans le champ nom du serveur de la page Vue d'ensemble de votre pool SQL dédié autonome dans Azure Synapse Analytics.
Pour définir l’administrateur Microsoft Entra de votre serveur logique dans le portail Azure, procédez comme suit :
Dans le panneau Annuaires + abonnements du portail Azure, choisissez le répertoire contenant votre ressource Azure Synapse comme Répertoire actif.
Cherchez des serveurs SQL puis sélectionnez le serveur logique pour votre pool SQL dédié afin d’ouvrir le volet serveur SQL .
Dans le volet SQL de votre serveur logique, sélectionnez Microsoft Entra ID sous Settings pour ouvrir le volet Microsoft Entra ID.
Dans le volet Microsoft Entra ID, sélectionnez Définir l’administrateur pour ouvrir le volet Microsoft Entra ID.
Le volet Microsoft Entra ID affiche tous les utilisateurs, groupes et applications dans votre répertoire 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 sélectionnez Sélectionner pour fermer le volet.
En haut de la page Microsoft Entra ID de votre serveur logique, sélectionnez Save.
L’ID Object s’affiche en regard du nom d’administrateur pour les utilisateurs et les groupes Microsoft Entra. 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 Microsoft Entra administrateur.
Pour supprimer l’administrateur, en haut de la page Microsoft Entra ID, sélectionnez Supprimer l'administrateur, puis sélectionnez 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 master du serveur 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à, la configuration de l'administrateur Microsoft Entra échoue et s'annule, indiquant que le nom est déjà utilisé.
Attribuer des autorisations Microsoft Graph
Pour certaines opérations, Azure Synapse Analytics nécessite des autorisations pour interroger Microsoft Graph, comme expliqué dans les permissions Microsoft Graph. Azure Synapse Analytics prend en charge des permissions Microsoft API Graph détaillées telles que User.Read.All, GroupMember.Read.All et Application.Read.All sur l’identité de la ressource. Cette approche suit le principe du privilège minimum et est recommandée. Vous pouvez également utiliser le rôle Directory Readers comme une alternative plus large. Pour plus d’informations, voir Identités managées dans Microsoft Entra pour Azure Synapse Analytics.
Rôle de lecteur de répertoire
Pour une procédure guidée, voir Assigner le rôle de lecteurs d’annuaire à un groupe Microsoft Entra.
Le script PowerShell suivant ajoute une identité de ressource Azure Synapse au rôle Directory Readers.
# This script grants "Directory Readers" permission to an Azure Synapse service principal.
# It can be executed only by a user who is a member of the **Privileged Roles Administrator** role.
Import-Module Microsoft.Graph.Authentication
$instanceName = "<InstanceName>" # Enter the name of your managed instance or server
$tenantId = "<TenantId>" # Enter your tenant ID
Connect-MgGraph -TenantId $tenantId -Scopes "RoleManagement.ReadWrite.Directory"
# Get Microsoft Entra "Directory Readers" role and create if it doesn't exist
$roleName = "Directory Readers"
$role = Get-MgDirectoryRole -Filter "DisplayName eq '$roleName'"
if ($role -eq $null) {
# Instantiate an instance of the role template
$roleTemplate = Get-MgDirectoryRoleTemplate -Filter "DisplayName eq '$roleName'"
New-MgDirectoryRoleTemplate -RoleTemplateId $roleTemplate.Id
$role = Get-MgDirectoryRole -Filter "DisplayName eq '$roleName'"
}
# Get service principal for your logical server
$roleMember = Get-MgServicePrincipal -Filter "DisplayName eq '$instanceName'"
$roleMember.Count
if ($roleMember -eq $null) {
Write-Output "Error: No service principal with name '$($instanceName)' found, make sure that instanceName parameter was entered correctly."
exit
}
if (-not ($roleMember.Count -eq 1)) {
Write-Output "Error: Multiple service principals with name '$($instanceName)'"
Write-Output $roleMember | Format-List DisplayName, Id, AppId
exit
}
# Check if service principal is already member of Directory Readers role
$isDirReader = Get-MgDirectoryRoleMember -DirectoryRoleId $role.Id -Filter "Id eq '$($roleMember.Id)'"
if ($isDirReader -eq $null) {
# Add principal to Directory Readers role
Write-Output "Adding service principal '$($instanceName)' to 'Directory Readers' role..."
$body = @{
"@odata.id"= "https://graph.microsoft.com/v1.0/directoryObjects/{$($roleMember.Id)}"
}
New-MgDirectoryRoleMemberByRef -DirectoryRoleId $role.Id -BodyParameter $body
Write-Output "'$($instanceName)' service principal added to 'Directory Readers' role."
} else {
Write-Output "Service principal '$($instanceName)' is already member of 'Directory Readers' role."
}
L’administrateur Microsoft Entra peut désormais créer des principaux de serveur Microsoft Entra (connexions) et des principaux de base de données (utilisateurs).
Créer des entités principales Microsoft Entra dans un environnement SQL
Pour se connecter à une base de données dans Azure Synapse Analytics avec l’authentification Microsoft Entra, vous devez configurer un principal dans la base de données pour cette identité avec au moins la CONNECT permission.
Autorisations d'un utilisateur de base de données
Lorsque vous créez un utilisateur de base de données, il reçoit par défaut l’autorisation CONNECT sur la base de données. Un utilisateur de base de données hérite également des autorisations dans deux circonstances :
- L'utilisateur fait partie d'un groupe Microsoft Entra qui a également des permissions attribuées sur le serveur.
- Vous créez l’utilisateur à partir d’un login, et l’utilisateur hérite des autorisations attribuées par le serveur au login qui s’appliquent à 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 (Microsoft Entra ID, l’authentification SQL, etc.). Accorder des permissions aux rôles de base de données au lieu d’accorder directement des permissions aux utilisateurs. Ensuite, ajoutez des utilisateurs aux rôles avec les permissions appropriées. Cette approche simplifie la gestion des autorisations à long terme et réduit la probabilité qu’une identité conserve l’accès lorsqu’il n’est plus approprié.
Pour en savoir plus, consultez :
- Autorisations et exemples du moteur de base de données
- Blog : notions de base des permissions du moteur de base de données
- Autoriser l’accès à la base de données à Azure Synapse Analytics
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 autonome de base de données Microsoft Entra, connectez-vous à la base de données avec une identité Microsoft Entra qui dispose au minimum de l’autorisation ALTER ANY USER. L’exemple T-SQL suivant crée un principal de base de données nommé Microsoft_Entra_principal_name à partir de Microsoft Entra ID.
CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;
Pour créer un utilisateur de base de données restreint pour un groupe Microsoft Entra, entrez le nom affiché du groupe :
CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;
Pour créer un utilisateur de base de données contenu pour une identité managée ou un principal de service, entrez le nom affiché 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 serveur Microsoft Entra (identifiants) sont actuellement en préversion pour Azure Synapse Analytics.
Les principaux du serveur Microsoft Entra (ou connexions) sont pris en charge, ce qui signifie que les utilisateurs de base de données contenus 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 Microsoft Entra utilisateurs peuvent hériter des autorisations attribuées au niveau du serveur d’une connexion.
CREATE USER [appName] FROM LOGIN [appName];
Pour connaître la syntaxe permettant de créer des principaux de serveur Microsoft Entra (comptes principaux), 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 autre locataire Microsoft Entra que celui associé à votre abonnement Azure. Cependant, vous pouvez importer des utilisateurs d’autres annuaires dans le répertoire associé en tant qu’utilisateurs externes. Vous pouvez ensuite les utiliser pour créer des utilisateurs de bases de données contenus qui peuvent accéder à la base de données. Les utilisateurs externes peuvent également accéder via l’appartenance à des groupes Microsoft Entra.
Examples : Pour créer un utilisateur de base de données autonome représentant un utilisateur de domaine fédéré ou managé Microsoft Entra :
CREATE USER [alice@fabrikam.com] FROM EXTERNAL PROVIDER;
- Un compte utilisateur de domaine fédéré que vous importez dans un domaine géré en tant qu’utilisateur externe doit utiliser l’identité de domaine géré.
Considérations relatives au nom
Vous ne pouvez pas utiliser de caractères spéciaux comme deux-points : ou esperluette & dans les noms d’utilisateur dans les instructions T-SQL CREATE LOGIN et CREATE USER.
Microsoft Entra ID et Azure Synapse Analytics diffèrent dans leur conception de la gestion des utilisateurs sur un point clé : Microsoft Entra ID autorise les noms d’affichage en double au sein d’un locataire, tandis qu’Azure Synapse Analytics exige des noms de principaux de serveur uniques dans un pool SQL dédié et des noms de principaux de base de données uniques dans une base de données.
Autorisations de Microsoft Graph
La CREATE USER ... FROM EXTERNAL PROVIDER commande exige qu’Azure Synapse Analytics accède à Microsoft Entra ID (le fournisseur externe) au nom de l’utilisateur connecté. Parfois, Microsoft Entra ID renvoie une exception.
- 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û aux stratégies d'accès conditionnel définies dans le locataire Microsoft Entra de l'utilisateur : ils empêchent l'utilisateur d'accéder au fournisseur externe. La mise à jour des politiques d’accès conditionnel pour permettre l’accès à l’application
00000003-0000-0000-c000-000000000000(l’identifiant d’application de l’API Microsoft API Graph) devrait 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 un Connection Timeout expiré, vous devrez peut-être définir le paramètre
TransparentNetworkIPResolutiondu chaîne de connexion sur false. Pour plus d’informations, consultez Problème de délai d’expiration de 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 CREATE USER.
Configurer l’authentification multifacteur
Pour une meilleure sécurité, envisagez de configurer l’authentification multifacteur (MFA), qui invite l’utilisateur à utiliser une seconde méthode pour s’authentifier à la base de données, comme un appel téléphonique ou une application d’authentification.
Pour utiliser l’authentification multifacteur avec Azure Synapse Analytics, activez d’abord l’authentification multifacteur, puis utilisez une politique d’accès conditionnel pour appliquer la MFA.
Se connecter avec Microsoft Entra
Après la configuration de l’authentification Microsoft Entra, vous pouvez l’utiliser pour vous connecter à Azure Synapse Analytics avec SQL Server Management Studio ou SQL Server Data Tools, et configurer les applications clientes pour qu’elles se connectent en utilisant des identités Microsoft Entra.
Résoudre les problèmes d’authentification Microsoft Entra
Pour plus de conseils, voir Résoudre les problèmes liés à l’authentification Microsoft Entra.