Настройка SSO аутентификации в интегрированной системе проверки подлинности FreeIPA.

SSO аутентификация - технология, позволяющая использовать различные информационные системы без необходимости повторной аутентификации.

В данной статье мы рассмотрим использование SSO при аутентификации на веб-прокси.

В качестве интегрированной системы проверки подлинности мы будем использовать FreeIPA .

Настройка SSO аутентификации в интегрированной системе проверки подлинности FreeIPA состоит из нескольких этапов:

Настройка SSO аутентификации в интегрированной системе проверки подлинности FreeIPA перекликается с настройкой аутентификации в Active Directory через Kerberos.

Для дальнейшей настроки примем следующие значения:

локальная сеть

192.168.1.0/24

домен FreeIPA

freeipa.local

контроллер домена FreeIPA

dc.freeipa.local

IP адрес контроллера домена FreeIPA

192.168.1.4

имя устройства TING

ting.freeipa.local

IP адрес устройства TING

192.168.1.2

Примечание

Установка и настройка сервера и клиента, разворачивание на них системы FreeIPA выходит за рамки данной статьи и должно осуществляться компетентными специалистами согласно документации. Мы предполагаем, что такая настройка уже выполнена согласно предоставленных выше данных.

Настройка FreeIPA.

С помощью веб-браузера подключитесь к консоли управления FreeIPA по адресу: https://dc.freeipa.local, где dc.freeipa.local - адрес вашего контроллера домена.

Залогиньтесь в консоль управления, используя учетные данные с правами администратора созданного домена.

Примечание

Если у вас не создана обратная зона DNS 192.168.1.0/24 - создайте ее и проверьте, чтобы в ней содержалась запись для ip адреса контроллера домена FreeIPA.

Создайте учетную запись компьютера (узла) для устройства TING.

Для этого перейдите в меню Идентификация -> Узлы и нажмите кнопку Добавить.

_images/sso_freeipa_add_comp.png

Перейдите в раздел Сетевые службы -> DNS -> Зоны DNS

Проверьте, что запись появилась в прямой freeipa.local и обратной 1.168.192.in-addr.arpa зоне. Если нет - добавьте эти записи вручную.

Добавьте принципал (службу) HTTP к созданной учетной записи компьютера устройства TING.

Для этого перейдите в раздел Идентификация -> Службы и нажмите кнопку Добавить

_images/sso_freeipa_add_principal.png

где:

Служба

HTTP

Имя узла

имя устройства TING

