Как я могу проверить, использует ли мой сайт IIS NTLM или Kerberos?

10

Как я могу проверить, использует ли мой сайт IIS NTLM или Kerberos? И как я могу изменить аутентификацию с Kerberos на NTLM? Я использую IIS 7.5.

KlimczakM
источник

Ответы:

9

От:

Определите, является ли HTTP-аутентификация NTLM или Kerberos
http://support.microsoft.com/kb/891032

[...] "Так как мы просматриваем эту трассировку, чтобы увидеть, отправляет ли клиент информацию аутентификации, мы можем использовать сегменты TCP для отслеживания запросов HTTP GET и ответа от сервера. Вот фрагмент из кадра, который отправляет аутентификационную информацию от клиента:

23 4294967263.4294641621 LOCAL 00045A420DBC HTTP GET-запрос (от клиента, использующего порт 3135) 192.168.0.2 192.168.0.4 IP HTTP: GET-запрос (от клиента, использующего порт 3135) HTTP: Метод запроса = GET HTTP: унифицированный идентификатор ресурса = /webapplication1/webform1.aspx HTTP: версия протокола = HTTP / 1.1 HTTP: Accept = image / gif, image / x-xbitmap, image / jpeg, image / pjpeg, application / vnd. HTTP: Accept-Language = en-us HTTP: Accept-Encoding = gzip, выкачать HTTP: User-Agent = Mozilla / 4.0 (совместимо; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR HTTP: Host = чужой HTTP: соединение = Keep-Alive HTTP: авторизация = переговоры TlRMTVNTUAABAAAAB4IIogAAAAAAAAAAAAAAAAAAAAAFASgKAAAA 44 77 3D 3D 0D 0A 0D 0A AAADw == ....

«Что это говорит нам? Мы можем видеть, что заголовок Authorization установлен на« Negotiate », и мы можем видеть длинную строку символов, отправленных в этом заголовке. Этот ответ говорит нам, что клиент и сервер согласовывают соединение NTLM. Мы знаем, что здесь используется аутентификация NTLM, потому что первый символ - «T». Если бы это было «Y», это был бы Kerberos . Заголовок установлен на «Согласование» вместо «NTLM». Это не Я имею в виду, что он будет использовать Kerberos или NTLM, но будет «согласовывать» метод авторизации и сначала попробует Kerberos, если сможет. Если он не сможет использовать Kerberos, он будет использовать 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
}
Грег Аскью
источник
Я получаю первые символы как oXcw, есть идеи, что это значит? Может быть, более новая версия Kerberos?
Марк Адамсон
1
@MarkAdamson Я тоже, мой oYG2 ...
Brain2000
4

Если у вас есть доступ к вашему серверу IIS, тогда ответ гораздо проще, чем проверка HTTP-трафика: просто просмотрите конфигурацию модуля проверки подлинности сайта для проверки подлинности Windows.

  1. В диспетчере IIS
  2. Выберите свой сайт
  3. Нажмите на модуль аутентификации
  4. Выберите проверку подлинности Windows
  5. Выберите провайдеров ...

IIS Manager> Сайт> Модуль аутентификации> Провайдеры

JohnC
источник
1

используйте код ниже на странице 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
источник
0

Этот ответ не является полным. Существует два способа подключения NTLM. Один из них - через WWW-метод аутентификации NTLM; другой через переговоры. Переговоры используют GSSAPI, который в свою очередь может использовать различные механизмы; в Windows это включает в себя как Kerberos, так и NTLM.

Wireshark может декодировать все это и быстро показать вам, что происходит, при условии, что вы не используете TLS. Если да, вы можете организовать, чтобы Wireshark мог расшифровывать трафик TLS; это просто требует дополнительных усилий.

Ричард Э. Сильверман
источник
0

В вашем заголовке HTTP-запроса (вы можете увидеть его в Firebug , Chrome Dev Tool или Fiddler ) вы увидите нечто подобное, если вы используете NTLM

Авторизация: NTLM = TlRMTVNTGD6XAAAAGAAYAG425qAAYABgAhgAAAAAAAABIAAAADgAOAEgAAAAYABgAVgAAAAAAAACeAAAABYKIogUBKAoAAAAPcwBpAG0AcABsAGkAcABOADMAUgBXAEsAVwBBAEwAVABFAFIAQQAzVtleqNj7HAAAAAAAAAAAAAAAAAAAAACW3g66aPaiileWScIYweBj6fs2iGY / TA3 =

Из панели управления IIS вы можете перейти к аутентификации и выбрать предпочитаемую аутентификацию.

Сообщество
источник
но не, если переговоры используют NTLM
Aardvark