web-dev-qa-db-fra.com

Comment savoir si Active Directory utilise Kerberos ou NTLM?

Existe-t-il un programme en ligne de commande que vous pouvez utiliser?

15
LeWoody

Je pense que la question devrait être tordue sur sa tête. Active Directory prend en charge Kerberos et NTLM. Windows essaiera d'abord Kerberos et si toutes les exigences ne sont pas remplies, il reviendra à NTLM.

Je vais vous donner un exemple, accéder au partage de fichiers par son nom, comme\server1\share, invoquerait Kerberos et devrait réussir avec la permission appropriée. Mais accéder au même partage de fichiers à l'aide de l'adresse IP invoquerait d'abord Kerberos et échouerait (car il n'y a pas de SPN pour l'adresse IP), puis basculerait vers NTLM.

Déterminez donc comment votre programme essaie de s'authentifier contre AD et devrait vous indiquer quel protocole est utilisé.

Je serais curieux de savoir ce qui a poussé à vous poser cette question.

9
KAPes

Vous pouvez afficher la liste des tickets Kerberos actifs pour voir s'il y en a un pour le service qui vous intéresse, par ex. en exécutant klist.exe .

Il existe également un moyen de consigner les événements Kerberos si vous piratez le registre .

6
TonyUser

Vous devez vraiment auditer les événements d'ouverture de session, que l'ordinateur soit un serveur ou un poste de travail. Il est utile de déterminer quels utilisateurs accèdent à votre système et de résoudre les problèmes liés à la sécurité.

Vous pouvez modifier votre stratégie d'audit avec la stratégie de groupe: Démarrer ... Exécuter ... gpedit.msc ... Configuration ordinateur, Paramètres Windows, Paramètres de sécurité, Stratégies locales, Stratégie d'audit, "Événements d'ouverture de session d'audit". Cochez les cases "Succès" et "Échec". Essayez de vous déconnecter et de vous connecter pour voir quelques 540 événements typiques dans votre journal des événements de sécurité Windows.

2
Eric H

Netstat affiche toutes les connexions TCP et UDP. En utilisant l'option -na pour toutes les connexions et aucune résolution de noms ou de ports. L'option 'b' est d'afficher le programme auquel il est associé. Si DNS est en cours d'exécution, il peut afficher beaucoup d'autres connexions, vous pouvez donc également spécifier TCP.

Kerberos s'exécute de manière définitive s'il s'agit d'un déploiement de contrôleur de domaine Active Directory.

netstat -nab

0
Jason B Shrout

Vous pouvez essayer cet outil. http://blog.michelbarneveld.nl/media/p/33.aspx

Il s'agit d'un outil pour tester l'authentification sur des sites Web. Il montrera quel type d'authentification est utilisé: Kerberos, NTLM, basique, aucun. Mais il affiche également d'autres informations telles que: SPN utilisé, en-têtes HTTP, NTLM décryptés et en-têtes d'autorisation Kerberos. Et il peut également afficher et supprimer vos billets Kerberos.

0
Davis

En supposant que vous auditez les événements de connexion, consultez votre journal des événements de sécurité et recherchez 540 événements. Ils vous diront si une authentification spécifique a été effectuée avec Kerberos ou NTLM.

0
Boden
 public string FindAllUsers()
        {
            string strReturn="";
            try
            {
                DirectoryEntry directoryEntry = new DirectoryEntry("WinNT://" + Environment.UserDomainName);
                string userNames = "";
                string authenticationType = "";
                foreach (DirectoryEntry child in directoryEntry.Children)
                {
                    if (child.SchemaClassName == "User")
                    {
                        userNames += child.Name + Environment.NewLine; //Iterates and binds all user using a newline
                        authenticationType += child.Username + Environment.NewLine;
                    }
                }

                strReturn = userNames + "\n\n" + authenticationType;
                //Console.WriteLine("************************Users************************");
                //Console.WriteLine(userNames);
                //Console.WriteLine("*****************Authentication Type*****************");
                //Console.WriteLine(authenticationType);
            }
            catch (Exception)
            {
                Console.WriteLine("Network error occured.");
                strReturn = "";
            }
            return strReturn;
        }
0
user262211