когда я настроил аутентификацию 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
, который по умолчанию включен. Это ожидаемое поведение с вашей конфигурацией.
Боковые примечания
Если вы используете базовый механизм аутентификации, модуль не выполняет никакого специального шифрования. Передача имени пользователя и пароля выполняется в той же кодировке Base64, что и в Basic Auth. Его можно легко преобразовать в обычный текст. Чтобы противостоять этому, я бы предложил также использовать mod_ssl или Apache-SSL. Также рекомендуется использовать SSL-шифрование, если вы используете метод согласования.