Partager via


Tutoriel : Activer l’authentification Microsoft Entra pour SQL Server sur Windows sans Azure Arc

S’applique à : SQL Server 2022 (16.x) et versions ultérieures.

Cet article explique comment s’authentifier auprès de Microsoft Entra ID sans configurer Azure Arc pour vos versions sql Server 2022 et ultérieures locales. L’authentification Microsoft Entra est un service de gestion des identités basé sur le cloud qui fournit un accès sécurisé aux bases de données SQL Server. Ce tutoriel vous guide tout au long du processus de configuration de l’authentification Microsoft Entra pour SQL Server sur Windows sans Azure Arc.

Remarque

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

Dans ce tutoriel, vous allez apprendre à :

  • Ajoutez un certificat pour SQL Server.
  • Installez adal.dll utilisé pour la connexion à SQL Server.
  • Créez et inscrivez une application Microsoft Entra ID.
  • Accordez des autorisations d’application.
  • Chargez le certificat dans l’application.
  • Ajoutez des valeurs de Registre pour activer l’authentification Microsoft Entra pour SQL Server.

Conditions préalables

  • Une version locale de SQL Server 2022 ou ultérieure.
  • Client Microsoft Entra ID actif.
  • Cette configuration utilise une inscription d’application pour associer SQL Server à l’ID Microsoft Entra. Suivez le guide pour inscrire une application dans Microsoft Entra ID.
  • Vérifiez que SQL Server dispose d’une connectivité réseau à Azure, en particulier au service et aux adresses Microsoft Entra ID suivants :
    • login.windows.net.
    • login.microsoftonline.com.
    • graph.microsoft.com.
    • graph.windows.net.
    • database.windows.net.
    • La liste complète des adresses IP et des URL n’est pas nécessaire, mais elle peut être trouvée dans l’article Microsoft 365 - URL et plages d’adresses IP.

Obtenir un certificat

  1. Obtenez un certificat à utiliser pour SQL Server et importez-le dans le magasin de certificats de l’ordinateur. Nous recommandons un certificat signé par l’autorité de certification.
    1. Utilisez un nom CN unique pour le certificat qui ne correspond à aucun certificat installé dans le magasin de certificats.

    2. Installez le certificat dans le magasin de certificats de votre ordinateur. Pour plus d’informations, consultez Importer le certificat dans le magasin d’ordinateurs local.

    3. Ajoutez Read des autorisations pour le compte de service SQL Server sur le certificat.

      Capture d’écran des propriétés Autorisations d’un certificat.

Installer adal.dll

  1. Installez adal.dll pour SQL Server. Cette bibliothèque est nécessaire pour la connexion à votre serveur SQL Server avec l’authentification Microsoft Entra. Vous pouvez obtenir adal.dll à partir de la dernière installation de Microsoft OLE DB Driver pour SQL Server .

  2. Après avoir installé Microsoft OLE DB Driver pour SQL Server, vérifiez que adal.dll se trouve dans le dossier C:\windows\system32.

  3. Vous devez également avoir la clé HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSADALSQL\TargetDir de Registre avec la valeur C:\windows\system32\adal.dll. Si ce n’est pas le cas, créez-le.

    Capture d’écran de la clé de Registre pour adal.dll.

    Pour plus d’informations sur le Registre Windows, consultez les informations de Registre Windows pour les utilisateurs avancés.

Créer et inscrire une application Microsoft Entra ID

  • Dans le portail Azure, sélectionnez Microsoft Entra ID>Inscriptions d'applications>Nouvelle inscription.
    1. Spécifiez un nom : l’exemple de cet article utilise SQLServer.
    2. Sélectionnez Types de comptes pris en charge et utilisez Comptes dans cet annuaire organisationnel uniquement
    3. Ne définissez pas d'URI de redirection
    4. Sélectionnez Inscrire.

Voir l'enregistrement de l'application ci-dessous.

Capture d’écran de l’inscription de l’application dans le portail Azure.

Octroyer des autorisations aux applications

Sélectionnez l’application nouvellement créée et, dans le menu de gauche, sélectionnez Autorisations d’API.

  1. Sélectionnez Ajouter une autorisation>Microsoft Graph>Autorisations de l’application

    1. Cochez Directory.Read.All
    2. Sélectionner Ajouter des autorisations

Ou,

  1. Sélectionnez Ajouter une autorisation>Microsoft Graph>Autorisations de l’application

    1. Cochez Application.Read.All

    2. Cochez Group.Read.All

    3. Cochez User.Read.All

    4. Sélectionner Ajouter des autorisations

  2. Sélectionner Accorder le consentement administrateur

