apache kerberos 身份验证票证在 klist 下不可见

apache kerberos 身份验证票证在 klist 下不可见

当我使用 kerberos 配置 apache 身份验证时,它工作正常。它要求输入密码并登录网站。它正在创建这样的日志信息。 /var/log/kerberos/krb5kdc.log

Jul 03 15:30:03 ashokkrishna-Lenovo-B560 krb5kdc[4060](info): AS_REQ (6 etypes {18 17 16 23 25 26}) 192.168.1.224: NEEDED_PREAUTH: [email protected] for krbtgt/[email protected], Additional pre-authentication required
Jul 03 15:30:03 ashokkrishna-Lenovo-B560 krb5kdc[4060](info): AS_REQ (6 etypes {18 17 16 23 25 26}) 192.168.1.224: ISSUE: authtime 1435917603, etypes {rep=18 tkt=18 ses=18}, [email protected] for krbtgt/[email protected]

但是当我打

ashokkrishna@ashokkrishna-Lenovo-B560:~$ klist
klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_1000)

它没有列出任何已获得的票证。为什么?每次我打开 Firefox 时,网站都会一遍又一遍地询问密码和用户名,尽管我的票证到期时间足够长。

但是当我使用添加用户时

ashokkrishna@ashokkrishna-Lenovo-B560:~$ kinit ashokkrishna
Password for [email protected]: 

ashokkrishna@ashokkrishna-Lenovo-B560:~$ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: [email protected]

Valid starting       Expires              Service principal
2015-07-03T15:56:33  2015-07-04T01:56:33  krbtgt/[email protected]
    renew until 2015-07-04T15:56:30
2015-07-03T15:56:44  2015-07-04T01:56:33  HTTP/[email protected]
    renew until 2015-07-04T15:56:30

它运行良好。

为什么会发生这种情况。

编辑: /etc/apache2/sites-enabled/sites-enabled。**

<Directory /var/www/html/auth-kerberos>
    AuthType Kerberos
    AuthName "Kerberos Authntication"
    KrbAuthRealms IGROUP.COM
    Krb5Keytab /etc/krb5.keytab
    KrbMethodNegotiate On
    KrbSaveCredentials Off
    KrbVerifyKDC Off
    Require valid-user
</Directory>**

kadmin.local 配置。

kadmin.local: listprincs
HTTP/[email protected]
K/[email protected]
ashokkrishna/[email protected]
[email protected]
host/[email protected]
kadmin/[email protected]
kadmin/[email protected]
kadmin/[email protected]
krbtgt/[email protected]
root/[email protected]

ashokkrishna 是用户(客户端)。我有一件事,那就是 kdc、admin-server、apache-server、客户端都在单个主机(pc)下。我在单个系统中进行测试。

答案1

KrbMethodNegotiate由于您没有有效票证(在您的情况下是任何票证)而失败时,Apache 将故障恢复到KrbMethodK5Passwd默认情况下处于启用状态的。 这是预期的行为与您的配置。


补充说明

  1. Apache 不应使用系统密钥表。为其配置应用程序密钥表。
  2. 如果您使用的是 Basic Auth 机制,则该模块不会进行任何类型的特殊加密。用户名和密码的传递使用与 Basic Auth 相同的 Base64 编码。这可以轻松转换为纯文本。为了解决这个问题,我建议也使用 mod_ssl 或 Apache-SSL。如果您使用的是 Negotiate 方法,也建议使用 SSL 加密。

答案2

[Kerberos 身份验证]运行正常。它要求输入密码并登录网站。

您的 Apache 服务器可能配置为在无法协商 Kerberos 身份验证时允许某种形式的后备身份验证。
因为如果您的浏览器提供了 Kerberos 票证,您将不是已提示输入用户名和密码。

对我来说,这一事实证实了您既看不到您的个人票授予票,也看不到服务票。

一旦你手动获取了票据授予票据kinit,Firefox 才能够并愿意与网络服务器协商 Kerberos 身份验证,然后使用服务票据而不是用户名/密码登录。这是klist第二次运行时显示的内容。

相关内容