Назад | Перейти на главную страницу

билеты проверки подлинности apache kerberos не отображаются в klist

когда я настроил аутентификацию apache с помощью Kerberos. он работает нормально. Он запрашивает пароль и авторизуется на сайте. и он создает такую ​​информацию журнала. /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: ashokkrishna@IGROUP.COM for krbtgt/IGROUP.COM@IGROUP.COM, 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}, ashokkrishna@IGROUP.COM for krbtgt/IGROUP.COM@IGROUP.COM

но когда я ударил

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 ashokkrishna@IGROUP.COM: 

ashokkrishna@ashokkrishna-Lenovo-B560:~$ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: ashokkrishna@IGROUP.COM

Valid starting       Expires              Service principal
2015-07-03T15:56:33  2015-07-04T01:56:33  krbtgt/IGROUP.COM@IGROUP.COM
    renew until 2015-07-04T15:56:30
2015-07-03T15:56:44  2015-07-04T01:56:33  HTTP/igroup.com@IGROUP.COM
    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/igroup.com@IGROUP.COM
K/M@IGROUP.COM
ashokkrishna/admin@IGROUP.COM
ashokkrishna@IGROUP.COM
host/igroup.com@IGROUP.COM
kadmin/admin@IGROUP.COM
kadmin/changepw@IGROUP.COM
kadmin/igroup.com@IGROUP.COM
krbtgt/IGROUP.COM@IGROUP.COM
root/admin@IGROUP.COM

ashokkrishna - это пользователь (клиент). И одна вещь, которая у меня есть, kdc, admin-server, apache-server, client - все находятся под одним хостом (ПК). Тестирую в единой системе.

[Проверка подлинности Kerberos] работает нормально. Он запрашивает пароль и авторизуется на сайте.

Ваш сервер Apache, вероятно, настроен так, чтобы разрешить какую-либо форму резервной аутентификации, когда невозможно согласовать аутентификацию Kerberos.
Потому что, если бы ваш браузер представил билет Kerberos, вы бы не были запрошены имя пользователя и пароль.

Мне это подтверждается тем фактом, что вы не видите ни личного билета на выдачу билетов, ни сервисного билета.

Как только вы вручную получите билет на выдачу билета с kinit, только тогда Firefox может и желает согласовывать аутентификацию Kerberos с веб-сервером, и тогда для входа в систему используется билет службы, а не имя пользователя / пароль. Что показывает, когда вы бежите klist второй раз.

когда KrbMethodNegotiate не работает, потому что у вас нет действительного (в вашем случае любого) билета, Apache не возвращается к KrbMethodK5Passwd, который по умолчанию включен. Это ожидаемое поведение с вашей конфигурацией.


Боковые примечания

  1. Apache не должен использовать системную клавиатуру. Настройте для него keytab приложения.
  2. Если вы используете базовый механизм аутентификации, модуль не выполняет никакого специального шифрования. Передача имени пользователя и пароля выполняется в той же кодировке Base64, что и в Basic Auth. Его можно легко преобразовать в обычный текст. Чтобы противостоять этому, я бы предложил также использовать mod_ssl или Apache-SSL. Также рекомендуется использовать SSL-шифрование, если вы используете метод согласования.