Организации часто используют мессенджеры наподобие Telegram для работы с аутсорсерами. Там они обсуждают совместные задачи, делятся рабочими файлами и документами. И хотя все данные находятся под NDA, их невозможно контролировать — доступ к информации может оказаться у кого угодно, и компании об этом даже не узнают.

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

  • создаете собственный мессенджер;
  • пользуетесь open-source-приложениями, которые можно изменять под свои задачи;
  • просто интересуетесь, как гостевой доступ реализован в продукте.

Какие неудобства корпоративного общения есть в Telegram

При общении с подрядчиками в Telegram может возникнуть целый ряд рисков и проблем.

1. Полное отсутствие контроля данных

Допустим, компания ведет работу над проектом под NDA, и сотрудники пересылают документы подрядчикам внутри группы в Telegram. Последние скачивают файлы на свои компьютеры и смартфоны — и бизнес автоматически теряет контроль над данными. Где документы окажутся в следующий момент, никто не знает. Может, их перехватят злоумышленники. Или их сольют конкурентам — риски очень велики.

2. Удаление сообщений без ведома собеседников

Представьте: сотрудник, который работает на аутсорсе, написал в Telegram, что сдаст свою часть работы в конкретный срок. При работе над задачей возникли трудности — и он понял, что не успевает. Но вместо того чтобы написать и передоговориться с заказчиком на новые условия, аутсорсер просто стирает предыдущие сообщения. Когда дело доходит до разбирательств, никто не может найти нужную часть переписки — просто потому что Telegram дает возможность ее удалять. Это тормозит процессы и очень вредит бизнесу.

3. Сложности с управлением доступами

Когда вы добавляете стороннего пользователя в группу Telegram, он автоматически становится ее равноправным участником. Ему доступны все файлы и история переписки, он может написать и позвонить любому, кто состоит в той же группе. А еще у него есть возможность пересылать сообщение из чата кому угодно. Все это создает риски не только для одного проекта, но и для деятельности всей компании.

4. Нарушения правил цифровой гигиены

Ими грешат как сотрудники, так и подрядчики. Они могут:

  • перейти по фишинговым ссылкам и случайно «подарить» злоумышленникам доступ к рабочим чатам;
  • повестись на методы социальной инженерии: обман, запугивание, убеждение и т. д. Так, под видом кого-то из команды проекта аутсорсеру может написать мошенник — и попросить отправить какие-нибудь чувствительные данные. Например, смету проекта или спецификацию нового продукта.

Как работает гостевой доступ и в чем разница между ролями

Допустим, в мессенджере есть полноправный пользователь, которому доступен весь набор стандартных функций. Например, он может:

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

То есть обычный участник способен делать все то, что позволяет ему выполнять свою работу эффективнее и быстрее. А еще — то, что помогает получать обратную связь от коллег (например, в виде реакций) и формировать здоровую корпоративную культуру (например, в виде возможности поблагодарить коллег).

В пространство к обычному пользователю можно добавить и гостя. У этого участника будут права, с которыми он сможет полноценно работать по проекту. Например, свободно подключаться к видеоконференциям и писать сообщения тем, кто работает с ним. Все остальное, что никак не влияет на выполнение им задач, будет отсечено.

А еще для дополнительной защиты информации в мессенджере можно предусмотреть ограничения. Например, запретить гостю скачивать файлы на личные устройства, пересылать сообщения и звонить другим пользователям внутри пространства.

Вот два примера, когда такой функционал может быть удобен.

Создание рекламы для нового продукта

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


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


Найм сотрудников

Компания нанимает сотрудников в штат и приглашает для отбора кандидатов стороннего рекрутера. Ему оформляют гостевой доступ и добавляют в четыре чата:

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


Еще рекрутеру дают доступ к видезвонкам и личным чатам с соискателями. Он собеседует каждого, контролирует выполнение тестового — а затем передает руководителям отчеты в едином чате и в тредах обсуждает понравившихся кандидатов.


