Я настраиваю единый вход для пользователей Active Directory через веб-сайт, работающий на Apache (Apache2 на SLES 11.1), и при тестировании с Firefox все работает нормально. Но когда я пытаюсь открыть сайт в Internet Explorer 8 (Windows 7), все, что я получаю, это
«Плохой запрос»
Ваш браузер отправил запрос, который этот сервер не может понять.
Размер поля заголовка запроса превышает лимит сервера.
Авторизация: переговоры [ультра длинная строка] "
Мой vhost.cfg выглядит так:
<VirtualHost hostname:443>
LimitRequestFieldSize 32760
LimitRequestLine 32760
LogLevel debug
<Directory "/data/pwtool/sec-data/adbauth">
AuthName "Please login with your AD-credentials (Windows Account)"
AuthType Kerberos
KrbMethodNegotiate on
KrbAuthRealms REALM.TLD
KrbServiceName HTTP/hostname
Krb5Keytab /data/pwtool/conf/http_hostname.krb5.keytab
KrbMethodK5Passwd on
KrbLocalUserMapping on
Order allow,deny
Allow from all
</Directory>
<Directory "/data/pwtool/sec-data/adbauth">
Require valid-user
</Directory>
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/apache2/ssl.crt/hostname-server.crt
SSLCertificateKeyFile /etc/apache2/ssl.key/hostname-server.key
</VirtualHost>
Я также удостоверился, что куки удалены, и попробовал несколько меньших значений для LimitRequestFieldSize и LimitRequestLine.
Еще одна вещь, которая кажется мне странной, заключается в том, что даже при отладке LogLevel я не получу никаких записей об этом. Последняя строка журнала
ssl_engine_kernel.c(1879): OpenSSL: Write: SSL negotiation finished successfully
У кого-нибудь есть идеи по этому поводу?
Ответы:
Моя интуиция говорит, что у вас очень большой токен безопасности, возможно, потому, что пользователь является членом большого количества групп. Реализация AD Kerberos собирается предоставить Apache сертификат атрибута привилегий (PAC) по умолчанию. Эта структура может быть большой, если пользователь является членом значительного числа групп. Вы можете использовать
tokensz.exe
инструмент, чтобы увидеть размер токена пользователя.Если это проблема, вы можете изменить атрибут UserAccountControl учетной записи пользователя, чтобы предотвратить отправку PAC.
Возможно, вам удастся изменить ваш
/etc/krb5.conf
файл, чтобы ссылаться на KDC какkdc = tcp/kdc.name.here
. Эта проблема может возникнуть, если PAC приводит к тому, что токен слишком велик для дейтаграммы UDP, но принудительное взаимодействие с KDC с TCP также является возможным обходным путем.Изменение этого значения для 1000 пользователей не составит труда для администраторов AD, если это решит вашу проблему.
источник
Эта ошибка произошла на сайте Drupal 7 в Safari на Mac, и я обнаружил, что закрытие окон браузера и очистка кеша браузера, выход из браузера, его открытие и перезагрузка страницы работали над устранением ошибки, которая только произошла это один раз.
источник
Я нашел другое решение, хотя я не уверен, что оно действительно работает. Apache Docs заявляет, что для больших пакетов мне придется установить LimitRequestFieldSize и / или LimitRequestLine.
Дело в том, что если вы хотите установить значение LimitRequestLine выше 8 КБ, вам придется изменить исходный код и перекомпилировать Apache, так как 8 КБ - это фиксированный maxSize ( http://httpd.apache.org/docs/ 2.2 / mod / core.html # limitrequestline ).
Я не знаю точно, работает ли этот метод, потому что позже я переустановил apache из нашего собственного репозитория на втором сервере. Кажется, что это была другая версия пакета, так как проблема там не возникала.
источник
В случае, если кто-нибудь решит эту проблему с помощью mod_proxy_ajp, взгляните на: Начиная с какой версии Apache, LimitRequestFieldSize больше не жестко программируется до 8k max?
источник