Настройка SSO-аутентификации в интегрированной системе проверки подлинности FreeIPA
SSO-аутентификация - технология единого входа, позволяющая использовать различные информационные системы без необходимости повторной аутентификации.
В данной статье мы рассмотрим использование SSO при аутентификации на веб-прокси.
В качестве интегрированной системы проверки подлинности мы будем использовать FreeIPA .
Настройка SSO-аутентификации данной службы состоит из нескольких этапов:
Настройка SSO-аутентификации в интегрированной системе проверки подлинности FreeIPA перекликается с настройкой аутентификации в Active Directory через Kerberos .
Для дальнейшей настройки примем следующие значения:
локальная сеть |
10.1.4.0/24 |
домен FreeIPA |
ftest.local |
контроллер домена FreeIPA |
freeipa.ftest.local |
IP-адрес контроллера домена FreeIPA |
10.1.4.211 |
имя устройства TING |
ting.ftest.local |
IP-адрес устройства TING |
10.1.4.52 |
Примечание
Установка и настройка сервера и клиента, а также разворачивание на них системы FreeIPA выходит за рамки данной статьи и должно осуществляться компетентными специалистами, согласно документации. Мы предполагаем, что такая настройка уже выполнена согласно предоставленных выше данных.
Настройка FreeIPA
С помощью веб-браузера подключитесь к консоли управления FreeIPA по адресу: https://freeipa.ftest.local
, где freeipa.ftest.local - адрес вашего контроллера домена.
Залогиньтесь в консоль управления, используя учетные данные с правами администратора созданного домена.
Пройдите на страницу
и проверьте настройки.Примечание
Если у вас не создана обратная зона DNS 10.1.4.0/24
- создайте ее и проверьте, чтобы в ней содержалась запись для ip адреса контроллера домена FreeIPA.

В настройках зоны (кликнуть на имя зоны и перейти на вкладку Параметры) необходить установить флажок Разрешить PTR-синхронизацию, затем нажать кнопку Сохранить для записи изменений.
Создайте учетную запись компьютера (узла) для устройства TING: для этого перейдите в меню
и нажмите кнопку Добавить.
Перейдите в раздел
.Проверьте, что запись появилась в прямой ftest.local
и обратной 4.1.10.in-addr.arpa
зоне (кликнуть на имя зоны, вкладка Записи ресурсов DNS). Если нет - добавьте эти записи вручную.
Прямая зона:

Обратная зона:

Примечание
В командной строке устройства TING можно проверить с помощью команд:
drill ting.ftest.local
drill -x 10.1.4.52
Для созданного узла необходимо добавить псевдоним (кроме автоматически прописанного) учётной записи Kerberos (надо перейти на вкладку Узлы, зайти в параметры соответствующего узла и нажать кнопку Добавить в разделе Псевдонимы учётной записи):

Теперь надо добавить принципал (службу) HTTP к созданной учетной записи компьютера устройства TING.
Для этого перейдите в раздел
и нажмите кнопку Добавить
где в поле Служба надо указать HTTP
(или выбрать из доступных значений в списке), а в поле Имя узла - имя устройства TING (можно выбрать нужное имя из выпадающего списка или ввести вручную).
Настройка устройства TING
1. Настройка имени устройства и DNS
Пройдите в раздел
Проверьте, чтобы корректно были указаны имя хоста, домен и IP-адрес контроллера домена FreeIPA (10.1.4.211
):

Локальная служба служба DNS должна быть отключена:

Примечание
В случае, если вы используете встроенный сервер DNS, например, Unbound DNS, вам необходимо, согласно документации , настроить переадресацию либо всех запросов DNS, либо только прямой и обратной зоны созданного вами домена.
2. Настройка сетевого времени
Перейдите в раздел
.В поле Серверы времени укажите имя контроллера домена FreeIPA freeipa.ftest.local
либо IP-адрес контроллера домена FreeIPA 10.1.4.211
, а также отметь предпочитаемым только его (у всех снять отметки):

