Apache 中的 Kerberos 用户身份验证

Kerberos user authentication in Apache

提问人:Vagnerr 提问时间:9/4/2008 更新时间:4/7/2014 访问量:8764

问:

任何人都可以推荐一些非常好的资源,了解如何让Apache使用Kerberos对用户进行身份验证。

关于Kerberos的背景资料也很有用

谢谢

彼得

Apache 身份验证 Kerberos

评论


答:

4赞 Joseph Daigle 9/4/2008 #1

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

1赞 schlenk 10/23/2009 #2

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

1赞 s00th 12/6/2009 #3

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

1赞 Tomas Tomecek 9/9/2013 #4

我喜欢这篇关于配置 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 会通过 HTTP 标头将用户传递给您的应用程序。REMOTE_USER

就是这样。

我还建议您在安装过程中打开apache中的调试日志记录。确保你有正确的时间,httpd可以读取keytab,仅此而已。

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

[2] 主要资源:http://www.roguelynn.com/words/apache-kerberos-for-django/

评论

2赞 Taryn 9/11/2013
感谢您发布您的答案!请注意,您应该在此处、本网站上发布答案的基本部分,否则您的帖子可能会被删除 请参阅常见问题解答,其中提到了“仅不过一个链接”的答案。如果您愿意,您仍然可以包含该链接,但只能作为“参考”。答案应该独立存在,而不需要链接。
2赞 Tomas Tomecek 9/13/2013
@bluefeet 谢谢你指出这一点。当我查看该问题时,它指出该问题的作者正在为“使用 Kerberos 对用户进行身份验证的 Apache”寻找“好的资源”。也在寻找“Kerberos的背景阅读”。我理解它,因为他/她正在寻找一些关于Kerberos如何工作或如何设置它的文章,教程,书籍或博客文章。这正是我的答案所包含的。我知道它违反了您提到的规则,但是如果它(也许)是问题的正确答案呢?但我想我可以改进它。