5

任何人都可以推荐一些非常好的资源来帮助 Apache 使用 Kerberos 对用户进行身份验证。

Kerberos 的背景阅读也很有用

谢谢

彼得

4

4 回答 4

4

mod_auth_kerb 是一个好的开始: http: //modauthkerb.sourceforge.net/。如果您需要 Active Directory 支持,请查看此处: http: //support.microsoft.com/ ?id=555092 。

于 2008-09-04T12:17:30.413 回答
1

我发现 mod_auth_spnego 也很好,因为它可以在 Windows 上使用 SSPI,而不需要 MIT Kerberos。mod_spnego

于 2009-10-23T12:43:59.453 回答
1

下面是一个使用 Active Directory 作为 KDC 的示例:http: //oslabs.mikro-net.com/krb_apache.html

于 2009-12-05T21:25:41.183 回答
1

我喜欢这篇关于配置 apache 以使用 Kerberos 的文章:

http://www.roguelynn.com/words/apache-kerberos-for-django/

(如果你不感兴趣,你可以跳过关于 django 的部分)

编辑:

完整的答案

配置 apache 以使用 Kerberos 身份验证非常容易。

我假设你已经在你的机器上正确配置了 Kerberos。

1) 您的网络服务器必须有 keytab [1]。

最重要的是,您的网络服务器必须能够读取密钥表!

2)您必须有适当的 httpd 模块进行身份验证 - mod_auth_kerb

LoadModule auth_kerb_module modules/mod_auth_kerb.so

3)然后你必须告诉apache关于Kerberos:

<Location /> 
    AuthName "Kerberos Authentication -- this will be showed to users via BasicAuth"
    AuthType Kerberos
    KrbMethodNegotiate On
    KrbMethodK5Passwd Off
    # this is the principal from your keytab (you may lose the FQDN part)
    KrbServiceName HTTP/$FQDN
    KrbAuthRealms KERBEROS_DOMAIN
    Krb5KeyTab /path/to/http.keytab
    Require valid-user

    Order Deny,Allow
    Deny from all
</Location>

然后 apache 将通过REMOTE_USERHTTP 标头将用户传递给您的应用程序。

就是这样。

我还建议您在设置期间打开调试 apache 日志记录。确保您有正确的时间并且 httpd 可以读取 keytab,仅此而已。

[1] http://kb.iu.edu/data/aumh.html

[2] Main resource: http://www.roguelynn.com/words/apache-kerberos-for-django/

于 2013-09-09T07:45:06.330 回答