Ошибка «HTTP 400 - Ошибочный запрос (запрос заголовка слишком длинный)» в служб (IIS)

ВНИМАНИЕ! Данная статья переведена с использованием программного обеспечения Майкрософт для машинного перевода и, возможно, отредактирована посредством технологии Community Translation Framework (CTF). Корпорация Майкрософт предлагает вам статьи, обработанные средствами машинного перевода, отредактированные членами сообщества Майкрософт и переведенные профессиональными переводчиками, чтобы вы могли ознакомиться со всеми статьями нашей базы знаний на нескольких языках. Статьи, переведенные с использованием средств машинного перевода и отредактированные сообществом, могут содержать смысловое, синтаксические и (или) грамматические ошибки. Корпорация Майкрософт не несет ответственности за любые неточности, ошибки или ущерб, вызванные неправильным переводом контента или его использованием нашими клиентами. Подробнее об CTF можно узнать по адресу http://support.microsoft.com/gp/machine-translation-corrections/ru.

Эта статья на английском языке: 2020943
Проблема

Пользователь домена пытается перейти на веб-сайт, размещенный в служб (IIS) 6.0 или выше с помощью Internet Explorer 6.0 или более поздней версии.  Веб-узел настроен на использование проверки подлинности Kerberos.  Вместо получения ожидаемых веб-страницы, пользователю будет показано следующее сообщение об ошибке:

HTTP 400 - Ошибочный запрос (слишком длинный заголовок запроса)

Причина

Эта проблема может возникнуть, если пользователь является членом нескольких групп пользователей Active Directory. Если пользователь является членом большого количества active directory группы маркер проверки подлинности Kerberos для пользователей увеличивается в размере. HTTP-запроса, пользователь отправляет на сервер IIS содержит маркер Kerberos в заголовок WWW-Authenticate, и увеличивается размер заголовка возрастает число групп.  Если заголовок HTTP или размер пакета увеличивается за пределами в IIS, IIS может отклонить запрос и отправить эту ошибку как ответ.

Решение

Чтобы обойти эту проблему, выберите один из следующих параметров:

A) для уменьшения количества групп Active Directory, членом которого является данный пользователь.

ИЛИ

B) измените MaxFieldLength и параметры реестра MaxRequestBytes на сервере IIS, не считаются слишком длинный заголовок запроса пользователя.  Чтобы определить параметры реестра MaxRequestBytes и MaxFieldLength, используйте следующие расчеты:

    1. Вычислите размер маркера Kerberos пользователя с помощью формулы, описанные в следующей статье:

      Новый способ устранения проблем с Kerberos проверки подлинности, когда пользователь входит в несколько групп
      http://support.microsoft.com/kb/327825


    2. Настройка разделов реестра MaxRequestBytes и MaxFieldLength на сервере IIS со значением4/3 * T, где T — размер маркера пользователя в байтах.  Маркер Kerberos с помощью кодировки base64 кодируетHTTP и поэтому заменяет каждые 3 байта в маркер с 4 base64-закодированные байты.  Изменения, внесенные в реестр, вступают в силу только после перезапуска службы HTTP. Кроме того, необходимо перезапустить все связанные службы IIS.

Примечание: в зависимости от среды приложения, следует также подумать о Настройка веб-узла использовать NTLM вместо Kerberos для временного решения этой проблемы.  Среды для некоторых приложений требуется для использоваться в целях делегирования проверки подлинности Kerberos и Kerberos является более безопасным, чем NTLM, поэтому рекомендуется не отключать Kerberos прежде чем решать, безопасности и делегирование последствия этого процесса.


Дополнительная информация

По умолчанию запись реестра MaxFieldLength отсутствует. Этот параметр реестра определяет ограничение максимального размера каждого заголовка HTTP-запроса. Запись реестра MaxRequestBytes определяет верхний предел общего размера строки запроса и заголовков. Как правило этот параметр реестра настроен с реестра MaxRequestBytes. Если MaxRequestBytes значение меньше, чем значение MaxFieldLength, корректируется значение MaxFieldLength.  В большой среде Active Directory пользователи могут испытывать ошибок входа в систему, если не заданы значения для обеих этих операций достаточно большое значение.

Для Internet Information Services (IIS) 6.0 и более поздних, MaxFieldLength и MaxRequestBytes разделы реестра находятся вHKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters.  Настроить их, как показано в следующей таблице:

Имя

Тип значения

Значение данных

MaxFieldLength

ПАРАМЕТР DWORD

(4/3 * T байт) + 200

MaxRequestBytes

ПАРАМЕТР DWORD

(4/3 * T байт) + 200

В качестве альтернативы можно установить ключи реестра ниже максимального значения. Администратору необходимо учитывать все возможные последствия для безопасности, если он вносит все изменения параметров реестра:

 

Имя

Тип значения

Значение данных

MaxFieldLength

ПАРАМЕТР DWORD

65534

MaxRequestBytes

ПАРАМЕТР DWORD

16777216

ВНИМАНИЕ: Изменение параметров реестра может считаться чрезвычайно опасно. Эти разделы позволяют больших пакетов HTTP для отправки IIS, который в свою очередь может привести к Http.sys использовать больше памяти и может увеличить уязвимость для атак злоумышленников.

Примечание: Если настроен MaxFieldLength максимальное значение 64 КБ, а затем значение MaxTokenSize реестра должно быть присвоено 3/4 * 64 = 48 КБ.  Дополнительные сведения о параметре MaxTokenSize можно найти в статье базы знаний Майкрософт KB327825, перечисленных ниже.

Дополнительные сведения по темам, рассматриваемым в данной статье можно найти в следующих местах:

Параметры реестра HTTP.sys для IIS
http://support.Microsoft.com/kb/820129/en-US

Ведение журнала ошибок в HTTP API
http://support.microsoft.com/?id=820729

Новый способ устранения проблем с проверкой подлинности Kerberos, когда пользователь входит в несколько групп
http://support.Microsoft.com/kb/327825

Сообщение об ошибке при попытке доступа к почтовому ящику в Exchange Server 2003 пользователя веб-клиента Outlook
http://support.Microsoft.com/kb/920862

Свойства

Номер статьи: 2020943 — последний просмотр: 01/03/2016 06:13:00 — редакция: 11.0

Microsoft Internet Information Services 10.0, Microsoft Internet Information Services 8.5, Microsoft Internet Information Services 8.0, Microsoft Internet Information Services 7.5, Microsoft Internet Information Services 7.0, Microsoft Internet Information Services 6.0

  • kbmt KB2020943 KbMtru
Отзывы и предложения