RBAC - Управление доступом на основе ролей

RBAC - (Role Based Access Control) - управление доступом на основе ролей. Система ролей призвана определять четкие, понятные, а также гибкие и изменяющиеся динамически в процессе функционирования компьютерной системы правила разграничения доступа. Ролевой подход часто используется в системах, для пользователей которых четко определён круг их должностных полномочий и обязанностей.

Базовая модель RBAC - обозначения

  • S = Субъект (англ. Subject) - например пользователь (человек)
  • R = Роль (англ. Role) - например администратор, модератор
  • P = Разрешения (англ. Permissions) - например возможность создавать публикации

Правила базовой модели RBAC

  • Один субъект может иметь несколько ролей
  • Одну роль могут иметь несколько субъектов
  • Одна роль может иметь несколько разрешений
  • Одно разрешение может принадлежать нескольким ролям
  • Роли назначаются субъектам, вследствие чего субъекты получают те или иные разрешения через роли
  • На разрешение (Permission) может накладываться ограничительная норма - правило (rule). Например: редактирование записи возможно только тогда, когда субъект является автором этой этой записи

Пример в виде схемы

Пояснения

  • Субъект John имеет роль admin
  • Субъект Peter имеет роль author
  • Роль admin имеет разрешение updatePost (обновление любых записей). Также роль admin имеет все разрешения, которые имеет роль author
  • Роль author имеет разрешение createPost (создать запись)
  • При попытки вызвать updatePost (обновить любой пост) роль author вызовет updateOwnPost (обновить свою собственную запись) с правилом authorRule. Если правило положительно пройдет проверку, то пользователю с ролью author предоставится доступ. Пример на картинке ниже:

Попытка создать новую запись субъектом John проиллюстрирована ниже:

Дополнительные материалы

Информация

Автор конспекта


Дата создания: 01.01.2019
Категория: Веб-разработка