Федерация IVA One
Режим Федерация объединяет несколько независимых экземпляров IVA One. В составе режима NATS Super Cluster связывает независимые кластеры NATS через шлюзы в одну логическую систему. Между кластерами передаются сообщения и события по TCP / mTLS, а между Federation Gateway — файлы по HTTPS / mTLS.
Настройка режима федерации для IVA One
Для использования возможностей режима федерации необходимо:
-
настроить доверие между внешними организациями в веб-панели администрирования IVA One
Настройка Helm-чарта для Федерации
Настройку необходимо выполнить на каждом экземпляре IVA One. Не следует добавлять повторяющиеся YAML-блоки: необходимо изменять существующие поля файла /opt/iva/values.yaml, созданного на основе штатного файла custom-values.yaml.
Для автоматического создания TLS-сертификатов в Kubernetes должен быть установлен cert-manager. Остальные TLS-настройки из штатного файла custom-values.yaml необходимо оставить без изменений.
Чтобы настроить Helm-чарт для режима федерации, необходимо:
-
открыть файл /opt/iva/values.yaml с помощью команды:
sudo nano /opt/iva/values.yaml -
в существующих секциях global.federation и federation включить Федерацию, указать внешний IP-адрес и уникальное имя NATS-кластера:
Для реальной установки необходимо использовать IP-адреса, выделенные для инфраструктуры организации # Общие настройки всех компонентов IVA One global: # Параметры включения и публикации федерации federation: enabled: true serviceType: LoadBalancer sharedIp: true gatewayLoadBalancerIP: "<IP_ADDRESS>" gatewayExternalIP: "<IP_ADDRESS>" # Настройки федеративного NATS и его сертификатов federation: loadBalancerIP: "<IP_ADDRESS>" federationclustername: &federationclustername "iva-federation-a" # Автоматическое создание TLS-сертификатов certificate: create: true-
global.federation.enabled — признак включения Federation Gateway и федеративного NATS
-
global.federation.serviceType — тип сервиса. Для кластерной установки используется значение
LoadBalancer -
global.federation.sharedIp — признак разрешения общего IP-адреса для FederationBus (NATS) и Federation Gateway при использовании MetalLB. При значении
trueHelm-чарт добавляет сервисам аннотациюallow-shared-ip -
global.federation.gatewayLoadBalancerIP — IP-адрес балансировщика для Federation Gateway, доступного по порту
8081Если IP-адрес не указан, то MetalLB выбирает его автоматически из доступного пула -
global.federation.gatewayExternalIP — внешний IP-адрес Federation Gateway, передаваемый другим компонентам
-
federation.loadBalancerIP — IP-адрес балансировщика для IP-адрес балансировщика для NATS Gateway (FederationBus), доступного по порту
7222Если IP-адрес не указан, то MetalLB выбирает его автоматически из доступного пула -
federation.federationclustername — уникальное имя NATS-кластера, например
iva-federation-aилиiva-federation-b -
federation.certificate.create — признак автоматического создания сертификатов с помощью cert-manager
При использовании MetalLB значение
global.federation.sharedIp: trueразрешает NATS Gateway и Federation Gateway использовать общий IP-адрес балансировщика. Для этого необходимо явно указать одинаковый IP-адрес в параметрах federation.loadBalancerIP и global.federation.gatewayLoadBalancerIP: автоматически их значения не совпадают. Этот же адрес можно указать в параметре global.federation.gatewayExternalIP. Если MetalLB не используется или балансировщик не поддерживает общий IP-адрес, для параметра global.federation.sharedIp необходимо установить значениеfalse, а для NATS Gateway и Federation Gateway указать разные IP-адреса.
-
-
применить обновленную конфигурацию IVA One:
sudo helm upgrade iva-one /opt/iva/iva-one -f /opt/iva/values.yaml -n iva-oneгде iva-one — пространство имен Kubernetes (namespace), в котором развернута IVA One. По умолчанию используется пространство имен iva-one.
-
дождаться готовности сертификата:
kubectl wait -n iva-one \ --for=condition=Ready \ certificate/iva-federationbus-tls-secret \ --timeout=180s -
на каждом экземпляре IVA One выгрузить локальный сертификат, закрытый ключ и сертификат центра сертификации:
kubectl get secret iva-federationbus-tls-secret -n iva-one \ -o jsonpath='{.data.tls\.crt}' | base64 -d > tls.crt kubectl get secret iva-federationbus-tls-secret -n iva-one \ -o jsonpath='{.data.tls\.key}' | base64 -d > tls.key kubectl get secret iva-federationbus-tls-secret -n iva-one \ -o jsonpath='{.data.ca\.crt}' | base64 -d > ca-local.crt -
передать файл ca-local.crt всем остальным участникам Федерации. Полученные CA-сертификаты сохранить под разными именами, например ca-federation-b.crt и ca-federation-c.crt
Передавать закрытый ключ tls.key между экземплярами IVA One запрещено
-
на каждом экземпляре объединить локальный CA-сертификат и CA-сертификаты всех остальных участников Федерации:
Пример для экземпляраiva-federation-aпри подключенииiva-federation-bиiva-federation-c:cat ca-local.crt ca-federation-b.crt ca-federation-c.crt > bundled-ca.crtВ файл bundled-ca.crt необходимо включить CA-сертификаты всех участников Федерации, включая текущий экземпляр. Количество сертификатов зависит от количества экземпляров и не ограничивается приведенным примером.
-
на каждом экземпляре создать или обновить Secret с локальным сертификатом, локальным закрытым ключом и объединенным набором CA-сертификатов всех участников Федерации:
kubectl create secret generic federation-gateway-tls-bundled \ -n iva-one \ --from-file=tls.crt=tls.crt \ --from-file=tls.key=tls.key \ --from-file=ca.crt=bundled-ca.crt \ --dry-run=client -o yaml | kubectl apply -f - -
в файле /opt/iva/values.yaml указать созданный Secret и параметры соединения со всеми удаленными NATS-кластерами
Пример для инсталляцииiva-federation-a:federation-gateway: # Настройки прикладного Federation Gateway config: # Конфигурация процесса Gateway http: # Настройки входящих и исходящих HTTP-соединений mtls: # Взаимная TLS-аутентификация Federation Gateway caSecretName: federation-gateway-tls-bundled # Secret с CA всех участников secretName: federation-gateway-tls-bundled # Secret с локальным сертификатом и ключом natssupercluster: # Настройки федеративного NATS-кластера tlsCA: # CA для проверки сертификатов NATS-участников secretName: federation-gateway-tls-bundled # Secret с объединенным набором CA config: # Конфигурация NATS gateway: # Межкластерные NATS Gateway-соединения tls: # TLS для соединений между NATS-кластерами enabled: true # Включить TLS для NATS Gateway secretName: federation-gateway-tls-bundled # Сертификат, ключ и доверенные CA merge: # Параметры локального и удаленных кластеров name: *federationclustername # Имя локального NATS-кластера advertise: "<EXTERNAL_IP_ADDRESS_LOCAL>:7222" gateways: - name: "iva-federation-b" urls: - "tls://<EXTERNAL_IP_ADDRESS_REMOTE_B>:7222" # Адрес NATS Gateway экземпляра iva-federation-b - name: "iva-federation-c" urls: - "tls://<EXTERNAL_IP_ADDRESS_REMOTE_C>:7222" # Адрес NATS Gateway экземпляра iva-federation-cгде:
-
advertise — IP-адрес NATS Gateway в формате
<IP-адрес>:<порт>, который сервер сообщает другим участникам для подключения к немуВ зависимости от настройки сети IP-адрес может быть внутренним или внешним и должен быть доступен другим участникам Федерации -
gateways — список удаленных NATS-кластеров. Для каждого другого экземпляра Федерации необходимо добавить отдельный элемент с параметрами name и urls
-
name — уникальное имя удаленного NATS-кластера
-
urls — список TLS-адресов удаленного NATS Gateway для исходящих соединений в формате
tls://<IP-адрес>:<порт>В примере для экземпляра
iva-federation-aв список gateways добавлены экземплярыiva-federation-bиiva-federation-c. При подключении большего количества экземпляров необходимо добавить в список каждого из них.На каждом экземпляре необходимо указать его IP-адрес в параметре advertise и имя кластера, а в списке gateways — имена и TLS-адреса всех остальных участников Федерации. Текущий экземпляр в список gateways не включается. Secret federation-gateway-tls-bundled, указанный в настройках Federation Gateway и NATS, должен содержать в поле ca.crt CA-сертификаты всех участников Федерации, включая текущий экземпляр.
-
-
повторно применить обновленную конфигурацию IVA One:
sudo helm upgrade iva-one /opt/iva/iva-one -f /opt/iva/values.yaml -n iva-one -
проверить состояние подов, сервисов и сертификатов:
kubectl get pods,svc,certificate -n iva-oneСертификаты должны находиться в состоянии
Ready=True, а поды Federation Gateway и федеративного NATS — в состоянииRunning.
Настройка внешних организаций в веб-панели администрирования
После настройки helm-чарта необходимо настроить доверие между организациями в веб-панели администрирования IVA One в разделе Внешние организации.
Порядок выполняемых действий:
-
перейти в раздел Настройки и выбрать Глобальные
-
в поле Имя организации указать имя организации и нажать кнопку Сохранить
-
на каждом экземпляре Федерации перейти в раздел Внешние организации:
-
на экземпляре Федерация А в списке внешних организаций должна отображаться добавленная организация Федерация Б с одним из статусов Доверия нет / Запрос отправлен
-
на экземпляре Федерация Б должна отображаться организация Федерация А
-
-
для экземпляра Федерация А в разделе Внешние организации необходимо нажать на название организации Федерация Б и в открывшемся окне Детали подключения нажать на кнопку Доверять для установки доверительных отношений между организациями
Для экземпляра Федерация А статус доверия организации Федерация Б изменится на Запрос отправлен, а для экземпляра Федерация Б статус доверия организации Федерация А изменится на Ожидает ответа
-
для экземпляра Федерация Б в разделе Внешние организации необходимо нажать на название организации Федерация А и в открывшемся окне Детали подключения нажать на кнопку Доверять для установки доверительных отношений между организациями
Статусы доверия между организациями Федерация А и Федерация Б изменятся на Взаимное доверие
-
выполнить аналогичные действия на всех экземплярах Федераций, с которыми необходимо установить доверительные отношения
После выполненных настроек федеративные контакты доверенных организаций будут отображаться в веб-панели администрирования IVA One в разделе Пользователи и в адресных книгах всех клиентских Приложений IVA One.
Настройка федерации между IVA One и Платформой IVA MCU
В разделе описана настройка федеративной связи между двумя экземплярами Платформы IVA MCU через IVA One. Каждый экземпляр IVA MCU интегрирован со своим экземпляром IVA One.
Предварительные требования
Перед настройкой необходимо:
-
установить и настроить два экземпляра IVA One и два экземпляра Платформы IVA MCU
-
выполнить интеграцию IVA One с IVA MCU для каждой пары:
-
IVA One A и IVA MCU A
-
IVA One B и IVA MCU B
-
-
настроить режим федерации для IVA One, включая взаимное доверие между организациями
| В дальнейших шагах локальным называется экземпляр, на котором выполняется настройка, а удаленным — второй экземпляр |
Настройка NATS в IVA MCU
Настройку необходимо выполнить на каждом экземпляре Платформы IVA MCU.
Чтобы настроить NATS, необходимо:
-
в веб-панели администрирования IVA MCU перейти в раздел Внешняя аутентификация → Выбрать домен → Нажать кнопку SSO сервера
-
выбрать SSO-сервер, настроенный для интеграции с локальным экземпляром IVA One, и нажать кнопку Детально
-
скопировать значения полей URL брокера сообщений и Truststore брокера сообщений
-
перейти в раздел Системные настройки и выбрать секцию NATS
-
перенести скопированные значения в одноименные поля URL брокера сообщений и Truststore брокера сообщений
-
в поле Keystore брокера сообщений указать значение, полученное на локальном экземпляре IVA One согласно инструкции по получению Keystore брокера сообщений
-
в секции Настройки федеративных связей включить флаговую кнопку Использование федеративного NATS
-
в поле ID федеративного экземпляра NATS указать ID организации локального экземпляра IVA One согласно таблице соответствия идентификаторов
Значение ID организации содержится в окне Детали подключения раздела Внешние организации веб-панели администрирования IVA One. Для локального экземпляра необходимо использовать ID той организации IVA One, с которой интегрирован настраиваемый экземпляр IVA MCU.
-
нажать кнопку Сохранить
-
вернуться в раздел Внешняя аутентификация, выбрать домен и нажать кнопку SSO сервера
-
выбрать тот же SSO-сервер и нажать кнопку Детально
-
включить флаговую кнопку Использовать системный NATS и нажать кнопку Сохранить
Соответствие идентификаторов при настройке двух экземпляров IVA MCU:
| Настраиваемый экземпляр | ID федеративного экземпляра NATS в системных настройках | ID удаленного федеративного экземпляра NATS в настройках федеративной связи |
|---|---|---|
IVA MCU A |
ID организации IVA One A |
ID организации IVA One B |
IVA MCU B |
ID организации IVA One B |
ID организации IVA One A |
Настройка федеративной связи в IVA MCU
Чтобы настроить федеративную связь, необходимо на каждом экземпляре Платформы IVA MCU:
-
создать связь с удаленным экземпляром IVA MCU согласно инструкции по настройке федеративных связей
-
в настройках созданной связи в поле ID удаленного федеративного экземпляра NATS указать ID организации удаленного экземпляра IVA One согласно таблице соответствия идентификаторов:
-
для IVA MCU A — ID организации IVA One B
-
для IVA MCU B — ID организации IVA One A
-
-
нажать кнопку Сохранить
Проверка синхронизации
Чтобы проверить синхронизацию, необходимо на каждом экземпляре Платформы IVA MCU:
-
в веб-панели администрирования IVA MCU перейти в раздел Федеративные связи
-
выбрать домен и нажать кнопку Федеративные связи
-
убедиться, что в списке отображается созданная связь с удаленным экземпляром. Для описанной схемы из двух экземпляров на каждой стороне должна быть одна федеративная связь
-
убедиться, что поле Статус синхронизации показывает успешную синхронизацию
| При ошибке синхронизации необходимо проверить системные предупреждения IVA MCU, файл ivcs-server.log соответствующего экземпляра IVA MCU и журналы IVA One |
|
Для возможности совершения федеративных звонков в веб-панели администрирования IVA MCU необходимо: Настройка доступна начиная с версии Платформы IVA MCU 29.5 |





