Я установил сервер KDC и создал область EXAMPLE.COM
. Вот мой файл krb5.conf:
[libdefaults]
renew_lifetime = 7d
forwardable = true
default_realm = EXAMPLE.COM
ticket_lifetime = 24h
dns_lookup_realm = false
dns_lookup_kdc = false
default_ccache_name = /tmp/krb5cc_%{uid}
#default_tgs_enctypes = aes des3-cbc-sha1 rc4 des-cbc-md5
#default_tkt_enctypes = aes des3-cbc-sha1 rc4 des-cbc-md5
[logging]
default = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
kdc = FILE:/var/log/krb5kdc.log
[realms]
EXAMPLE.COM = {
admin_server = my.linux-server.de
kdc = my.linux-server.de
}
Я также добавил пользователя testuser
с паролем abc
через kadmin.local
:
kadmin.local: addprinc testuser@EXAMPLE.COM
Я могу успешно войти в свою виртуальную машину Ubuntu:
[root@ubuntu-vm ~]# kinit testuser
Password for testuser@EXAMPLE.COM:
затем klist
показывает:
[root@ubuntu-vm ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: testuser@EXAMPLE.COM
Valid starting Expires Service principal
01.12.2016 14:58:40 02.12.2016 14:58:40 krbtgt/EXAMPLE.COM@EXAMPLE.COM
и я могу открыть свой пользовательский интерфейс Kererized Hadoop.
================================================== ======================
Проблема делает мой клиент Windows. Я настроил его, скопировав krb5.conf
файл с машины KDC в клиент Windows и переименовал его в kdc5.ini
.
Я также установил домен компьютера:
C:> Ksetup /setdomain EXAMPLE.COM
После перезагрузки я попытался подключиться к своей области KDC через
C:> kinit testuser@EXAMPLE.COM
Password for testuser@EXAMPLE.COM:
<empty row>
Пока все выглядело хорошо, но когда я звоню klist
Получаю только такой результат:
Aktuelle Anmelde-ID ist 0:0x7eca34
Zwischengespeicherte Tickets: (0)
На английском что-то вроде ... cached tickets: (0)
Я также не могу открыть свой веб-сайт на клиенте Windows, поэтому я предполагаю, что есть проблема совместимости, поскольку у меня не было проблем с подключением через мой клиент Ubuntu.
Мой браузер (Firefox) должен быть правильно настроен на обеих машинах (Ubuntu и Windows), я установил network.negotiate-auth.trusted-uris
собственность http://my.linux-server.de
(поскольку я это сделал, клиент Ubuntu может открыть сайт). Curl также работает для Ubuntu, но не для Windows.
ОБНОВЛЕНИЕ: также безуспешно пробовал второй клиент Windows ...
Наконец-то все заработало! Я сделал следующие шаги на компьютере с Windows 7 (64-разрядная версия), они также должны работать с Windows 10:
MIT Kerberos for Windows 4.1
и установил его с настройками по умолчанию.C:\ProgramData\MIT\Kerberos\krb5.ini
и вставьте следующие настройки:Новое содержимое файла:
[libdefaults]
default_realm = EXAMPLE.COM
[realms]
EXAMPLE.COM = {
admin_server = your.admin.server.de
kdc = your.kdc.server.de
}
about:config
в адресной строке браузера Firefox и установите следующие параметры:Параметр = Пары значений:
network.negotiate-auth.delegation-uris = http://your.kdc.server.de
network.negotiate-auth.trusted-uris = http://your.kdc.server.de
network.auth.use-sspi = false
Использовать MIT Kerberos Ticket Manager
чтобы получить новый билет для вашего пользователя:
Вы должны увидеть свой билет в менеджере:
8. Теперь у вас должна быть возможность открыть веб-страницу, требующую аутентификации: