Устранение неполадок, связанных с Kerberos, в службах IIS

Переводы статьи Переводы статьи
Код статьи: 326985 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

В этой статье рассмотрены вопросы устранения неполадок с проверкой подлинности Kerberos на сервере информационных служб Интернета (Internet Information Services, IIS). Данное руководство не является полным, однако содержит дополнительные ссылки на источники сведений об устранении неполадок с проверкой подлинности Kerberos.

По умолчанию при установке служб IIS на сервере под управлением Microsoft Windows 2000 параметру метабазы NTAuthenticationProviders присваивается значение Negotiate, NTLM. После этого службы IIS возвращают данные значения в составе заголовка WWW-Authenticate каждому клиенту Microsoft Internet Explorer версии 5.0 или более поздней, который подключается к веб-узлу. Получив значения, клиент определяет метод проверки подлинности для установки подключения. Если выбран метод Negotiate, клиент и сервер проводят согласование метода проверки подлинности: Kerberos или NTLM. Если метод Negotiate клиентом не поддерживается, он использует проверку подлинности NTLM.

Это весьма общее описание процесса. Если задействована проверка подлинности Kerberos, происходит много других менее заметных событий.

Если клиент Internet Explorer способен установить подключение по протоколу Kerberos, производятся некоторые дополнительные проверки безопасности. Например, клиент получает от службы TGS (Ticket Granting Service) билет, который затем используется для проверки подлинности.

