Модель разрешений безопасности - PullRequest
2 голосов
/ 13 декабря 2010

Я занимаюсь разработкой настольного приложения и хотел бы заблокировать определенные части для определенных пользователей - администраторов, гостей, пользователей и т. Д. Какие существуют шаблоны проектирования для реализации такой системы разрешений на рабочем столе? Я могу думать только о трех, но я не знаю, как они названы (или, если они есть),

  1. 1) Каждое действие выполняет это собственная проверка безопасности, запрос сеанс или база данных для соответствующие разрешения пользователя (распространены среди простых веб-приложений)
  2. Каждый проверка действий с централизованным разрешающая система говорит "делает пользователь имеет x разрешение ", которое возвращает некоторый статус
  3. Еще до того, как какое-либо действие было предпринято, оно перехватывается диспетчером, который выполняет некоторый поиск действия в соответствии с применимыми разрешениями и разрешениями пользователя и не позволяет даже запускать действие, когда оно не разрешено

Ответы [ 2 ]

0 голосов
/ 18 августа 2015

Я уже ответил на аналогичный вопрос о разнице между ACL и RBAC, вы можете проверить его здесь.

Какова точная разница между ACL и RBAC в целом?

0 голосов
/ 13 декабря 2010

Я думаю, что вы искали RBAC (управление доступом на основе ролей).Я думаю, что нет четкой разницы между концепцией контроля доступа в настольном приложении и контроля доступа в веб-приложении.Разница только в реализации.Возможно, вы захотите проверить Spring Rich Client Platform, которые интегрированы в Spring Security.За пределами Spring Security я могу вспомнить следующие шаблоны проектирования RBAC:

  1. Каждый пользователь может быть напрямую связан с одной или несколькими ролями
  2. Каждая роль имеет одно или несколько разрешений
  3. Каждый пользователь может принадлежать к одной или нескольким группам
  4. Каждая группа имеет одну или несколько ролей

Другие шаблоны, которые могут представлять интерес, - это ACL (списки управления доступом)что мы привыкли в системах на базе Windows:

  1. Каждый объект имеет ACL, который показывает, какому пользователю или какой группе был предоставлен доступ к объекту
  2. Дочерний объект наследует ACL родителя.
...