Примечание
Время на контроллере домена и устройстве TING должно быть синхронизировано.
3. Настройка LDAP коннектора
Пройдите в раздел
, в правом верхнем углу нажмите на кнопку Добавить сервер и задайте следующие настройки:Описательное имя |
freeipa |
Тип |
LDAP |
Имя хоста или IP-адрес |
10.1.4.211 |
Значение порта |
389 |
Транспортный протокол |
TCP |
Версия протокола |
3 |
Привязать параметры доступа |
пусто [1] |
Область поиска |
Уровень: Целое поддерево |
Базовый DN |
DC=freeipa,DC=local |
Контейнеры для аутентификации |
cn=users,cn=accounts,dc=freeipa,dc=local |
Начальный шаблон |
FreeIPA |
Атрибут присвоения имени пользователю |
uid |
4. Проверка LDAP коннектора
Пройдите в раздел
, выберите в списке созданный нами сервер (freeipa), введите имя и пароль учетной записи домена.Результатом должно быть сообщение об успешной проверке:

5. Настройки веб-прокси
В разделе
, на вкладке , установите флаг Включить прокси, если он еще не установлен:В разделе
, на странице , в поле Метод аутентификации укажите настроенный LDAP-коннектор:В разделе Перенаправляющий прокси, в меню Основные настройки перенаправления снимите флаг Включить прозрачный HTTP-прокси, если он установлен.
, на вкладкеВ разделе
, на странице надо указать Разрешённые подсети:Примечание
Использование механизма прозрачного HTTP-проксирования несовместимо ни с одним методом аутентификации. Чтобы использовать аутенитификацию Kerberos, данный механизм должен быть выключен.
6. Установка плагина os-proxy-sso
Пройдите в раздел Плагины, нажмите на кнопку + напротив плагина os-proxy-sso для его установки.
. На вкладкеПосле установки, в разделе
появится подраздел .7. Настройка аутентификации по протоколу Kerberos
7.1 Включите Единый вход для прокси-сервера
В разделе Общие настройки, установите флаг Включить единый вход для прокси-сервера.
, на вкладкеВ поле Реализация AD Kerberos выберите значение Windows 2008 with AES.

