Работа модуля Itgrix в закрытом контуре

Почему не подходит стандартное решение?

  1. Набор функционала модуля зависит от наличия оплаченной лицензии. Проверка наличия лицензии в стандартном решении осуществляется запросом к серверу лицензирования lk.bx24asterisk.ru. Без доступа в Интернет проверка лицензии таким способом невозможна.

  2. Схема авторизации в Битрикс24 устроена так, что помимо модуля и портала в ней участвует сервер авторизации oauth.bitrix.info, который выдаёт модулю токены для доступа к порталу (один раз при начальной настройке и далее автоматически раз в час). Без доступа в Интернет модуль не сможет получить доступ к порталу, даже если портал находится в той же закрытой сети.

  3. Регулярно выпускаются обновления модуля с новым функционалом, исправлениями найденных ошибок и подгонкой под меняющиеся требования CRM, такие как лимиты на количество запросов, набор разрешений для работы с API, процедура авторизации. В стандартном решении обновления скачиваются с нашего сайта bx24asterisk.ru и устанавливаются скриптом update.sh в поставке модуля, но без доступа в Интернет обновления не скачать.

  4. Стандартное решение Открытый контур.png

    Техническое решение

    Для начала необходимо правильно установить приложение


    Офлайн установка:

    • Распаковать

    • Запустить: # bash install.sh

    Обход ограничений, состоящий из 3 частей

    1. Офлайн лицензия

      Решение в том, чтобы вместо регулярного (обычно раз в день) обращения к серверу лицензирования выдать клиенту лицензионный ключ, при наличии которого модуль будет работать с полным функционалом. Сложность в том, как ограничить применимость созданного лицензионного ключа. Если проверка лицензии осуществляется не на нашем сервере, то как убедиться что ключ используется именно тем клиентом, которому мы его дали?

      Для этого реализован HWID - HardwareID, уникальный идентификатор аппаратного обеспечения клиента. Он содержит в себе информацию о сервере, на котором установлен модуль. Лицензия выписывается на конкретный HWID и гарантирует, что лицензионный ключ будет использоваться только на этом сервере. Отсюда вытекает важное ограничение: офлайн лицензия не может работать на виртуальной машине, потому что на ней нет реального аппаратного обеспечения которое можно было бы проверить.

      Статья о лицензировании офлайн

    2. Офлайн авторизация

      Для обхода необходимости связываться с сервером авторизации oauth.bitrix.info, который выпускает токены для доступа к порталу, мы создали свой собственный авторизатор, который встраивается в коробочный портал клиента и может сгенерировать токен авторизации, действующий не 1 час, а 10 лет.

      Статья об авторизации офлайн

    3. Офлайн обновление

      В качестве альтернативы автоматической загрузке обновлений скриптом, мы создали интерфейс офлайн-обновления на сайте Itgrix.ru, который позволяет скачать все необходимые для обновления данные одним файлом. Далее этот файл можно доставить на сервер любым способом, не включающим доступ в Интернет, и запустить - модуль обновится как если бы обновление было скачано скриптом.

      Статья об обновлении офлайн

    4. Закрытый контур Закрытый контур.png

      Данные решения были проверены у новых клиентов, например РКК Энергия.

К списку статей