Автор20.02.2024Дата написанияОколо 3 минВремя чтенияИнтеграцииКатегорияАдминистрированиеТеги

Настройка Kerberos SSO в TrueConf Server

TrueConf Server поддерживает беcпарольную аутентификацию с помощью технологии единого входа (Single-Sign-On, SSO) и протокола Kerberos. При этом необходимо, чтобы была настроена интеграция со службой каталогов по протоколу LDAP.

С некоторыми примерами вы можете ознакомиться в соответствующих статьях:

Общий алгоритм настройки Kerberos SSO сводится к нескольким шагам:

  • Добавить SPN, подробнее ниже.

  • Сгенерировать keytab-файл.

  • Применить настройки на сервере.

В разрезе Kerberos SSO важно понимать значение Service Principal Name (SPN). Что это такое? SPN – это уникальный идентификатор экземпляра службы. В нашем случае для контроллера домена такой службой выступает TrueConf Server. SPN состоит из нескольких частей:

protocol/service.name@DOMAIN

В качестве service.name нужно использовать внешнее имя сервера, указанное при его регистрации.

Пример:

trueconf/video.example.com@EXAMPLE.COM

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

Active Directory

В Active Directory (AD) имя сервисной службы (SPN) привязывается к учетной записи компьютера или пользователя. Мы не рекомендуем привязывать SPN к машине самого TrueConf Server, потому что это может повлиять на его работу в домене. Поэтому для корректной настройки необходимо создать отдельную учетную запись сервис пользователя с определёнными параметрами:

  • запретить смену пароля;

  • не ограничивать срок действия пароля.

Это важно, так как при смене пароля или истечении срока действия придется заново генерировать keytab-файлы привязанные к этому пользователю.

Для настройки Kerberos SSO:

  • Запустите PowerShell с правами администратора и импортируйте модуль для работы со службой AD:

    Import-Module ActiveDirectory
  • Задайте переменные с нужными значениями:

    $Username = "kb_user" # Имя пользователя
    $Password = "UserPassword!"# Пароль пользователя
    $DisplayName = "KB_USER" # Отображаемое имя пользователя
    $Path = "OU=Users,DC=yourdomain,DC=loc" # Путь к организационной единице, где должен быть создан пользователь.
  • С помощью команды создайте нового сервисного пользователя используя заданные переменные:

    New-ADUser -Name $DisplayName -SamAccountName $Username -Path $Path -AccountPassword (ConvertTo-SecureString $Password -AsPlainText -Force) -Enabled $true -PasswordNeverExpires $true -CannotChangePassword $true
  • Добавьте SPN и привяжите его к созданному пользователю:

    setspn -U -S trueconf/server.name@yourdomain.loc $Username
  • Сгенерируйте keytab-файл:

    ktpass -princ trueconf/server.name@YOURDOMAIN.LOC -mapuser $Username -crypto ALL -ptype KRB5_NT_PRINCIPAL -pass $Password -target yourdomain.loc -out С:\yourdomain.keytab

После этого перейдите в панель управления сервером и настройте Kerberos SSO как написано в документации.

FreeIPA/ALD Pro

В FreeIPA сервисная служба (SPN) привязывается к существующему узлу, по сути к A-записи DNS сервера. Поэтому, если узел сервера TrueConf еще не добавлен, то самый раз это сделать. Для настройки Kerberos SSO:

  • Откройте терминал и получите билет (kerberos-ticket) с помощью команды:

    kinit admin # username доменного администратора
  • Задайте переменные с нужными значениями (без пробелов):

    IP_ADDRESS=10.10.10.10 # IP-адрес службы (сервера TrueConf)
    TRUECONF=video.example.net # Полное доменное имя сервера
    FREEIPA=freeipa.example.lan # Полное доменное имя контроллера домена
  • С помощью команды добавьте узел сервера TrueConf используя заданные переменные:

    sudo ipa host-add --force --ip-address=$IP_ADDRESS $TRUECONF
  • Добавьте службу (SPN):

    sudo ipa service-add trueconf/$TRUECONF
  • Для генерации keytab-файла выполните команду:

    sudo ipa-getkeytab -s $FREEIPA -p trueconf/$TRUECONF -k trueconf.keytab

После этого перейдите в панель управления сервером и настройте Kerberos SSO как написано в документации.