首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kerberos &登录网站

Kerberos &登录网站
EN

Server Fault用户
提问于 2013-10-18 21:52:18
回答 1查看 8.4K关注 0票数 2

我有一个网站运行在Linux计算机上使用Apache。我使用mod_auth_kerb对服务器进行单点Kerberos身份验证。

为了使Kerberos正确工作,我在Active中创建了一个名为dummy的服务帐户。

我使用以下命令在Windows服务器上使用ktpass.exe为Linux服务器生成了一个keytab:

ktpass /out C:\krb5.keytab /princ HTTP/example.com@REALM.EXAMPLE.COM /mapuser dummy@REALM.EXAMPLE.COM /crypto RC4-HMAC-NT /ptype KRB5_NT_PRINCIPAL /pass xxxxxxxxx

我可以使用以下命令从Linux服务器成功地获得票证:

kinit -k -t /path/to/keytab HTTP/example.com@REALM.EXAMPLE.COM

..。然后用klist查看机票。

我还用以下Kerberos属性配置了我的web服务器:

代码语言:javascript
复制
<Directory />
    AuthType                Kerberos
    AuthName                "Example.com Kerberos domain"
    KrbMethodK5Passwd       Off
    KrbAuthRealms           EXAMPLE.COM
    KrbServiceName          HTTP/example.com@REALM.EXAMPLE.COM
    Krb5KeyTab              /path/to/keytab
    Require                 valid-user
    SSLRequireSSL
    <Files wsgi.py>
            Order deny,allow
            Allow from all
    </Files>
</Directory>

但是,当我尝试登录到网站(从另一个用户名为“Jeff”的桌面)时,我的Kerberos凭据不会自动被web服务器接受。它应该允许我在那之后立即进入,但它没有。我从mod_auth_kerb日志中获得的唯一信息是:

kerb_authenticate_user entered with user (NULL) and auth_type Kerberos

但是,当我将mod_auth_kerb设置KrbMethodK5Passwd更改为On时,会显示更多信息:

代码语言:javascript
复制
[Fri Oct 18 17:26:44 2013] [debug] src/mod_auth_kerb.c(1939): [client xxx.xxx.xxx.xxx] kerb_authenticate_user entered with user (NULL) and auth_type Kerberos
[Fri Oct 18 17:26:44 2013] [debug] src/mod_auth_kerb.c(1031): [client xxx.xxx.xxx.xxx] Using HTTP/example.com@REALM.EXAMPLE.COM as server principal for password verification
[Fri Oct 18 17:26:44 2013] [debug] src/mod_auth_kerb.c(735): [client xxx.xxx.xxx.xxx] Trying to get TGT for user jeff@REALM.EXAMPLE.COM
[Fri Oct 18 17:26:44 2013] [debug] src/mod_auth_kerb.c(645): [client xxx.xxx.xxx.xxx] Trying to verify authenticity of KDC using principal HTTP/example.com@REALM.EXAMPLE.COM
[Fri Oct 18 17:26:44 2013] [debug] src/mod_auth_kerb.c(1110): [client xxx.xxx.xxx.xxx] kerb_authenticate_user_krb5pwd ret=0 user=jeff@REALM.EXAMPLE.COM authtype=Basic

我遗漏了什么?我已经学习了很多在线教程,并且找不到Kerberos凭证不允许访问的原因。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2013-10-21 22:19:01

在深入研究了更多的日志信息之后,我发现客户机没有正确地响应服务器的票证。您可以在客户端机器上判断出问题的方法是,您将看到Apache服务器的错误消息“验证krb5凭据失败:在Kerberos数据库中找不到服务器”。在客户机上的/etc/krb5.conf文件中,您必须确保web域名映射到正确的Kerberos领域:

代码语言:javascript
复制
[domain_realm]
    example.com = REALM.EXAMPLE.COM
    .example.com = REALM.EXAMPLE.COM

否则,客户端将拒绝服务器,因为Kerberos票证可能只来自显式允许的领域。

我希望这个信息能帮助到其他人!

票数 3
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/547110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档