我们正在尝试获取在 centos 5.1 上运行 apache2 的应用程序服务器,以使用 NTLM 为许多应用程序提供 SSO。
我们可以让 SSO 与 IE 配合使用,但 SSO 与 Firefox 配合使用会失败。我们已更新 Firefox 中 about:config 中的 NTLM 信任条目。但仍然会失败。
我们当前的 apache 配置如下所示:
Alias /someapp "/opt/someapp/public"
<Directory "/opt/someapp/public/">
PerlAuthenHandler Apache2::AuthenNTLM
AuthType ntlm,basic
AuthName Basic
require valid-user
PerlAddVar ntdomain "MYDOMAIN primayad backupad"
PerlSetVar defaultdomain MYDOMAIN
PerlSetVar fallbackdomain MYDOMAIN
PerlSetVar splitdomainprefix 1
AllowOverride All
Order allow,deny
Allow from all
PerlSetVar ntlmdebug 3
#PerlSetVar ntlmauthoritative off
PerlsetVar basicauth off
</Directory>
有什么想法为什么这对 IE 有效,但 Firefox 会出现一个提示用户身份验证的对话框??
谢谢,
授予
答案1
这是因为 IE 默认执行全局 NTLM 身份验证,而 Firefox 则采用另一种方式,仅在明确配置时才尝试 NTLM 身份验证,否则会忽略 SPNEGO 挑战。
您需要about:config
在 Firefox 中打开并过滤以查找网络.自动-ntlm-auth.trusted-uris默认情况下没有值。您需要输入与要执行 NTLM 身份验证的主机匹配的主机名。我读过其他网站建议输入完整 URL,但我使用.domain.example.com用于我们的内部 Active Directory 域控制主机。
需要注意的是,这仅适用于 Windows 机器上的 Firefox,但我还没有在 Linux 机器上成功运行,即使它作为成员加入 AD 域。