Aur*_*lin 10 single-sign-on mod-auth-kerb bad-request apache-2.2
我正在通过运行在 Apache(SLES 11.1 上的 Apache2)上的网站为 Active Directory 用户设置 SSO,并且在使用 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>
Run Code Online (Sandbox Code Playgroud)
我还确保删除了 cookie,并为 LimitRequestFieldSize 和 LimitRequestLine 尝试了几个较小的值。
另一件对我来说似乎很奇怪的事情是,即使使用 LogLevel 调试,我也不会得到任何关于此的日志。日志的最后一行是
ssl_engine_kernel.c(1879): OpenSSL: Write: SSL negotiation finished successfully
Run Code Online (Sandbox Code Playgroud)
有没有人有这个想法?
我的直觉说你有一个非常大的安全令牌,可能是因为用户是大量组的成员。默认情况下,AD Kerberos 实现将为 Apache 提供特权属性证书(PAC)。如果用户是大量组的成员,则此结构可能很大。您可以使用该tokensz.exe
工具查看用户的令牌大小。
如果这是问题,您可以修改用户帐户的 UserAccountControl 属性以防止发送 PAC。
您可以通过修改/etc/krb5.conf
文件以将 KDC 引用为kdc = tcp/kdc.name.here
. 如果 PAC 导致令牌对于 UDP 数据报来说太大,则会出现此问题,但强制使用 TCP 与 KDC 通信也是一种可能的解决方法。
如果它解决了您的问题,那么更改 1,000 个用户的该值对于您的 AD 管理员来说并不困难。
归档时间: |
|
查看次数: |
36294 次 |
最近记录: |