Utilisation de l'authentification Kerberos avec SQL Server

Pour utiliser l'authentification Kerberos avec SQL Server, les deux conditions suivantes doivent être remplies :

  • Les ordinateurs clients et serveurs doivent faire partie du même domaine Windows ou appartenir à des domaines approuvés.

  • Un nom principal de service (SPN, Service Principal Name) doit être inscrit dans Active Directory, qui joue le rôle de centre de distribution de clés dans un domaine Windows. Une fois inscrit, le SPN est mappé au compte Windows qui a démarré le service de l'instance de SQL Server. Si l'inscription du SPN n'a pas été effectuée ou échoue, la couche de sécurité Windows ne peut pas déterminer le compte associé au SPN et l'authentification Kerberos ne sera pas utilisée.

    Notes

    Si le serveur ne parvient pas à inscrire automatiquement le SPN, celui-ci doit être inscrit manuellement.

Vous pouvez vérifier qu'une connexion utilise Kerberos en interrogeant la vue de gestion dynamique sys.dm_exec_connections. Exécutez la requête suivante et vérifiez la valeur de la colonne auth_scheme, qui sera « KERBEROS » si Kerberos est activé.

SELECT auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@spid ;

Rôle du SPN dans l'authentification

Lorsqu'une application ouvre une connexion et utilise l'authentification Windows, SQL Server Native Client transmet le nom du serveur SQL Server et, éventuellement, un SPN. Si la connexion transmet un SPN, il est utilisé sans aucune modification.

Si la connexion ne transmet pas de SPN, un SPN par défaut est construit à partir du protocole utilisé, du nom de serveur et du nom de l'instance.

Dans les deux scénarios précédents, le SPN est envoyé au centre de distribution de clés pour obtenir un jeton de sécurité en vue d'authentifier la connexion. Si un jeton de sécurité ne peut pas être obtenu, l'authentification utilise le protocole NTLM.