Capture d’écran montrant comment accorder le consentement dans le portail Azure.

Remarque

Pour accorder le Consentement administrateur aux autorisations ci-dessus, votre compte Microsoft Entra nécessite le rôle Administrateur de rôle privilégié ou des autorisations supérieures.

Téléchargement du certificat

Chargez le certificat que vous avez créé dans la section Obtenir un certificat au format .cer ou .pem lors de l'inscription de l'application dans le portail Azure.

Capture d’écran du chargement d’un certificat pour l’application dans le portail Azure.

Ajouter des valeurs de Registre pour activer l’authentification Microsoft Entra pour SQL Server

Mettez à jour la clé HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL<version-number>.<instance-name>\MSSQLServer\FederatedAuthentication de Registre avec les valeurs suivantes pour activer l’authentification Microsoft Entra pour SQL Server. Voici un exemple de chemin de clé de Registre pour SQL Server 2022 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQLServer\FederatedAuthentication.

Avertissement

Des problèmes sérieux pourraient survenir si vous modifiez le registre de manière incorrecte en utilisant l'Éditeur du Registre ou en utilisant une autre méthode. Vous risquez même de devoir réinstaller le système d’exploitation. Microsoft ne peut pas garantir que ces problèmes peuvent être résolus. Vous assumez l’ensemble des risques liés à la modification du Registre.

  • Si la clé n’existe pas, créez-la FederatedAuthentication avec toutes les valeurs suivantes.
  • Les cinq premières entrées répertoriées doivent être mises à jour avec les valeurs de l’application que vous avez créée dans la section précédente. Le reste des entrées sont des valeurs par défaut.
  • Il <sql-server-certificate-name> s’agit du nom du certificat que vous avez créé dans la section Obtenir un certificat et chargé sur Azure.
  • Il <application-client-id> s’agit de l’ID d’application (client) de l’application que vous avez créée dans la section Créer et inscrire une application Microsoft Entra ID. Pour plus d’informations sur la recherche de l’ID client, consultez l’ID client.
  • Il <tenant-id> s’agit de l’ID de locataire de votre locataire Azure. Vous trouverez l’ID de locataire dans le portail Azure sous Microsoft Entra ID>Overview.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL<version-number>.<instance-name>\MSSQLServer\FederatedAuthentication]

"AADCertSubjectName"="<sql-server-certificate-name>"
"AADTenantSpecificSQLServicePrincipalCertSubjectName"="<sql-server-certificate-name>"
"ClientId"="<application-client-id>"
"AADTenantSpecificSQLServicePrincipalClientId"="<application-client-id>"
"PrimaryAADTenant"="<tenant-id>"
"AADChannelMaxBufferedMessageSize"="200000"
"AADGraphEndPoint"="graph.windows.net"
"AADGroupLookupMaxRetryAttempts"="10"
"AADGroupLookupMaxRetryDuration"="30000"
"AADGroupLookupRetryInitialBackoff"="100"
"AuthenticationEndpoint"="login.microsoftonline.com"
"CacheMaxSize"="300"
"FederationMetadataEndpoint"="login.windows.net"
"GraphAPIEndpoint"="graph.windows.net"
"IssuerURL"="https://sts.windows.net/"
"MsGraphEndPoint"="graph.microsoft.com"
"OnBehalfOfAuthority"="https://login.windows.net/"
"SendX5c"="false"
"ServicePrincipalName"="https://database.windows.net/"
"ServicePrincipalNameForArcadia"="https://sql.azuresynapse.net"
"ServicePrincipalNameForArcadiaDogfood"="https://sql.azuresynapse-dogfood.net"
"ServicePrincipalNameNoSlash"="https://database.windows.net"
"STSURL"="https://login.windows.net/"
"ClientCertBlackList"=""

Pour plus d’informations sur le Registre Windows, notamment la sauvegarde, la modification et la restauration des clés de Registre, consultez les informations de Registre Windows pour les utilisateurs avancés.

Test de l’authentification

Après avoir configuré le serveur et modifié les valeurs du Registre, l’authentification Microsoft Entra doit être fonctionnelle. Testez la configuration en créant des connexions à l’aide des commandes T-SQL suivantes :

CREATE LOGIN [<admin@domain.com>] FROM EXTERNAL PROVIDER

Problèmes courants

L’erreur suivante peut s’afficher :

Keyset does not exist (AdalDll) with error code: 21

Cette erreur peut être due à des problèmes d’autorisation sur le certificat. Vérifiez que le compte de service SQL Server dispose Read d’autorisations sur le certificat. Si le problème persiste, assurez-vous que le certificat a un nom CN unique qui ne correspond à aucun autre certificat dans le magasin de certificats.