8.2. Использование билета Kerberos
FreeIPA использует протокол Kerberos для поддержки единого входа. Это позволяет указать имя пользователя и пароль только один раз, после чего можно получить доступ к службам управления идентификацией без повторного запроса системой учётных данных.
Получать билет Kerberos нужно только в том случае, если первоначальный билет Kerberos был уничтожен или срок его действия истек.
Пользователь FreeIPA, пройдя процедуру аутентификацию на локальном компьютере, также автоматически входит в FreeIPA. Т.е. после входа в систему ему не требуется использовать утилиту kinit
для доступа к ресурсам FreeIPA.
По умолчанию срок действия билета Kerberos составляет 24 часа:
$ ipa krbtpolicy-show
Максимальный срок жизни: 86400
Максимальный срок для обновления: 604800
Изменить это значение можно как в веб-интерфейсе, так и в командной строке, например:
$ ipa krbtpolicy-mod --maxlife=43200 --maxrenew=86400
Максимальный срок жизни: 43200
Максимальный срок для обновления: 86400
Получение билета Kerberos:
чтобы получить билет Kerberos для пользователя, который в данный момент вошел в систему в локальной системе, следует использовать
kinit
без указания имени пользователя:
[ivanov@comp01 ~]$ kinit
Password for ivanov@EXAMPLE.TEST:
чтобы получить билет Kerberos для пользователя, который не соответствует локальному имени пользователя, следует передать имя пользователя утилите
kinit
. Например, чтобы войти в систему как администратор:
[ivanov@comp01 ~]$ kinit admin
Password for admin@EXAMPLE.TEST:
чтобы убедиться, что вход в систему прошел успешно, можно воспользоваться утилитой
klist
для отображения кэшированного билета. В следующем примере кеш содержит билет для принципала ivanov, что означает, что на этом хосте только пользователь ivanov в настоящее время имеет доступ к службам FreeIPA:
[ivanov@comp01 ~]$ klist
Ticket cache: KEYRING:persistent:1034400003:krb_ccache_fxAUnBu
Default principal: ivanov@EXAMPLE.TEST
Valid starting Expires Service principal
01.09.2023 09:35:59 02.09.2023 09:31:20 krbtgt/EXAMPLE.TEST@EXAMPLE.TEST
Если проверка подлинности Kerberos работает правильно и у пользователя есть действительный билет, пользователь пройдёт автоматическую проверку подлинности (на странице https://ipa.example.test) и получит доступ к веб-интерфейсу.
Если срок действия билета Kerberos истёк, пользователю нужно пройти аутентификацию с помощью учётных данных. Но при повторном входе, веб-интерфейс FreeIPA откроется автоматически, без открытия диалогового окна входа в систему.
Если у пользователя есть действительный билет Kerberos истёк, но автоматической проверки подлинности не происходит, а при нажатии на кнопку
Войти появляется ошибка
Не удалось выполнить аутентификацию с Kerberos, необходимо убедиться, что браузер настроен для аутентификации Kerberos (см.
Настройка браузера для аутентификациию с Kerberos).
8.2.1. Настройка браузера для аутентификациию с Kerberos
Предварительно необходимо ввести компьютер в домен (см.
Разворачивание клиента FreeIPA) и убедиться, что доменный пользователь получает билет Kerberos.
8.2.1.1. Настройка Mozilla Firefox
Порядок действий:
В настройках браузера на странице (about:preferences#privacy) нажать кнопку Просмотр сертификатов…:
В открывшемся окне на вкладке убедиться в наличии сертификата:
Если сертификат отсутствует, загрузить его по ссылке https://ipa.example.test/ipa/config/ca.crt и Импортировать полученный сертификат, нажав кнопку Импорт:
В адресной строке ввести about:config, чтобы отобразить список текущих параметров конфигурации (необходимо будет нажать кнопку Принять риск и продолжить).
В поле Фильтр ввести negotiate, чтобы ограничить список параметров.
Выбрать параметр network.negotiate-auth.trusted-uris
.
Указать в этом параметре имя kerberos области (realm), включая предшествующую точку (.). Если нужно добавить несколько доменов, их необходимо указать через запятую.
8.2.1.2. Настройка Chromium
Порядок действий:
В настройках браузера на странице (chrome://settings/certificates) на вкладке убедиться в наличии сертификата:
Если сертификат отсутствует, загрузить его по ссылке https://ipa.example.test/ipa/config/ca.crt и Импортировать полученный сертификат, нажав кнопку Импорт:
В файл
/etc/chromium/policies/managed/policies.json
добавить строку:
{
"AuthServerAllowlist": "*.example.test"
}
где .example.test — имя kerberos области (realm).
Для применения настроек необходимо перезапустить браузер. Результат применения параметров политики для Chromium можно проверить, указав в адресной строке URL: "chrome://policy".
Для проверки работы аутентификации без изменения настроек браузера можно запустить браузер из командной строки, выполнив команду:
$ chromium-browser --auth-server-allowlist="*.example.test"
8.2.1.3. Настройка Chromium-Gost
Порядок действий:
В настройках браузера на странице (chrome://settings/certificates) на вкладке убедиться в наличии сертификата:
Если сертификат отсутствует, загрузить его по ссылке https://ipa.example.test/ipa/config/ca.crt и Импортировать полученный сертификат, нажав кнопку Импорт.
В файл
/etc/chromium/policies/managed/policies.json
добавить строку:
{
"AuthServerAllowlist": "*.example.test"
}
где .example.test — имя kerberos области (realm).
Для применения настроек необходимо перезапустить браузер. Результат применения параметров политики для Chromium-Gost можно проверить, указав в адресной строке URL: "chrome://policy".
Для проверки работы аутентификации без изменения настроек браузера можно запустить браузер из командной строки, выполнив команду:
$ chromium-gost --auth-server-allowlist="*.example.test"
8.2.1.4. Настройка «Яндекс.Браузера»
Порядок действий:
В настройках браузера на странице (chrome://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).
Для применения настроек необходимо перезапустить браузер. Результат применения параметров политики для «Яндекс.Браузера» можно проверить, указав в адресной строке URL: "browser://policy".