Comment puis-je vérifier si mon site IIS utilise NTLM ou Kerberos?

10

Comment puis-je vérifier si mon site IIS utilise NTLM ou Kerberos? Et comment puis-je changer l'authentification de Kerberos en NTLM? J'utilise IIS 7.5.

KlimczakM
la source

Réponses:

9

De:

Déterminez si l'authentification HTTP est NTLM ou Kerberos
http://support.microsoft.com/kb/891032

[...] "Puisque nous examinons cette trace pour voir si le client envoie des informations d'authentification, nous pouvons utiliser les segments TCP pour suivre les requêtes HTTP GET et la réponse du serveur. Voici un extrait du cadre qui envoie les informations d'authentification du client:

23 4294967263.4294641621 LOCAL 00045A420DBC HTTP GET Request (du client utilisant le port 3135) 192.168.0.2 192.168.0.4 IP HTTP: GET Request (du client utilisant le port 3135) HTTP: Méthode de requête = GET HTTP: Uniform Resource Identifier = /webapplication1/webform1.aspx HTTP: Version du protocole = HTTP / 1.1 HTTP: Accepter = image / gif, image / x-xbitmap, image / jpeg, image / pjpeg, application / vnd. HTTP: Accept-Language = en-us HTTP: Accept-Encoding = gzip, dégonfler HTTP: User-Agent = Mozilla / 4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR HTTP: Host = alien HTTP: Connection = HTTP Keep-Alive: Autorisation = Négocier TlRMTVNTUAABAAAAB4IIogAAAAAAAAAAAAAAAAAAAAAFASgKAAAA 44 77 3D 3D 0D 0A 0D 0A AAADw == ....

"Qu'est-ce que cela nous dit? Nous pouvons voir que l'en-tête d'autorisation est défini sur" Négocier "et nous pouvons voir une longue chaîne de caractères envoyée dans cet en-tête. Cette réponse nous indique que le client et le serveur négocient une connexion NTLM. Nous savons que l'authentification NTLM est utilisée ici car le premier caractère est un "" T. "S'il s'agissait d'un" Y ", ce serait Kerberos . L'en-tête est défini sur" Négocier "au lieu de" NTLM ". Cela ne signifie pas signifie qu'il utilisera Kerberos ou NTLM, mais qu'il "négociera" la méthode d'autorisation et essaiera d'abord Kerberos s'il le peut. S'il ne peut pas utiliser Kerberos, il utilisera NTLM. "

// if it is Negotiate...
if (String.Compare(Request.ServerVariables["HTTP_AUTHORIZATION"].Substring(10, 1), "Y", true) == 0)
{
    // we are using Kerberos
}
else
{
   // we are using NTLM
}
Greg Askew
la source
Je reçois les premiers personnages en tant que oXcw, une idée de ce que cela signifie? Peut-être une nouvelle version de kerberos?
Mark Adamson
1
@MarkAdamson Moi aussi, le mien est oYG2 ...
Brain2000
4

Si vous avez accès à votre serveur IIS, la réponse est beaucoup plus simple que d'inspecter le trafic HTTP: affichez simplement la configuration du module d'authentification du site pour l'authentification Windows.

  1. Dans IIS Manager
  2. Sélectionnez votre site
  3. Cliquez sur le module d'authentification
  4. Sélectionnez l'authentification Windows
  5. Sélectionnez les fournisseurs ...

Gestionnaire IIS> Site> Module d'authentification> Fournisseurs

JohnC
la source
1

utilisez le code ci-dessous dans la page html / asp:

<%
    authType=UCase(Request.ServerVariables("AUTH_TYPE"))
    authHeader=Request.ServerVariables("HTTP_AUTHORIZATION")
    response.write " Authentication Method : " & authType & "<BR>"
    LenAuthHeader = len(authHeader)
    response.write " Protocol : "
    if Len(authType ) =0 then response.write " Anonymous" else if authType<>"NEGOTIATE" then response.write authType else if LenAuthHeader>1000 then response.write "Kerberos" else response.write "NTLM"
%> 
pafreire
la source
0

Cette réponse n'est pas tout à fait complète. La connexion peut utiliser NTLM de deux manières. L'une est via la méthode WWW-Authenticate "NTLM"; l'autre est via Negotiate. Négocier utilise GSSAPI, qui à son tour peut utiliser divers mécanismes; sous Windows, cela inclut à la fois Kerberos et NTLM.

Wireshark peut décoder tout cela et vous montrer rapidement ce qui se passe, en supposant que vous n'utilisez pas TLS. Si vous l'êtes, vous pouvez faire en sorte que Wireshark soit capable de décrypter le trafic TLS; cela demande juste un effort supplémentaire.

Richard E. Silverman
la source
0

Dans votre en-tête de demande HTTP (vous pouvez le voir depuis Firebug , Chrome Dev Tool ou Fiddler ), vous verrez quelque chose comme ça si vous utilisez NTLM

Autorisation: NTLM = TlRMTVNTGD6XAAAAGAAYAG425qAAYABgAhgAAAAAAAABIAAAADgAOAEgAAAAYABgAVgAAAAAAAACeAAAABYKIogUBKAoAAAAPcwBpAG0AcABsAGkAcABOADMAUgBXAEsAVwBBAEwAVABFAFIAQQAzVtleqNj7HAAAAAAAAAAAAAAAAAAAAACW3g66aPaiileWScIYweBj6fs2iGY / TA3 =

Dans le panneau de gestion IIS, vous pouvez aller Authentification et choisir l'authentification que vous préférez.

Communauté
la source
mais pas si la négociation utilise NTLM
Aardvark