8.2. Использование билета Kerberos
FreeIPA использует протокол Kerberos для поддержки единого входа (Single Sign-On). Это позволяет указать имя пользователя и пароль только один раз, после чего можно получить доступ ко всем интегрированным службам без повторного ввода учётных данных.
Получать билет Kerberos вручную (kinit) нужно только в том случае, если текущий билет отсутствует, уничтожен или истёк.
Если пользователь вошёл в систему как доменный пользователь (например, через SSSD), он автоматически получает Kerberos-билет и может использовать FreeIPA без вызова kinit.
По умолчанию срок действия билета Kerberos составляет 24 часа:
$ ipa krbtpolicy-show
Максимальный срок жизни: 86400
Максимальный срок для обновления: 604800
Изменить это значение можно как в веб-интерфейсе, так и в командной строке, например:
$ ipa krbtpolicy-mod --maxlife=43200 --maxrenew=86400
Максимальный срок жизни: 43200
Максимальный срок для обновления: 86400
Получение билета вручную:
чтобы получить Kerberos-билет для текущего пользователя, следует использовать
kinit без указания имени пользователя:
[ivanov@comp01 ~]$ kinit
Password for ivanov@EXAMPLE.TEST:
чтобы получить Kerberos-билет для другого пользователя (например, администратора), следует передать имя пользователя утилите
kinit:
[ivanov@comp01 ~]$ kinit admin
Password for admin@EXAMPLE.TEST:
проверка билета:
[ivanov@comp01 ~]$ klist
Ticket cache: KEYRING:persistent:1028400003:1028400003
Default principal: ivanov@EXAMPLE.TEST
Valid starting Expires Service principal
11.09.2025 19:06:30 12.09.2025 19:06:18 krbtgt/EXAMPLE.TEST@EXAMPLE.TEST
Если у пользователя есть действительный билет Kerberos и браузер настроен правильно, при открытии https://ipa.example.test произойдёт автоматическая аутентификация без диалогового окна и пользователь получит доступ к веб-интерфейсу.
Если билет истёк, потребуется ввести учётные данные вручную. После успешного входа последующие сеансы (в течение срока действия нового билета) будут автоматическими.
Если у пользователя есть действительный билет Kerberos, но автоматической проверки подлинности не происходит, а при нажатии кнопки
Войти появляется ошибка
Не удалось выполнить аутентификацию с Kerberos, необходимо убедиться, что браузер настроен для аутентификации Kerberos (см. раздел
Настройка браузера для аутентификации Kerberos).
8.2.1. Настройка браузера для аутентификации Kerberos
Перед настройкой необходимо убедиться, что:
8.2.1.1. Mozilla Firefox
Порядок действий:
В настройках браузера на странице (about:preferences#privacy) нажать кнопку Просмотр сертификатов…:
В открывшемся окне на вкладке убедиться в наличии сертификата для example.test:
Если сертификат отсутствует, загрузить его по ссылке https://ipa.example.test/ipa/config/ca.crt и импортировать полученный сертификат, нажав кнопку Импортировать….
Для загрузки сертификата также можно щёлкнуть ссылку для настройки браузера на экране входа в веб-интерфейс:
И на открывшейся странице нажать кнопку Import Certificate Authority certificate.
В адресной строке ввести about:config, чтобы отобразить список текущих параметров конфигурации (необходимо будет нажать кнопку Принять риск и продолжить).
В поле Фильтр ввести negotiate, чтобы ограничить список параметров.
Найти параметр network.negotiate-auth.trusted-uris.
Указать в этом параметре имя kerberos области (realm), включая предшествующую точку (.). Если нужно добавить несколько доменов, их необходимо указать через запятую.
Порядок действий:
В настройках браузера на странице в разделе открыть вкладку (chrome://certificate-manager/localcerts/usercerts) и убедиться в наличии сертификата:
Если сертификат отсутствует, загрузить его по ссылке https://ipa.example.test/ipa/config/ca.crt и импортировать полученный сертификат в раздел , нажав кнопку Импорт:
Для загрузки сертификата также можно щёлкнуть ссылку для настройки браузера на экране входа в веб-интерфейс:
И на открывшейся странице нажать кнопку Import Certificate Authority certificate.
Создать или отредактировать файл политики
/etc/chromium/policies/managed/policies.json, добавив строку:
{
"AuthServerAllowlist": "*.example.test"
}
где .example.test — имя Kerberos-области (realm).
Перезапустить браузер.
Проверить применение политик, указав в адресной строке URL: chrome://policy.
Для проверки работы аутентификации без изменения настроек браузера можно запустить браузер из командной строки, выполнив команду:
$ chromium-browser --auth-server-allowlist="*.example.test"
или
$ chromium --auth-server-allowlist="*.example.test"
Порядок действий:
В настройках браузера на странице (browser://settings/certificates) на вкладке убедиться в наличии сертификата:
Если сертификат отсутствует, загрузить его по ссылке https://ipa.example.test/ipa/config/ca.crt и импортировать полученный сертификат, нажав кнопку Импорт.
Создать или отредактировать файл
/etc/opt/yandex/browser/policies/managed/policies.json добавить строку:
{
"AuthServerAllowlist": "*.example.test"
}
где .example.test — имя kerberos области (realm).
Если каталоги
/etc/opt/yandex/browser/policies/managed/ отсутствуют, их необходимо создать заранее:
# mkdir -p /etc/opt/yandex/browser/policies/managed/
Перезапустить браузер.
Проверить применение политик, указав в адресной строке URL: browser://policy.