Product SiteDocumentation Site

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).
Ошибка: «Не удалось выполнить аутентификацию с Kerberos»

8.2.1. Настройка браузера для аутентификациию с Kerberos

Предварительно необходимо ввести компьютер в домен (см. Разворачивание клиента FreeIPA) и убедиться, что доменный пользователь получает билет Kerberos.

8.2.1.1. Настройка Mozilla Firefox

Порядок действий:
  1. В настройках браузера на странице Приватность и защита (about:preferences#privacy) нажать кнопку Просмотр сертификатов…:
    Просмотр сертификатов
  2. В открывшемся окне на вкладке Центры сертификации убедиться в наличии сертификата:
    Сертификат example.test
  3. Если сертификат отсутствует, загрузить его по ссылке https://ipa.example.test/ipa/config/ca.crt и Импортировать полученный сертификат, нажав кнопку Импорт:
    Ссылка для настройки браузера на странице входа FreeIPA
  4. В адресной строке ввести about:config, чтобы отобразить список текущих параметров конфигурации (необходимо будет нажать кнопку Принять риск и продолжить).
  5. В поле Фильтр ввести negotiate, чтобы ограничить список параметров.
  6. Выбрать параметр network.negotiate-auth.trusted-uris.
  7. Указать в этом параметре имя kerberos области (realm), включая предшествующую точку (.). Если нужно добавить несколько доменов, их необходимо указать через запятую.
    Настройка Mozilla Firefox

8.2.1.2. Настройка Chromium

Порядок действий:
  1. В настройках браузера на странице Конфиденциальность и безопасность (chrome://settings/certificates) на вкладке Центры сертификации убедиться в наличии сертификата:
    Сертификат example.test
  2. Если сертификат отсутствует, загрузить его по ссылке https://ipa.example.test/ipa/config/ca.crt и Импортировать полученный сертификат, нажав кнопку Импорт:
    Импорт сертификата example.test
  3. В файл /etc/chromium/policies/managed/policies.json добавить строку:
    {
        "AuthServerAllowlist": "*.example.test"
    }
    
    где .example.test — имя kerberos области (realm).
  4. Для применения настроек необходимо перезапустить браузер. Результат применения параметров политики для Chromium можно проверить, указав в адресной строке URL: "chrome://policy".

    Примечание

    Для проверки работы аутентификации без изменения настроек браузера можно запустить браузер из командной строки, выполнив команду:
    $ chromium-browser --auth-server-allowlist="*.example.test"
    

8.2.1.3. Настройка Chromium-Gost

Порядок действий:
  1. В настройках браузера на странице Конфиденциальность и безопасность (chrome://settings/certificates) на вкладке Центры сертификации убедиться в наличии сертификата:
    Сертификат example.test
  2. Если сертификат отсутствует, загрузить его по ссылке https://ipa.example.test/ipa/config/ca.crt и Импортировать полученный сертификат, нажав кнопку Импорт.
  3. В файл /etc/chromium/policies/managed/policies.json добавить строку:
    {
        "AuthServerAllowlist": "*.example.test"
    }
    
    где .example.test — имя kerberos области (realm).
  4. Для применения настроек необходимо перезапустить браузер. Результат применения параметров политики для Chromium-Gost можно проверить, указав в адресной строке URL: "chrome://policy".

    Примечание

    Для проверки работы аутентификации без изменения настроек браузера можно запустить браузер из командной строки, выполнив команду:
    $ chromium-gost --auth-server-allowlist="*.example.test"
    

8.2.1.4. Настройка «Яндекс.Браузера»

Порядок действий:
  1. В настройках браузера на странице Конфиденциальность и безопасность (chrome://settings/certificates) на вкладке Центры сертификации убедиться в наличии сертификата:
    Сертификат example.test
  2. Если сертификат отсутствует, загрузить его по ссылке https://ipa.example.test/ipa/config/ca.crt и Импортировать полученный сертификат, нажав кнопку Импорт.
  3. В файл /etc/opt/yandex/browser/policies/managed/policies.json добавить строку:
    {
        "AuthServerAllowlist": "*.example.test"
    }
    
    где .example.test — имя kerberos области (realm).
  4. Для применения настроек необходимо перезапустить браузер. Результат применения параметров политики для «Яндекс.Браузера» можно проверить, указав в адресной строке URL: "browser://policy".