В системе, когда у гостя есть ограниченное пространство и только необходимые для работы функции, ему проще сфокусироваться на самом важном. Особенно когда дело касается найма сотрудников — необходимо внимательно анализировать их резюме и проводить собеседования. А еще корректно и быстро доносить информацию до руководителей — потому что от скорости поиска людей зависит работа отделов.

Да, защита от утечек не ограничивается только внедрением гостевого доступа, но он — важный шаг на пути к безопасности бизнеса. Ниже приведу пошаговый гайд по внедрению роли гостя в корпоративный мессенджер. Он поможет понять, как работают ограничения и как реализовать функцию, если вы пользуетсь open-source-приложением или разрабатываете свой продукт.

Как разработать гостевой доступ на backend

Чтобы добавить в мессенджер функцию гостя, выполните следующие шаги.

Шаг 1. Заложите в архитектуру поддержку ролей

Обычно в мессенджерах роли пользователей описаны бинарным флагом, где 0 — обычный пользователь, 1 — администратор. Очевидно, что для новой функциональности эта модель задания ролей не подходит. Поэтому необходимо:

  • добавить поддержку текстовых ролей (admin, member, guest) для гибкости и масштабируемости;
  • согласовать изменения с бизнес-командой, потому что замена бинарного флага на словесные обозначения может вызвать разлогин пользователей.

Шаг 2. Ограничьте функциональность в роли «гость»

На этом этапе нужно отрезать от роли те функции, которые вы хотели бы запретить пользователю с гостевым доступом. Например, инициировать диалоги и звонки или возможность создавать группы.


Также при урезании функционала важно создать алерт — экран, который будет предупреждать пользователя о том, что выбранная функция для его роли ограничена

Шаг 3. Адаптируйте интерфейс клиентских приложений

Как только вы ограничили функционал гостевого аккаунта, необходимо подчистить интерфейс от всего, что недоступно гостям. Например, удалить неработающие кнопки, чтобы сделать UI/UX чище и не вводить пользователей в заблуждение.


Шаг 4. Внимательно тестируйте каждую итерацию изменений

Это нужно, чтобы вовремя выявить проблему и ничего не сломать. При тестировании стоит проверить:

  • доступность API-методов в зависимости от роли;
  • корректность отображения интерфейса;
  • работоспособность новых ограничений.

Если работаете сразу с несколькими платформами, например Android, iOS и Electron, то тестирование может занять довольно много времени.

На что следует обратить внимание при разработке гостевого доступа

При внедрении новой фичи вам вероятнее всего потребуется много ручной работы — придется вносить изменения в разные части приложения. Например:

  • скрывать элементы интерфейса;
  • обновлять тесты;
  • проверять все API-методы на соответствие требованиям.

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

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

Также в редактировании профиля гостя мы ограничили количество действий. Пользователь с этой ролью может редактировать только аватар, имя и статус — то, что помогает выделить его внутри команды визуально и функционально. В особых случаях администратор пространства может запретить редактировать статус. Например, когда в рамках задачи работает только один тип специалистов, который выполняет одинаковые функции: копирайтеры, тестировщики и т. д. Для них разграничение по статусам не обязательно.


Как работает обновленная логика в карточке гостя. В отличие от обычного участника, он не может редактировать название своей роли в команде — только ФИО, аватар и статус

Советы тем, кто планирует реализовать систему ролей

  • Закладывайте ролевую модель с самого начала. Даже если на старте она кажется избыточной, в будущем значительно упростит расширение функциональности.
  • Храните роли в человеко-читаемом формате. Строковые значения вместо чисел облегчат масштабируемость и понимание кода.
  • Учитывайте интерфейс. Дизайн должен быть адаптивным, чтобы легко добавлять или изменять элементы для новых ролей.
  • Объединяйте методы работы с UI. Используйте унифицированные подходы для отображения, чтобы избежать проблем с разными платформами.
  • Проводите рефакторинг по мере необходимости. Старый код часто негибок, и его стоит доработать до начала внедрения новых функций.

Евгений Перов, директор продукта в корпоративном мессенджере Compass