Интеграция с Active Directory
Интеграция Webim с Active Directory позволяет использовать доменные учётные записи для входа операторов в административную часть Webim, управлять правами доступа через группы безопасности Active Directory и синхронизировать данные операторов.
N.B.
Данная функциональность является тарифной опцией. Чтобы её подключить, обратитесь, пожалуйста в техническую поддержку Webim или к вашему аккаунт-менеджеру.
Назначение интеграции
Интеграция Webim с Active Directory решает следующие задачи:
-
Единый вход (SSO). Операторы входят в Webim под доменной учётной записью без отдельного пароля. Для аутентификации используется Kerberos.
-
Централизованное управление доступом. Права операторов и доступные им отделы определяются членством в группах безопасности Active Directory. Эти группы сопоставляются с группами безопасности в Webim.
-
Автоматическое создание и обновление операторов. При первом успешном входе через Active Directory оператор может быть создан автоматически. При последующих входах и при синхронизации данные оператора актуализируются по данным Active Directory, в соответствии с настройками SSO.
-
Фоновая и ручная синхронизация операторов. Webim может периодически синхронизировать данные операторов с Active Directory и выполнять синхронизацию по запросу администратора. При включённой периодической синхронизации используется брокер сообщений Kafka.
Задействованные компоненты
В интеграции участвуют следующие компоненты:
-
Webim Server. Обрабатывает запросы операторов, выполняет аутентификацию и авторизацию, обновляет данные операторов и управляет очередями синхронизации.
-
Active Directory. Источник данных о пользователях и группах безопасности. Участвует в Kerberos-аутентификации и отвечает на LDAP-запросы.
-
Kerberos. Механизм аутентификации, используемый при SSO-входе. В доменной инфраструктуре предоставляется контроллером домена.
-
LDAP/LDAPS. Протокол доступа к каталогу. Используется для получения данных о пользователях и их членстве в группах.
-
Kafka. Используется для фоновой синхронизации операторов с данными Active Directory (при включенной периодической синхронизации).
Карта документации по интеграции с Active Directory
| Задача | Статья |
|---|---|
Настройка Kerberos (SPN, keytab, krb5.conf и параметры Kerberos) |
Интеграция с Active Directory: настройка Kerberos |
| Настройка подключения к LDAP/LDAPS и параметры поиска пользователей | Интеграция с Active Directory: настройка LDAP |
| Включение SSO и выбор режима авторизации операторов | Интеграция с Active Directory: SSO и режимы авторизации |
| Настройка группы безопасности Webim и работы операторов с Active Directory | Интеграция с Active Directory: операторы и группы безопасности |
| Диагностировать ошибки Kerberos, LDAP, SSO и синхронизации | Интеграция с Active Directory: диагностика и типовые ошибки |
Ограничения и требования
Требования к доменной инфраструктуре
-
Развёрнут контроллер домена Active Directory.
-
В домене созданы:
-
учётные записи пользователей, которые будут работать в Webim;
-
группы безопасности, через которые будет управляться доступ операторов.
-
-
Настроены SPN и
keytabдля Kerberos-аутентификации (см. статью Настройка Kerberos).
Требования к серверу Webim
Сетевой доступ к контроллеру домена
Сервер Webim должен иметь возможность подключаться к контроллеру домена по сети. Ниже перечислены сетевые порты, которые должны быть разрешены между сервером Webim и контроллером домена:
-
DNS — TCP/UDP 53. Нужен для разрешения доменных имён и служебных SRV-записей, которые используются Kerberos и LDAP.
-
NTP — UDP 123. Нужен для синхронизации времени. Для Kerberos критично, чтобы время на сервере Webim и на контроллере домена совпадало (расхождение приводит к ошибкам аутентификации).
-
Kerberos (KDC) — TCP/UDP 88. Порт службы Kerberos на контроллере домена. Используется при входе операторов через SSO.
-
LDAP — TCP 389. Используется Webim для получения данных о пользователях и их группах безопасности в домене.
-
LDAPS — TCP 636. Используется вместо LDAP, если в конфигурации LDAP включён параметр
use_ssl=true.
Пакеты и утилиты на сервере Webim
На сервере Webim должны быть установлены клиентские утилиты Kerberos и LDAP (для работы и диагностики). Например:
-
Debian/Ubuntu:
krb5-user,libsasl2-modules-gssapi-mit,ldap-utils. -
RHEL-подобные:
krb5-workstation,cyrus-sasl-gssapi,openldap-clients.
Синхронизация времени
Время на сервере Webim должно быть синхронизировано с временем на контроллере домена. Существенное расхождение приводит к ошибкам Kerberos-аутентификации.
Kafka для фоновой синхронизации
Kafka требуется только для периодической синхронизации операторов с Active Directory (параметр sso.enable_periodic_synchronization=true).
Сервис Admin Backend должен быть запущен с параметром --kafka-connection, который указывает на именованное подключение из файла /etc/webim/kafka.json.
Минимальный пример /etc/webim/kafka.json:
{
"my_local_kafka": {
"bootstrap_servers": "kafka:9092",
"user": "webim",
"password": "secret"
}
}
Внутри подключения используются поля:
-
bootstrap_servers— список брокеров Kafka (как строка, напримерkafka1:9092,kafka2:9092). -
user,password— учётные данные SASL (PLAIN), используемые Admin Backend при подключении к Kafka.
Если периодическая синхронизация отключена, Kafka для интеграции с Active Directory не требуется.