Для получения дополнительных сведений о работе этой процедуры щелкните номер следующей статьи базы знаний Майкрософт:
217098 Обзор проверки подлинности Kerberos в Windows 2000 (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
Для получения дополнительных сведений посетите следующий веб-узел корпорации Майкрософт:
Проверка подлинности http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/default.mspx?mfr=true
Следует ознакомиться с этими ссылками для устранения неполадок с Kerberos.

Примечание. Если вы недавно обновили обозреватель Internet Explorer до версии 6.0, у вас есть возможность обнаружить проблемы с Kerberos, так как флажок Включить интегрированную проверку подлинности Windows по умолчанию не установлен. Чтобы убедиться, что данный параметр установлен правильно, щелкните номер следующей статьи базы знаний Майкрософт:
299838 Не удается согласовать проверку подлинности Kerberos после обновления до Internet Explorer 6 (Эта ссылка может указывать на содержимое полностью или частично на английском языке)

Способы проверки подлинности

Убедитесь, что в базе для сервера IIS или отдельного веб-узла перечислены правильные методы проверки подлинности. Если сервер был обновлен с Windows NT 4.0 до Windows 2000, метод проверки подлинности Negotiate отсутствует и должен быть установлен вручную. В противном случае, если обновление не выполнялось, убедитесь, что все соответствующие методы проверки подлинности доступны. Для получения дополнительных сведений об определении доступности метода проверки подлинности Negotiate и его установке в случаке отсутствия щелкните номер следующей статьи базы знаний Майкрософт:
248350 Сбой проверки подлинности Kerberos после обновления IIS 4.0 до IIS 5.0 (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
Данный метод проверки подлинности устанавливается на уровне веб-узла, но не для всего сервера IIS. Для этого добавьте номер веб-узла с помощью сценария Adsutil.vbs. Так, чтобы установить метод проверки подлинности только для веб-узла по умолчанию, воспользуйтесь следующей командой:

cscript adsutil.vbs set w3svc/1/NTAuthenticationProviders "Negotiate,NTLM"
Единица (1) после «w3svc» — это номер веб-узла в соответствии со списком диспетчера служб Интернета (ISM).

Определение имени сервера

Затем определите имя, по которому происходит подключение к веб-узлу: действительное NetBIOS-имя сервера или псевдоним, такой как доменное имя (например, www.microsoft.com). Для получения доступа к веб-серверу по имени, которое отличается от действительного имени сервера, необходимо зарегистрировать новое имя участника службы (SPN) с помощью средства Setspn из состава Windows 2000 Server Resource Kit. Поскольку это имя службы неизвестно службе каталогов Active Directory, служба TGS не выдает билет для проверки подлинности пользователя. Для повторного согласования клиент вынужден использовать следующий метод проверки подлинности (NTLM). Если веб-сервер отвечает на доменное имя www.microsoft.com, но называется webserver1.development.microsoft.com, необходимо зарегистрировать имя www.microsoft.com в службе каталогов Active Directory на каждом сервере IIS. Для этого загрузите и установите на сервере IIS средство Setspn.

Для получения дополнительных сведений посетите веб-узел корпорации Майкрософт по следующему адресу:
Setspn.exehttp://www.microsoft.com/downloads/details.aspx?FamilyID=4e3a58be-29f6-49f6-85be-e866af8e7a88&displaylang=en Чтобы определить, подключены ли вы через действительное имя сервера, попробуйте при подключении к серверу использовать его действительное имя вместо доменного имени. Если попытка заканчивается неудачно, перейдите к разделу Подтверждение, что компьютеру доверено делегирование этой статьи. В противном случае выполните представленные ниже действия, чтобы назначить имя SPN для доменного имени, которое используется для подключения к серверу.
  1. Установите средство Setspn.
  2. На сервере IIS откройте командную строку и перейдите в папку C:\Program Files\Resource Kit.
  3. Чтобы добавить в службу каталогов Active Directory новое имя SPN (www.microsoft.com) для сервера (webserver1 — это NetBIOS-имя сервера), запустите следующую команду:
    Setspn -A HTTP/www.microsoft.com webserver1
    Будут отображены следующие сведения.
    Registering ServicePrincipalNames for CN=webserver1,OU=Domain Controllers,DC=microsoft,DC=com
    HTTP/www.microsoft.com
    Updated object
    							
  4. Чтобы просмотреть список имен SPN на сервере, введите на сервере IIS следующую команду: Setspn -L webservername
Регистрировать все службы нет необходимости. Многие типы служб, например HTTP, W3SVC, WWW, RPC, CIFS (доступ к файлам), WINS, а также служба источника бесперебойного питания (UPS) сопоставляются с типом службы по умолчанию, называемым HOST. Например, если для подключения по протоколу HTTP к веб-серверу на сервере webserver1.microsoft.com программа на клиентском компьютере использует имя SPN HTTP/webserver1.microsoft.com, однако это имя SPN на сервере не зарегистрировано, контроллер домена Windows 2000 автоматически сопоставляет его имени HOST/webserver1.microsoft.com. Такое сопоставление происходит только в том случае, если веб-служба запущена с помощью локальной системной записи.

Внимание Если имя SPN, которое нужно зарегистрировать, дано учетной записи компьютера (веб-узел работает под учетной записью LocalSystem или NetworkService), не следует менять существующие имена SPN для своего компьютера. Вместо изменений просто добавьте новое имя SPN HTTP. Если название веб-узла совпадает с названием главного компьютера, менять имена SPN не требуется. Если стандартные имена HOST/Server и HOST/ServerFQDN отсутствуют, следует изучить проблемы, которые происходят в обслуживании Netlogon на сервере при регистрации запрашиваемых имен SPN. При включении журналирования службы в журнал должны поступать сообщения об ошибке. Для получения дополнительных сведений щелкните номер следующей статьи базы знаний Майкрософт:
109626 Ведение журнала отладки для службы Net Logon (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
У вас также должны появляться сообщения об ошибках регистрации в Системном журнале событий Netlogon.

Подтверждение, что компьютеру доверено делегирование

Если сервер IIS входит в состав домена, но не является контроллером домена, для правильного функционирования проверки подлинности Kerberos компьютер должен быть доверен для делегирования. Для включения этой функции выполните следующие действия.
  1. На контроллере домена нажмите кнопку Пуск, выберите пункт Настройка, а затем Панель управления.
  2. Два раза щелкните папку Администрирование, а затем Пользователи и компьютеры Active Directory.
  3. Под именем своего домена откройте папку Компьютеры.
  4. Найдите сервер IIS. Щелкните сервер правой кнопкой мыши и выберите команду Свойства.
  5. Откройте вкладку Общие, установите флажок Делегирование разрешено и нажмите кнопку .

Средство Kerbtray

Для устранения неполадок с проверкой подлинности Kerberos также можно воспользоваться средством Kerbtray.exe из состава Windows 2000 Resource Kit, которое позволяет видеть выданные из локального кэша билеты Kerberos. Загрузить средство можно с веб-узла корпорации Майкрософт по следующему адресу.
Kerbtray.exe Kerberos Trayhttp://www.microsoft.com/downloads/details.aspx?FamilyID=4e3a58be-29f6-49f6-85be-e866af8e7a88&displaylang=en
Для получения дополнительных сведений об этом средстве и советов по устранению неполадок с Kerberos посетите следующий веб-узел:
http://www.microsoft.com/technet/prodtechnol/windowsserver2003/technologies/security/tkerberr.mspx

Включение журналирования событий безопасности

Журналирование событий безопасности может быть очень полезным при устранении неполадок с проверкой подлинности Kerberos. В нем регистрируются неудачные попытки входа, когда пользователь пытается пройти проверку подлинности на сервере IIS. Это позволяет получить необходимые сведения о событиях, которые происходят в процессе проверки подлинности, и определить причины сбоев.

Дальнейшие сведения в этом разделе взяты из книги Desiging Secure Web Based Applications for Windows 2000 (Разработка безопасных веб-приложений для Windows 2000) Майкла Говарда (Michael Howard). Поскольку подключения в Windows 2000 проходят проверку подлинности, необходимо умение анализировать события входа в систему. Данный раздел содержит описание переменных, которые являются частью события входа в систему.

Параметры аудита «Входа/выхода»

Microsoft Windows NT включает только одну категорию аудита входа и выхода. Вторая введена в Windows 2000. Две категории -- «Вход/выход» и учетная запись входа -- рассматриваются в следующих разделах.

Аудит событий входа в систему (категория «Вход/выход»)

События этой категории (доступна в Windows NT и Windows 2000 всех версий) указывают на то, что с помощью учетной записи был осуществлен вход и выход из системы либо было установлено сетевое подключение к компьютеру. Другими словами, событие происходит на компьютере, где выполняется вход. События категории «Вход/выход» содержат большое количество полезных сведений в случае использования IIS, SQL Server и COM+.

Наиболее важными событиями категории являются:
  • событие «Вход/выход» 529 (ошибка входа в систему)
  • событие «Вход/выход» 528 (успешный вход в систему)
  • событие «Вход/выход» 540 (успешный сетевой вход в систему)
Ниже приведены примеры событий. Описание отдельных полей приведено в таблице 1.

Событие «Вход/выход» 529 (ошибка входа в систему)

Тип события:     Аудит отказов
Источник события:   Безопасность
Категория события: Вход/выход
Код события:       529
Дата:           9/3/1999
Время:           8:57:21 PM
Пользователь:           NT AUTHORITY\SYSTEM
Компьютер:       CHERYL-LAPTOP
Описание:
Отказ входа в систему:
   Причина:           неизвестное имя пользователя или неверный пароль
   Пользователь:        Администратор
   Домен:           CHERYL-LAPTOP
   Тип входа:       2
   Процесс входа:    seclogon
   Пакет проверки подлинности: Negotiate
   Рабочая станция: CHERYL-LAPTOP

				

Событие «Вход/выход» 528 (успешный вход в систему) и событие «Вход/выход» 540 (успешный сетевой вход в систему)

Тип события:     Аудит успехов
Источник события:   Безопасность
Категория события: Вход/выход
Код события:       540
Дата:           1/23/2000
Время:           5:41:39 PM
Пользователь:           EXAIR\Cheryl
Компьютер:       CHERYL-LAPTOP
Описание:
Успешный сетевой вход в систему:
   Пользователь:        cheryl
   Домен:           EXAIR
   Код входа:         (0x0,0x17872A8)
   Тип входа:       3
   Процесс входа:    Kerberos
   Пакет проверки подлинности: Kerberos
   Рабочая станция:

				
Свернуть эту таблицуРазвернуть эту таблицу
Поле Описание
Тип, Источник, Категория, Код (ID), Дата, ВремяНе требуют дополнительных объяснений.
пользователь
Осуществляющая вход в систему учетная запись пользователя. Например, это может быть NT AUTHORITY\SYSTEM (учетная запись локальной системы; используется для запуска многих служб Windows 2000).
Компьютер Компьютер, на котором происходит событие.
Причина Причина неудачного завершения попытки входа в систему (только для случаев, когда вход не выполнен).
ПользовательИмя пользователя, который пытается войти в систему.
Домен Домен учетной записи пользователя, которая используется для входа в систему.
Тип входа Число, соответствующее типу выполняемого входа. Возможные значения:
2 — интерактивный (интерактивный вход в систему)
3 — сетевой (доступ к системе получен из сети)
4 — пакетный (вход в качестве пакетного задания)
5 — служба (служба Windows, запущенная соответствующим контроллером)
6 — прокси (прокси-вход, не используется в Windows NT и Windows 2000)
7 — снять блокировку (разблокировать рабочую станцию)
8 — NetworkCleartext (сетевой вход с передачей учетных данных открытым текстом)
9 — NewCredentials (используется RunAs, если установлен параметр /netonly)
Процесс входаПроцесс, который производит вход в систему. Например:
- Advapi (запускается вызовом LogonUser; LogonUser вызывает LsaLogonUser, при этом аргумент OriginName указывает на источник выполнения попытки входа в систему)
- User32 (стандартный вход в систему Windows 2000 с помощью службы WinLogon)
- SCMgr (служба запущена диспетчером управления службами)
- KsecDD (сетевое подключение к серверу SMB, например, в случае использования команды NET USE)
- Kerberos (поставщик поддержки безопасности (SSP) Kerberos)
- NtlmSsp (поставщик поддержки безопасности NTLM)
- Seclogon (вторичный вход в систему, т. е. команда RunAs)
- службы IIS (вход выполнен службами IIS; создается в случае входа по учетной записи IUSR_machinename, а также при использовании обычной или выборочной проверки подлинности)
Пакет проверки подлинности Пакет безопасности, вызванный при попытке входа учетной записи в систему. Представляет собой библиотеку DLL, которая анализирует входные данные и принимает решение о прохождении проверки подлинности. В качестве примера следует указать Kerberos, Negotiate, NTLM и MICROSOFT_AUTHENTICATION_PACKAGE_V1_0 (другое название — MSV1_0; осуществляет проверку подлинности пользователей в базе данных SAM, поддерживает сквозную проверку подлинности учетных записей в доверенных доменах и внешние модули проверки подлинности). Рабочая станция (если известна), которая используется участником в процессе проверки подлинности.

Аудит событий входа в систему (категория «Вход учетной записи»)

События этой категории указывают на то, что учетная запись вошла или вышла из системы, а компьютер был использован для ее проверки. В этом случае событие происходит на компьютере, где располагается учетная запись. Многие события, связанные с проверкой подлинности Kerberos, например выдача билетов, регистрируются, когда включена эта категория аудита.

Ниже приведены два часто встречающихся события сбоя входа учетной записи в систему.

Событие «Вход учетной записи» 676 (ошибка входа в систему): ошибка запроса билета проверки подлинности
Тип события:     Аудит отказов
Источник события:   Безопасность
Категория события: Вход учетной записи
Код события:       676
Дата:           5/11/2000
Время:           20:47:01
Пользователь:           NT AUTHORITY\SYSTEM
Компьютер:       DBSERVER
Описание:
Ошибка запроса билета проверки подлинности
   Пользователь:  Major
   Предоставленное имя сферы:    EXPLORATIONAIR.COM
   Имя службы:     krbtgt/EXPLORATIONAIR.COM
   Параметры билета:   0x40810010
   Код ошибки:     6
   Адрес клиента:   172.100.100.12

				
Примечание. Что такое учетная запись NT AUTHORITY\SYSTEM? Эта учетная запись (другое название — учетная запись LocalSystem) служит для запуска большинства служб, ссылки на нее часто встречаются в журнале событий безопасности.

Событие 676 означает, что пользователю Major не удалось получить исходный билет TGT из центра распространения ключей (KDC). Наиболее важной частью события является код ошибки, который совпадает с кодом MIT Kerberos. В таблице 2 описаны коды некоторых самых распространенных ошибок; их полный перечень можно найти на главной странице http://www.ietf.org/rfc/rfc1510.txt.

Таблица 2. Некоторые коды ошибок Kerberos
Свернуть эту таблицуРазвернуть эту таблицу
Код ошибки Описание
6 Клиент не найден в базе данных Kerberos.
7 Сервер не найден в базе данных Kerberos. Как правило, это означает, что для службы не было зарегистрировано имя участника службы (SPN).
23 Истек срок действия пароля.
32 Истек срок действия билета.
33 Недействительный билет.
34 Запрос совпадает с ответом. Кто-то пытается воспроизвести ответ клиента Kerberos, возможно, компьютер подвергается атаке.
37 Слишком большое отклонение времени. Время имеет большое значение для проведения проверки подлинности Kerberos. Убедитесь, что все часы синхронизированы.


Событие «Вход учетной записи» 681 (ошибка входа в систему) с очень большим кодом ошибки

В некоторых случаях появляется код ошибки, подобный приведенному ниже. Проблема в том, что это значение практически бесполезно.
Тип события:     Аудит отказов
Источник события:   Безопасность
Категория события: Вход учетной записи
Код события:       681
Дата:           5/11/2000
Время:           20:47:01
Пользователь:           NT AUTHORITY\SYSTEM
Компьютер:       DBSERVER
Описание:
Вход на учетную запись: Major
 кем: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
 с рабочей станции: WEBSERVER
 не удалось выполнить. Код ошибки: 3221225572

				
Таблица 3 - Пример учетной записи кодов ошибок входа в систему.

Свернуть эту таблицуРазвернуть эту таблицу
Код ошибки (в десятичном формате)Код ошибки (в шестнадцатеричном формате)Описание
32212255720xC0000064 Пользователь с указанным именем не существует.
3221225570 0xC0000062 Указанное имя не является корректным именем пользователя.
32212255690xC0000061Клиент не обладает требуемыми правами.
32212255780xC000006AПри обновлении пароля этот код состояния возврата означает, что указан неверный текущий пароль.
32212255800xC000006C Сетевой пароль указан неверно. При обновлении пароля этот код состояния возврата означает нарушение одного из правил обновления паролей. Например, длина указанного пароля превышает допустимые пределы.
32212255850xC0000071 Срок действия пароля для учетной записи пользователя истек.
32212255860xC0000072 Учетная запись запрещена.

В результате анализа данных приведенных выше событий: при попытке входа в систему запрос пользователя Major на исходный билет TGT завершается ошибкой с кодом 6 (клиент не найден в базе данных Kerberos), а также возникает общая ошибка входа в систему с кодом 3221225572 (пользователь с указанным именем не существует), становится очевидной причина сбоя — Major не является действительной учетной записью.

Ссылки

Для получения дополнительных сведений о Kerberos щелкните номера следующих статей базы знаний Майкрософт:
266080 Вопросы и ответы о проверке подлинности Kerberos (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
244474 Использование протокола TCP вместо UDP в пакетах Kerberos в Windows Server 2003, Windows XP и Windows 2000
262177 Включение регистрации событий Kerberos (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
287537 Создание маркеров Kerberos с помощью обычной проверки подлинности (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
277741 Из-за недостаточного размера буфера для проверки подлинности Kerberos попытка подключения Internet Explorer заканчивается неудачно (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
269643 Из-за недостаточного размера подключенного к серверу IIS буфера для проверки подлинности Kerberos попытка подключения Internet Explorer заканчивается неудачно (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
264921 Проверка подлинности клиентов обозревателя сервером ISI (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
248350 Сбой проверки подлинности Kerberos после обновления IIS 4.0 до IIS 5.0 (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
294382 Сбой проверки подлинности с ошибкой 401.3, если заголовок узла не совпадает с именем NetBIOS сервера (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
217098 Обзор проверки подлинности Kerberos в Windows 2000 (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
283201 Как в Windows 2000 использовать делегирование при помощи COM+ (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
299838 Не удается согласовать проверку подлинности Kerberos после обновления до Internet Explorer 6 (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
230476 Описание стандартных ошибок, имеющих отношение к проверке подлинности Kerberos в Windows 2000 (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
320903 Клиенты, использующие Kerberos через TCP, не могут войти в домен (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
235529 Поддержка проверки подлинности Kerberos в кластерах серверов под управлением Windows 2000 (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
929650 Как использовать имена участников служб при настройке веб-приложений, размещеннных на сервере IIS 6 (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
Дополнительные сведения о протоколе Kerberos можно найти в вопросах и ответах по Kerberos:
http://www.faqs.org/faqs/kerberos-faq/general/index.html

Свойства

Код статьи: 326985 - Последний отзыв: 19 апреля 2007 г. - Revision: 12.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Internet Information Services 5.0
Ключевые слова: 
kbhowtomaster KB326985
Заявление об отказе относительно содержимого статьи о продуктах, поддержка которых прекращена
Эта статья содержит сведения о продуктах, поддержка которых корпорацией Майкрософт прекращена. Поэтому она предлагается как есть и обновляться не будет.

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com