Remark — это отраслевой digital-интегратор. С 2007 года помогаем компаниям быть максимально эффективными в цифровой среде, автоматизируя процессы маркетинга, продаж и внутреннего взаимодействия между сотрудниками. Наша главная экспертиза — в недвижимости, но накопленный опыт и компетенции позволяют работать с компаниями из любой сферы.
Пишите
Звоните
Разработали модуль для нестандартной авторизации в Битрикс24: он работает в зависимости от места нахождения сотрудника.

Безопасный вход в Битрикс24 без кода на телефон

О клиенте

К нам обратились зарубежные партнеры с предложением разработать для своего клиента, немецкой компании, модуль удобной и безопасной авторизации в Битрикс24. Часть сотрудников компании работает в офисе, часть — удаленно: из дома или мест общественного пользования.

Задача

Стандартный функционал облачного решения Битрикс24 предусматривает для безопасности данных компании OTP-авторизацию. Пользователь открывает портал и на телефон приходит одноразовый код.

Наш клиент пользовался коробочной версией Битрикс24. Задачей было разработать модуль, который бы позволил сотрудникам:

  • при условии работы из офиса — авторизовываться в Битрикс24 без дополнительной аутентификации. То есть, не запрашивать код на телефон.
  • в случае выхода в сеть из кафе или гостиницы, использовать двухфакторную аутентификацию — заходить в Битрикс24, запрашивая код на телефон.

Решение

В офисе сотрудники работали в защищенной локальной сети. Задача от клиента была сформулирована довольно конкретно: в офисной сети — одни правила, вне её — другие. Поэтому первое, что мы предложили, и на чём в итоге остановились — это проверка по IP.
  • Сергей Левин
    Chief Technical Officer в Remark
    Наиболее удачным вариантом было развести для системы логику авторизации по IP-адресам. То есть, сделать офисные IP-адреса разрешенными или доверенными для системы, и не применять для них двухфакторную авторизацию.

При необходимости компания могла пополнять список разрешенных IP-адресов самостоятельно.

Чтобы реализовать требуемую логику, мы использовали API ядра Битрикс24 и упаковали решение в модуль для коробочной версии.

Модуль включает или выключает OTP-авторизацию для конкретного пользователя в зависимости от его текущего IP-адреса. По умолчанию для каждого пользователя нет OTP.

Далее в зависимости от ситуации — события, которое срабатывает при авторизации пользователя — включается логика модуля. Сама логика построена на подписке на события, которые модуль получает по API от Битрикс24.

OnBeforeUserLogin

Cрабатывает непосредственно перед тем, как авторизовать пользователя в системе. В обработчике этого события мы:
  • 1
    Получаем IP-адрес пользователя и сравниваем его со списком доверенных адресов.
  • 2
    Если адрес доверенный, то прекращаем работу модуля, пользователь остаётся с отключенным функционалом OTP-авторизации.
  • 3
    Иначе включаем OTP у этого пользователя, если он относится к группе пользователей, на которых распространяется логика модуля

OnAfterUserLogin

Cрабатывает после авторизации пользователя, и используется нами для того, чтобы отключить OTP у этого пользователя, так как это – состояние по умолчанию для всех пользователей системы, входящих в соответствующую группу.

Интерфейс настроек модуля содержит поле для заполнения разрешенных IP-адресов — whitelist. И поле для выбора группы пользователей, к которой должна применяться логика модуля. Мы не стали делать это поле множественным, так как это было бы избыточным с учётом гибкой штатной системы управления группами пользователей Битрикс24. А вот whitelist – классический список IP, разделённый точкой с запятой. Также, для удобства пользования, в интерфейсе модуля выводится IP-адрес текущего устройства.

Так как решение реализовано в виде модуля Битрикс24, и сделано полностью по методологии Битрикс, не пришлось решать проблему доступа к управлению настройками модуля: нет риска, что кто-то из сотрудников или злоумышленники смогут отключить настройку OTP. На этот экран могут попасть только те пользователи, которые имеют доступ в административную панель, и чьи права доступа позволяют управлять модулями.

Разработку вели на нашем тестовом сервере, на одном из наших коробочных порталов Битрикс24. По окончании работы предоставили инструкцию по установке и настройке модуля для DevOps-специалистов клиента.

Проблемы и решение

После установки модуля на свой тестовый портал по инструкции, клиент обратился к нам за помощью с диагностикой возникшей проблемы: любая попытка авторизации проходила без использования OTP, даже для IP адресов, заведомо не входящих в whitelist.

Мы подключились на портал, и выяснили, что все запросы к порталу клиента приходили с IP адреса офисного роутера. Проблема была связана с настройками роутера, который работал по принципу непрозрачного прокси-сервера, т. е. не передавал интерпретатору PHP реальный IP адрес устройства пользователя. Это делало использование модуля невозможным при текущих настройках. Мы проконсультировали клиента, как устранить проблему.

Результат

Клиент организовал удобный доступ в Битрикс24, который отвечает требованиям безопасности и включает двухфакторную аутентификацию только в случае выхода в сеть вне пределов офиса. Это экономит усилия сотрудников и сохраняет данные компании.
Мнение Remark
У вас похожая задача? Мы поможем ее решить
Сделать Битрикс24 еще удобнее можно как при использовании облачной, так и коробочной версий. Для некоторых процессов нужна индивидуальная разработка. Лучший выход при этом — найти разработчиков с опытом интеграторов.