Примечание
При нажатии на кнопку Применить будут произведены следующие действия:
произойдёт автогенерация конфигурационного файла /etc/krb5.conf для библиотеки Kerberos
модифицируется конфигурационный файл Squid /usr/local/sbin/squid.conf для загрузки хелпера Kerberos-аутентификации negotiate_kerberos_auth
производётся перезапуск веб-прокси сервера Squid
7.2 Настройте аутентификацию по протоколу Kerberos
Перейдите в раздел
и нажмите кнопку ОбновитьВсе пункты, кроме Файл keytab должны быть отмечены зеленым.
Если это не так - перепроверьте все шаги.
Создание файла keytab
Запустите терминал на контроллере домена FreeIPA (либо воспользуйтесь удаленным подключением с помощью ssh-подключения)
Получите билет Kerberos, используя учетную запись администратора домена:
kinit admin
Экспортируйте принципалы в keytab файл (для службы HTTP и двух псевдонимов узла):
/usr/sbin/ipa-getkeytab -p HTTP/ting.ftest.local -k /tmp/squid.keytab /usr/sbin/ipa-getkeytab -p host/ting.ftest.local -k /tmp/squid.keytab /usr/sbin/ipa-getkeytab -p host/ting -k /tmp/squid.keytab
Внимание
Если файл
squid.keytab
не существует, то ipa_getkeytab его создаст. Если же файл существует, то информация будет просто дописываться в имеющийся. В случае ошибочной записи, надо удалить старый и заново заполнять. Если вдруг будет удалён принципал и вместо него заведён новый с таким же именем - файл тоже надо пересоздать.Cкопируйте keytab-файл на устройство TING:
scp /tmp/squid.keytab root@10.1.4.52:/usr/local/etc/squid/
После успешного копирования, файл на контроллере домена надо удалить.
Зайдите в терминал на устройстве TING
Измените владельца keytab файла:
chown root:squid /usr/local/etc/squid/squid.keytab
Измените права доступа к keytab файлу:
chmod 640 /usr/local/etc/squid/squid.keytab
Перейдите в раздел
и нажмите кнопку Обновить.Теперь все пункты должны быть отмечены зеленым.
Если это не так - перепроверьте все шаги.
Нажмите кнопку Показать keytab-файл
Результат должен быть такой:
/usr/local/etc/squid/squid.keytab: Vno Type Principal Aliases 2 aes256-cts-hmac-sha384-192 HTTP/ting.ftest.local@FTEST.LOCAL 2 aes128-cts-hmac-sha256-128 HTTP/ting.ftest.local@FTEST.LOCAL 2 aes256-cts-hmac-sha1-96 HTTP/ting.ftest.local@FTEST.LOCAL 2 aes128-cts-hmac-sha1-96 HTTP/ting.ftest.local@FTEST.LOCAL 3 aes256-cts-hmac-sha384-192 host/ting.ftest.local@FTEST.LOCAL 3 aes128-cts-hmac-sha256-128 host/ting.ftest.local@FTEST.LOCAL 3 aes256-cts-hmac-sha1-96 host/ting.ftest.local@FTEST.LOCAL 3 aes128-cts-hmac-sha1-96 host/ting.ftest.local@FTEST.LOCAL 4 aes256-cts-hmac-sha384-192 host/ting@FTEST.LOCAL 4 aes128-cts-hmac-sha256-128 host/ting@FTEST.LOCAL 4 aes256-cts-hmac-sha1-96 host/ting@FTEST.LOCAL 4 aes128-cts-hmac-sha1-96 host/ting@FTEST.LOCAL
7.3 Проверьте правильность настроек
Для этого введите Имя пользователя и Пароль пользователя домена в соответствующие поля и нажмите Проверить вход через Kerberos.
В случае, если все настройки были сделаны верно, вы увидите положительный результат проверки:
OK token=oRQwEqADCgEAoQsGCSqGSIb3EgECAg== user=tmpuser@FTEST.LOCAL group=AQEAAAAAABIBAAAA
BH quit command
7.4 Примените настройки
Для этого либо на странице
, либо в разделе нажмите кнопку Применить.Настройка компьютера пользователя
На компьютере пользователя, подключенном к домену, в браузере (например, Chrome) откройте [2] настройки прокси-сервера согласно изображению ниже:
и задайте ручные
Внимание
Важно указывать прокси как DNS-имя, а не как IP-адрес!
Кроме ручной настройки вы можете настроить автоматическую настройку прокси-сервера, обратившись к соответствующим разделам документации.
Настройка других веб-браузеров проводится аналогичным способом.
Проверка результата
Откройте в настроенном веб-браузере какую-либо страницу интернет.
Если все предварительные настройки были выполнены корректно, запрошенная страница должна отобразиться.
На устройстве TING перейдите в раздел
В журнале доступа вы должны будете увидеть записи, подобные следующим:
1600165495.695 212 10.1.4.40 TCP_TUNNEL/200 4557 CONNECT counter.yadro.ru:443 tmpuser@FREEIPA.LOCAL HIER_DIRECT/88.212.201.204 -
1600165505.215 198 10.1.4.40 TCP_TUNNEL/200 28810 CONNECT www.mozilla.org:443 tmpuser@FREEIPA.LOCAL HIER_DIRECT/104.18.164.34 -
1600165512.907 17145 10.1.4.40 TCP_TUNNEL/200 4502 CONNECT counter.yadro.ru:443 tmpuser@FREEIPA.LOCAL HIER_DIRECT/88.212.201.204 -
что будет свидетельствовать о корректно настроенной SSO-аутентификации с использованием Kerberos в среде FreeIPA.