¿Cómo puedo verificar si mi sitio IIS está usando NTLM o Kerberos?

10

¿Cómo puedo verificar si mi sitio IIS está usando NTLM o Kerberos? ¿Y cómo puedo cambiar la autenticación de Kerberos a NTLM? Estoy usando IIS 7.5.

KlimczakM
fuente

Respuestas:

9

Desde:

Determine si la autenticación HTTP es NTLM o Kerberos
http://support.microsoft.com/kb/891032

[...] "Dado que estamos revisando este rastreo para ver si el cliente está enviando información de autenticación, podemos usar los segmentos TCP para rastrear las solicitudes HTTP GET y la respuesta del servidor. Aquí hay un fragmento del marco que envía información de autenticación del cliente:

23 4294967263.4294641621 LOCAL 00045A420DBC Solicitud HTTP GET (del cliente utilizando el puerto 3135) 192.168.0.2 192.168.0.4 IP HTTP: Solicitud GET (del cliente utilizando el puerto 3135) HTTP: Método de solicitud = GET HTTP: Identificador uniforme de recursos = /webapplication1/webform1.aspx HTTP: Versión del protocolo = HTTP / 1.1 HTTP: Aceptar = image / gif, image / x-xbitmap, image / jpeg, image / pjpeg, application / vnd. HTTP: Accept-Language = en-us HTTP: Accept-Encoding = gzip, deflate HTTP: User-Agent = Mozilla / 4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR HTTP: Host = alien HTTP: conexión = Keep-Alive HTTP: Autorización = Negociar TlRMTVNTUAABAAAAB4IIogAAAAAAAAAAAAAAAAAAAAAFASgKAAAA 44 77 3D 3D 0D 0A 0D 0A AAADw == ....

"¿Qué nos dice esto? Podemos ver que el encabezado de Autorización está configurado en" Negociar "y podemos ver una larga cadena de caracteres enviados en ese encabezado. Esta respuesta nos dice que el cliente y el servidor están negociando una conexión NTLM. Sabemos que la autenticación NTLM se está utilizando aquí porque el primer carácter es una "T". Si fuera una "Y", sería Kerberos . El encabezado se establece en "Negociar" en lugar de "NTLM". significa que usará Kerberos o NTLM, pero que "negociará" el método de autorización e intentará Kerberos primero si puede. Si no puede usar Kerberos, usará 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
fuente
Tengo los primeros caracteres como oXcw, ¿alguna idea de lo que eso significa? ¿Quizás una versión más nueva de kerberos?
Mark Adamson
1
@MarkAdamson Yo también, el mío es oYG2 ...
Brain2000 12/1218
4

Si tiene acceso a su servidor IIS, la respuesta es mucho más simple que inspeccionar el tráfico HTTP: simplemente vea la configuración del módulo de autenticación del sitio para la autenticación de Windows.

  1. En IIS Manager
  2. Selecciona tu sitio
  3. Haga clic en el módulo de autenticación
  4. Seleccione la autenticación de Windows
  5. Seleccionar proveedores ...

Administrador de IIS> Sitio> Módulo de autenticación> Proveedores

JohnC
fuente
1

use el siguiente código en la página 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
fuente
0

Esa respuesta no es completa. Hay dos formas en que la conexión puede usar NTLM. Uno es a través del método WWW-Authenticate "NTLM"; El otro es a través de Negociar. Negociar usa GSSAPI, que a su vez puede usar varios mecanismos; en Windows, esto incluye Kerberos y NTLM.

Wireshark puede decodificar todo esto y mostrarle rápidamente lo que está sucediendo, suponiendo que no esté usando TLS. Si es así, puede organizar que Wireshark pueda descifrar el tráfico TLS; solo requiere un esfuerzo extra.

Richard E. Silverman
fuente
0

En su encabezado de solicitud HTTP (puede verlo desde Firebug , Chrome Dev Tool o Fiddler ) verá algo como esto si usa NTLM

Autorización: NTLM = TlRMTVNTGD6XAAAAGAAYAG425qAAYABgAhgAAAAAAAABIAAAADgAOAEgAAAAYABgAVgAAAAAAAACeAAAABYKIogUBKAoAAAAPcwBpAG0AcABsAGkAcABOADMAUgBXAEsAVwBBAEwAVABFAFIAQQAzVtleqNj7HAAAAAAAAAAAAAAAAAAAAACW3g66aPaiileWScIYweBj6fs2iGY / ta3 =

Desde el panel de administración de IIS, puede ir a Autenticación y elegir la autenticación que prefiera.

Comunidad
fuente
pero no si negociar está usando NTLM
Aardvark