Приложение .Net Frame Core с несколькими пользователями и центральной БД

У нас есть задача разработать программное обеспечение с использованием ядра фрейма сущности и центральной базы данных SQL. Программное обеспечение будет иметь несколько пользователей с RBAC (управление доступом на основе ролей). Дизайн БД должен реализовывать таблицу групп пользователей и пользователей с отношением «многие ко многим».

Я читал о RBAC и RLS (безопасность на уровне строк) в SQL, но не могу связать это с кодом. Создание защищенного уровня в базе данных потребует много усилий, но я не знаю, как использовать это в коде. Я имею в виду, что усилия в таблицах проектирования базы данных будут реализованы в коде с использованием класса poco, но вложение всех этих усилий в обеспечение безопасности данных повлияет на производительность и сделает программное обеспечение очень зависимым от базы данных.

1- Как реализовать RBAC в коде? 2- С чего начать поиск? 3- Должен ли я просто ограничить свои ограничения в коде, используя запросы и графический интерфейс? 4. Должен ли я полагаться на СУБД для управления своей безопасностью или использовать ее только в качестве резервного уровня? 5- Какова наилучшая практика или шаблон проектирования для приложения и базы данных? Должен ли я отображать пользователей в базе данных с помощью RBAC и RLS, а затем просто использовать их для входа в приложение?


person KZD    schedule 22.01.2020    source источник
comment
Безопасность базы данных имеет мало общего с безопасностью приложения. RBAC встроен в .NET и ASP.NET еще в 2002 году. Он все еще присутствует в .NET Core и не имеет ничего общего с безопасностью базы данных.   -  person Panagiotis Kanavos    schedule 22.01.2020
comment
Форумы, например, имеют множество ролей, гостей, редакторов, пользователей, модераторов, администраторов. Обычно это записи в таблице. Код использует эти роли, чтобы решить, какие страницы разрешено видеть пользователю, как выглядит меню и, если пользователь сообразит, следует ли, например, отклонить прямой GET для admin.php. Приложение делает это, загружая профиль пользователя и проверяя роли и разрешения для каждого запроса.   -  person Panagiotis Kanavos    schedule 22.01.2020
comment
Для ASP.NET Core проверьте Раздел авторизации, особенно Авторизация на основе ролей   -  person Panagiotis Kanavos    schedule 22.01.2020


Ответы (1)


Как реализовать RBAC в коде?

Мы опубликовали примеры GitHub, иллюстрирующие, как получить доступ к данным, защищенным DevExpress XAF Система безопасности для Entity Framework Core 3 (CTP).

Для получения дополнительной информации просмотрите Часто задаваемые вопросы и эта функция и архитектура обзор. В FAQ мы также кратко сравнили этот API со стандартными функциями ASP.NET Core — надеюсь, это ответит на ваши вопросы.

Отказ от ответственности: это сторонний коммерческий продукт с бесплатной пробной версией.

person Dennis Garavsky    schedule 14.05.2020