Настройка устройства TING.

  1. Настройка имени устройства и DNS

    Пройдите в раздел Система -> Настройки -> Общие настройки

    Проверьте, чтоб следующие системные настройки были выполнены корректно:

    Имя хоста

    ting

    Домен

    freeipa.local

    В случае, если вы не используете встроенный сервер DNS, такой как Unbound DNS, вам необходимо:

    • Установить флаг Не используйте локальную службу DNS в качестве сервера имен для этой системы

    • В поле DNS-серверы прописать IP адрес контроллера домена FreeIPA (192.168.1.4)

    В случае, если вы используете встроенный сервер DNS, такой как Unbound DNS, вам необходимо согласно документации настроить переадресацию либо всех запросов DNS, либо только прямой и обратной зоны созданного вами домена.

  2. Настройка сетевого времени

    Перейдите в раздел Службы -> Сетевое время -> Общие.

    В поле Серверы времени укажите имя контроллера домена FreeIPA dc.freeipa.local либо IP адрес контроллера домена FreeIPA 192.168.1.4.

    Примечание

    Время на контроллере домена и устройстве TING должно быть синхронизированно.

  3. Настройка LDAP коннектора

    Пройдите в раздел Система -> Доступ -> Серверы, в правом верхнем углу нажмите на кнопку Добавить сервер и задайте следующие настройки:

    Описательное имя

    freeipa

    Тип

    LDAP

    Имя хоста или IP-адрес

    192.168.1.4

    Значение порта

    389

    Транспортный протокол

    TCP

    Версия протокола

    3

    Привязать параметры доступа

    пусто 1

    Область поиска

    Уровень: Целое поддерево

    Базовый DN

    DC=freeipa,DC=local

    Контейнеры для аутентификации

    cn=users,cn=accounts,dc=freeipa,dc=local

    Начальный шаблон

    FreeIPA

    Атрибут присвоения имени пользователю

    uid

    1

    Сервер FreeIPA разрешает анонимную привязку (binding), поэтому данное поле следует оставить пустым. В случае, если вы отключили анонимную привязку (binding), необходимо указать имя и пароль.

  4. Проверка LDAP коннектора

    Пройдите в раздел Система -> Доступ -> Средство проверки

    Выберите в списке созданный нами сервер, введите имя и пароль учетной записи домена.

    Результатом должно быть сообщение об успешной проверке:

    | Пользователь: admin аутентификация прошла успешно
    | Этот пользователь состоит в этих группах:
    | Атрибуты, полученные от сервера:
    | dn => uid=admin,cn=users,cn=accounts,dc=freeipa,dc=local
    
  5. Настройки веб-прокси

    • В разделе Службы -> Веб-прокси -> Администрирование, на вкладке Основные настройки прокси, установите флаг Включить прокси, если он еще не установлен.

      _images/sso_enable_web_proxy1.png
    • В разделе Службы -> Веб-прокси -> Администрирование, на вкладке Перенаправляющий прокси -> Настройка Аутентификации, в поле Метод аутентификации укажите ваш настроенный LDAP-коннектор.

      _images/sso_proxy_select_ldap1.png
    • В разделе Службы -> Веб-прокси -> Администрирование, на вкладке Перенаправляющий прокси, в меню Основные настройки перенаправления снимите флаг Включить прозрачный HTTP-прокси, если он установлен.

      Примечание

      Использование механизма прозрачного HTTP-проксирования не совместимо ни с одним методом аутентификации. Чтобы использовать аутенитификацию Kerberos, данный механизм должен быть выключен.

  6. Установка плагина os-proxy-sso

    Пройдите в раздел Система -> Прошивка -> Обновления. На вкладке Плагины нажмите на кнопку + напротив плагина os-proxy-sso для его установки.

    После установки плагина os-proxy-sso, в разделе Службы -> Веб-прокси появляется подраздел Технология единого входа (SSO).

  7. Настройка аутентификации по протоколу Kerberos

    7.1 Включите Single Sign On

    В разделе Службы -> Веб-прокси -> Технология единого входа (SSO), на вкладке Общие настройки, установите флаг Включить Single Sign On.

    В поле Реализация AD Kerberos выберите значение Windows 2008 with AES.

    _images/sso_enable1.png

    Примечание

    При нажатии на кнопку Применить будут произведены следующие действия:

    • происходит автогенерация конфигурационного файла krb5.conf для библиотеки Kerberos

    • модифицируется конфигурационный файл Squid /usr/local/sbin/squid.conf для загрузки хелпера Kerberos-аутентификации negotiate_kerberos_auth

    • производится перезапуск веб-прокси сервера Squid

    7.2 Настройте аутентификацию по протоколу Kerberos

    • Перейдите в раздел Службы -> Веб-прокси -> Технология единого входа (SSO) -> Аутентификация по протоколу Kerberos и нажмите кнопку Обновить

      _images/sso_check_kerb1.png

      Все пункты, кроме Файл keytab должны быть отмечены зеленым.

      Если это не так - перепроверьте все шаги.

    • Запустите терминал на контроллере домена FreeIPA (лобо воспользуйтесь удаленным подключением с помощью ssh - поключения)

    • Получите билет Kerberos, используя учетную запись администратора домена

      kinit admin
      
    • Экспортируйте принципал HTTP в keytab файл:

      /usr/sbin/ipa-getkeytab -p HTTP/ting.freeipa.local -k /tmp/squid.keytab
      
    • Cкопируйте keytab-файл на устройство TING:

      scp /tmp/squid.keytab root@192.168.1.2:/usr/local/etc/squid/
      
    • Залогиньтесь терминалом на устройство TING

    • Измените владельца keytab файла:

      chown root:squid /usr/local/etc/squid/squid.keytab
      
    • Измените права доступа к keytab файлу:

      chmod 640 /usr/local/etc/squid/squid.keytab
      
    • Перейдите в раздел Службы -> Веб-прокси -> Технология единого входа (SSO) -> Аутентификация по протоколу Kerberos и нажмите кнопку Обновить.

      Все пункты должны быть отмечены зеленым.

      Если это не так - перепроверьте все шаги.

    • Нажмите кнопку Показать keytab-файл

      Результат должен быть такой:

      Vno  Type                     Principal                          Aliases
      1    aes256-cts-hmac-sha1-96  HTTP/ting.freeipa.local@FREEIPA.LOCAL
      1    aes128-cts-hmac-sha1-96  HTTP/ting.freeipa.local@FREEIPA.LOCAL
      

    7.3 Проверьте правильность настроек.

    Для этого введите Имя пользователя и Пароль пользователя домена в соответствующие поля и нажмите Проверить вход через Kerberos

    _images/sso_check_result1.png

    В случае, если все настройки были сделаны верно, вы увидите положительный результат проверки, подобный, как на изображении выше.

    7.4 Примените настройки.

    Для этого либо в разделе Службы -> Веб-прокси -> Технология единого входа (SSO), на вкладке Общие настройки, либо в разделе Службы->Веб-прокси->Администрирование нажмите кнопку Применить

Настройка компьютера пользователя.

На компьютере пользователя, подключенном к домену, в браузере, к примеру Mozilla Firefox, откройте Настройки -> Параметры сети и задайте ручные 2 настройки прокси-сервера согласно изображения:

_images/sso_firefox_settings.png

Примечание

Важно указывать прокси как DNS-имя, а не как IP-адрес!

2

Кроме ручной настройки в можете настроить автоматическую настройку прокси-сервера, обратившись к соответствующим разделам документации.

Настройка других веб-браузеров проводится аналогичным способом.

Проверка результата.

Откройте в настроенном веб-браузере какую-либо страницу интернет.

Если все предварительные настройки были выполнены корректно, запрошенная страница должна отобразиться.

На устройстве TING перейдите в раздел Службы-> Веб-прокси-> Журнал доступа

В журнале доступа вы должны будете увидеть записи, подобные следующим:

1600165495.695    212 192.168.1.115 TCP_TUNNEL/200 4557 CONNECT counter.yadro.ru:443 testuser@FREEIPA.LOCAL HIER_DIRECT/88.212.201.204 -
1600165505.215    198 192.168.1.115 TCP_TUNNEL/200 28810 CONNECT www.mozilla.org:443 testuser@FREEIPA.LOCAL HIER_DIRECT/104.18.164.34 -
1600165512.907  17145 192.168.1.115 TCP_TUNNEL/200 4502 CONNECT counter.yadro.ru:443 testuser@FREEIPA.LOCAL HIER_DIRECT/88.212.201.204 -

что будет свидетельствовать о корректно настроенной SSO аутентификации с использованием Kerberos в среде FreeIPA.