Permintaan Buruk Apache “Ukuran bidang tajuk permintaan melebihi batas server” dengan Kerberos SSO

9

Saya menyiapkan SSO untuk pengguna Direktori Aktif melalui situs web yang berjalan di Apache (Apache2 pada SLES 11.1), dan ketika menguji dengan Firefox semuanya bekerja dengan baik. Tetapi ketika saya mencoba membuka situs web di Internet Explorer 8 (Windows 7), yang saya dapatkan hanyalah

"Permintaan yang buruk

Browser Anda mengirim permintaan yang tidak dapat dimengerti server ini.

Ukuran bidang tajuk permintaan melebihi batas server.

Otorisasi: Negosiasi [string sangat panjang] "

Vhost.cfg saya terlihat seperti ini:

<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>

Saya juga memastikan bahwa cookie dihapus dan mencoba beberapa nilai yang lebih kecil untuk LimitRequestFieldSize dan LimitRequestLine.

Hal lain yang tampaknya aneh bagi saya adalah bahwa bahkan dengan debug LogLevel saya tidak akan mendapatkan log tentang ini. Baris terakhir log adalah

ssl_engine_kernel.c(1879): OpenSSL: Write: SSL negotiation finished successfully

Adakah yang punya ide tentang itu?

Aurelin
sumber
Apakah Anda dapat menemukan solusi untuk masalah ini? Saya mengalami gejala yang persis sama.
Gani Simsek
Hai Gani, saya tidak yakin. Saya menulis "tidak-yakin-jika-bekerja" -solusi di sini serverfault.com/a/426599/111458 . Maafkan jawaban saya yang terlambat. Jika Anda masih membutuhkan solusinya, coba jawaban saya dan beri tahu saya / kami jika itu berhasil =)
Aurelin

Jawaban:

7

Perasaan saya mengatakan Anda memiliki token keamanan yang sangat besar, mungkin karena pengguna adalah anggota dari sejumlah besar grup. Implementasi AD Kerberos akan memberikan Apache dengan Privilege Attribute Certificate (PAC) secara default. Struktur ini bisa besar jika pengguna adalah anggota dari sejumlah besar kelompok. Anda dapat menggunakan tokensz.exealat ini untuk melihat ukuran token pengguna.

Jika ini masalahnya, Anda dapat memodifikasi atribut UserAccountControl dari akun pengguna untuk mencegah PAC dikirim.

Anda mungkin dapat mengubah /etc/krb5.conffile Anda untuk merujuk KDC sebagai kdc = tcp/kdc.name.here. Masalah ini dapat terjadi jika PAC menyebabkan token terlalu besar untuk datagram UDP, tetapi memaksa komunikasi ke KDC dengan TCP juga merupakan solusi yang mungkin.

Mengubah nilai itu pada 1.000 pengguna tidak sulit untuk admin AD Anda jika itu memecahkan masalah Anda.

Evan Anderson
sumber
(Sial, tidak sengaja menghapus komentar. Sepertinya saya masih tidur) Yah, jadi saya mungkin bertanya kepada mereka apakah mereka akan mengubahnya, tapi saya ragu karena org. struktur. Dan bukan karena proyek saya super penting, jadi .. Saya akan mencoba modifikasi /etc/krb5.conf terlebih dahulu .. Terima kasih. Btw, ada ide mengapa masalah ini hanya terjadi di IE, tetapi tidak di Opera atau Firefox?
Aurelin
Saya mencoba mengubah /etc/krb5.conf, tetapi itu tidak memperbaikinya sama sekali. Hal lain yang baru saja saya ketahui adalah tautan Anda hanya menjelaskan solusi untuk Server Win2k3, tetapi kami menjalankan Win2k8 RC2. Saya lupa menyebutkan itu, maaf.
Aurelin
Baiklah .. Saya harus mengatakan itu agak aneh
Aurelin
2

Saya mengalami kesalahan ini terjadi pada situs Drupal 7 di Safari pada Mac dan menemukan bahwa menutup jendela peramban dan membersihkan cache peramban, keluar dari peramban, membukanya kembali dan memuat ulang laman berfungsi untuk menghentikan kesalahan yang hanya terjadi kali ini.

Permintaan Buruk Browser Anda mengirim permintaan yang tidak dapat dimengerti server ini. > Ukuran bidang tajuk permintaan melebihi batas server. Cookie / n

Dean Flory
sumber
2
Kedengarannya seperti solusi "Microsoft" bagi saya: Nyalakan kembali dan harap masalahnya hilang.
Colin 't Hart
1
@Colin, terlepas dari berapa banyak ini terdengar seperti jawaban "Microsoft", berkali-kali itulah yang diperlukan. Ketika membersihkan cache browser, banyak browser gagal mengosongkan cache di memori, karena itu perlu me-restart browser. Ini tentu berlaku untuk versi Mac untuk Firefox, Chrome dan Camino. Saya tidak pernah menggunakan Safari jadi saya tidak bisa mengomentari itu.
John Gardeniers
1

Saya menemukan solusi lain, meskipun saya tidak yakin apakah itu benar-benar berfungsi. Apache Docs menyatakan bahwa untuk paket besar saya harus mengatur LimitRequestFieldSize dan / atau LimitRequestLine.

Masalahnya adalah bahwa jika Anda ingin mengatur nilai LimitRequestLine menjadi lebih tinggi dari 8KB maka Anda harus memodifikasi sumber dan mengkompilasi ulang Apache, karena 8KB adalah maxSize tetap ( http://httpd.apache.org/docs/ 2.2 / mod / core.html # limitrequestline ).

Saya tidak tahu pasti apakah metode ini berfungsi, karena saya menginstal ulang apache dari repositori kami sendiri di server kedua nanti. Tampaknya ini adalah versi paket yang berbeda karena masalahnya tidak terjadi di sana.

Aurelin
sumber