Apache(SLES 11.1のApache2)で実行されるWebサイトを介してActive DirectoryユーザーのSSOを設定しています。Firefoxでテストすると、すべて正常に動作します。しかし、Internet Explorer 8(Windows 7)でWebサイトを開こうとすると、
"要求の形式が正しくありません
お使いのブラウザが、このサーバーが理解できないリクエストを送信しました。
リクエストヘッダーフィールドのサイズがサーバーの制限を超えています。
承認:交渉[超長い文字列] "
私の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>
また、Cookieが削除されていることを確認し、LimitRequestFieldSizeとLimitRequestLineにいくつかの小さい値を試しました。
私にとって奇妙に思われるもう1つのことは、LogLevelデバッグを使用しても、これに関するログを取得できないことです。ログの最後の行は
ssl_engine_kernel.c(1879): OpenSSL: Write: SSL negotiation finished successfully
誰もがそれについて考えを持っていますか?
私の直感によると、おそらくユーザーが多数のグループのメンバーであるため、非常に大きなセキュリティトークンを取得しているとのことです。 AD Kerberos実装は、Apacheにデフォルトで Privilege Attribute Certificate (PAC)を提供します。ユーザーがかなりの数のグループのメンバーである場合、この構造は大きくなる可能性があります。 tokensz.exe
ツールを使用 して、ユーザーのトークンサイズを確認できます。
これが問題である場合、PACが送信されないように ユーザーのアカウントのUserAccountControl属性を変更 できます。
/etc/krb5.conf
ファイルを変更して、KDCをkdc = tcp/kdc.name.here
として参照できるようにすることができます。この問題は、PACによってトークンがUDPデータグラムに対して大きすぎる場合に発生する可能性がありますが、TCP.
1,000人のユーザーでこの値を変更しても、問題が解決すればAD管理者は難しくありません。
Mac上のSafariのDrupal 7サイトでこのエラーが発生し、ブラウザウィンドウを閉じて、ブラウザのキャッシュをクリアし、ブラウザを終了し、ブラウザを開いて、ページをリロードします。今回のみ発生したエラーの解消に努めました。
不正なリクエストブラウザがこのサーバーが理解できないリクエストを送信しました。 >リクエストヘッダーフィールドのサイズがサーバーの制限を超えています。クッキー/ n
別の解決策を見つけましたが、実際に機能するかどうかはわかりません。 Apache Docsによると、大きなパッケージではLimitRequestFieldSizeやLimitRequestLineを設定する必要があります。
問題は、LimitRequestLineの値を8KBより大きい値に設定したい場合、8KBが固定のmaxSize( http://httpd.Apache。 org/docs/2.2/mod/core.html#limitrequestline )。
この方法が機能するかどうかはわかりません。後で2番目のサーバーの独自のリポジトリからApacheを再インストールしたためです。問題はそこで発生しなかったため、これは別のパッケージバージョンであったようです。
誰かがmod_proxy_ajpでこの問題に遭遇した場合は、次を見てください: どのApacheバージョンからLimitRequestFieldSizeが最大8kにハードコードされなくなったか