Контроль доступа и правовые виды

Последние 2 месяца мы работали над системой разграничения доступа к данным. В этой статье мы расскажем, как Бипиум решает задачи безопасности в компаниях с любой организационной структурой.

Бипиум — это платформа, рассчитанная как на небольшие команды, так и на крупные федеральные корпорации. Мы поставили перед собой цель создать правовую политику с возможностью тонкой  настройки с минимум действий. Наши идеи перед стартом работ мы рассказали в статье в блоге и обсудили с компаниями-интеграторами. Спасибо всем за участие, вы нам помогли!

 

rights

 

И так, поехали:

 

Права на данные

В платформе 3 типа данных — разделы, каталоги и записи. Разделы объединяют каталоги в смысловые группы, а каталоги состоят из записей. Каждый объект имеет набор правил доступа. Правила дают привилегии доступа для сотрудников или групп. Если для сотрудника нет подходящих правил, то объект ему не доступен. Всё просто.

 

Наследование прав

Чтобы облегчить настройку прав мы используем принцип наследование. Это как в Windows: если у вас есть права на папку, вы видите все файлы в ней. Так и в Бипиуме: дав право на раздел, сотрудник видит все каталоги этого раздела и их записи. Если дать право на одну запись каталога, то сотрудник увидит раздел, но лишь с одним каталогом, в котором увидит лишь одну эту запись.

 

Привилегии

Доступ к данным бывает разный: одни могут видеть записи, а другие их изменять. Действия, которые сотрудники могут совершать, называются привилегиями.

В Бипиуме действуют 6 разрешающих привилегий:

  • Видеть записи — право видеть записи каталога (или всех каталогов секции)
  • Изменять записи — право редактировать записи каталога (или каталогах секции)
  • Создавать записи — право создавать записи в каталоге (или каталогах секции)
  • Удалять записи — право удалять записи в каталоге (или каталогах секции)
  • Назначать права — право задавать права доступа к секции, каталогу или записи
  • Администрировать — право переименовывать секцию, создавать или менять структуру каталогов

И одна запрещающая привилегия:

  • Доступ закрыт — полный запрет видеть, даже если есть разрешающие правила

 

Приоритеты привилегий

Каждая из разрешающих привилегий включает возможности предыдущих. Старше всех запрещающая привилегия — «Доступ закрыт». Если для сотрудника открыт доступ на запись, но при этом есть запрет на каталог или раздел — сотрудник не увидит запись.

 

Правовые группы

Каждое правило дает ту или иную привилегию для сотрудника или группе сотрудников (правовой группе).

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

 

Правовые виды

В крупных компаниях встречаются более сложные условия доступа к данным. Например, сотрудники отдела продаж должны видеть только тех клиентов, которых они ведут.
Или «младшие консультанты» не должны видеть сделки с суммой выше 100 000 рублей.
Или агент риэлторской компании должен видеть квартиры только из своего района города.

Внимательный читатель обратит внимание, что все такие кейсы включают не только того кто получает право (отдел, роль,…), но и условие, относящееся к данным (где ответственный я, сумма сделки меньше 100 000, своего район города).

 

В других системах:

Во многих других системах эти задачи решаются через создание дополнительных ролей. Проблема начинается когда «необходимо, чтобы младшие менеджеры филиалов видели клиентов только из своего города, где сумма сделки менее 100 000 рублей». Представьте себе насколько трудоемко создавать роли и назначать права, если у вас десятки городов, разных отделов и квалификаций продажников.

 

В Бипиуме:

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

  • Мои лиды — потенциальные клиенты в статусе «в работе», где менеджер «я»
  • Действующие — клиенты со статусум «заключен договор»
  • Отказники — клиенты со статусом «отказ»

При этом сотрудники не видят всю базу клиентов, а видят лишь те записи, которые по условиям попадают под один из разрешенных видов. Более того, виды могут давать разные привилегии. Например, младшие сотрудники могут редактировать клиентов, попадающих под вид «Мои лиды», под «Действующие» — только видеть, а руководитель продаж имеет полный доступ ко всей базе.

Правовые виды это простая в настройке реализация атрибутной модели прав доступа (ABAC), о которой мы рассказывали ранее.

 

Запрещающие виды

Существуют также и запрещающие виды. Например, вид «Вип-клиенты» может фильтровать клиентов с суммой сделки выше 100 000 рублей. Если для такого вида создать правило с привилегией «доступ закрыт» для должности «Младший продажник», то они не увидят этих клиентов, даже если они попадают в вид «Действующие». Правило запрета всегда сильнее.

 

Резюме

Права доступа в Бипиуме:

  • используют принцип наследования — от секции к каталогам, от каталогов к записям
  • дают возможность открывать доступ к конкретным записям
  • имеют 6 разрешающих привилегий доступа — от видеть до администрировать
  • и одну доминирующую запрещающую — полностью блокирующую доступ
  • не имеют ограничения на характер правовых групп — вы их создаете сами
  • построены на атрибутной модели прав (ABAC) — предоставление доступа в зависимости от свойств данных
  • не требует ни единой настройки для команд, у которых все открыто
Поделиться
Плюсануть

2 комментария

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *