Apache2、Kerberos:gss_accept_sec_context() 失败:请求了不受支持的机制

pet*_*hka 4 kerberos single-sign-on mod-auth-kerb apache-2.2

我想通过 mod_auth_kerb 在 Linux 上使用 Kerberos 和 Apache 2。

我将 .htaccess 添加到我的项目中,如下所示:

#SSLRequireSSL
AuthType Kerberos
AuthName "Kerberos Login"
KrbMethodNegotiate On
KrbMethodK5Passwd Off
KrbAuthRealms DOMAIN.COM
Krb5KeyTab /etc/httpd/httpd.keytab
KrbLocalUserMapping On
require valid-user
Run Code Online (Sandbox Code Playgroud)

当我尝试在 IE 或 Firefox 上测试单点登录时,我在 apache 日志中收到以下错误:

[Thu Jan 19 21:03:27 2012] [error] [client 10.65.0.1] gss_accept_sec_context() failed: An unsupported mechanism was requested (, Unknown error)
Run Code Online (Sandbox Code Playgroud)

我不知道它是什么以及我应该做什么才能让它发挥作用。

我的目标是让 REMOTE_USER 由 AD 用户名填充。但现在由于这个错误我无能为力......

小智 5

在一个简单的设置中,使用 mod_auth_gssapi 和 FreeIPA 作为 krb5 服务器并生成密钥表,我发现在命令旁边添加以下内容可以解决AuthType该问题。

BrowserMatch Windows gssapi-no-negotiate
Run Code Online (Sandbox Code Playgroud)

根据 andsens 的回答,这似乎确实发生在尝试使用 NTLM 的 Windows 客户端上。GssapiAllowedMech krb5并且GssapiBasicAuthMech krb5不给谈判带来成功的结果,所以唯一的解决办法似乎就是禁止谈判。虽然我不能保证这是准确的,但它对我有用。

相应的文档在这里