Разработка модели безопасности на основе разрешений - PullRequest
3 голосов
/ 11 июля 2011

Я работаю над приложением winforms vb.net, где в настоящее время мы используем простые роли для обеспечения безопасности.Мы включаем / отключаем определенные элементы управления в зависимости от того, имеет ли текущий пользователь требуемую роль.Мы дошли до того, что это уже недостаточно детально.

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

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

Есть идеи?

1 Ответ

2 голосов
/ 12 июля 2011

Вы на правильном пути с ролями и разрешениями.Это довольно распространенное решение, когда роль ссылается на набор разрешений «по умолчанию»;имея у пользователя роль и набор разрешений, вы разрешаете переопределять роль набором разрешений, специально предоставленных / отозванных для этого пользователя.Это дает разумную гибкость и детализацию и поддерживает вашу ситуацию добавления новых разрешений (в роли), не затрагивая каждого пользователя.

...