Система управления правами RBAC и модель ABAC
Система управления правами RBAC и модель ABAC

Два широко используемых в настоящее время Разрешения Модель:на основеРольконтроль доступа(role-based access control RBAC)和на основесвойствоконтроль доступа(attribute-based access control ABAC)

Что такое РБАК?

Например, когда пользователь входит в систему управления финансами, каким пользователям разрешен доступ и редактирование каких меню, каким ресурсам продукта разрешен доступ и редактирование и т. д. Все эти разрешения зависят от того, какую роль выполняет пользователь.

В RBAC роль обычно относится к группе людей с определенными общими характеристиками, такими как: отдел, местоположение, стаж, уровень, должностные обязанности и т. д.

В начале системы администратор создает несколько разных ролей с разными комбинациями разрешений в зависимости от потребностей бизнеса. Например, роль A имеет разрешения на доступ и редактирование для всех меню, а роль B имеет разрешения на доступ и редактирование только для меню A, но не имеет. разрешения на редактирование других меню. Если необходимо предоставить разрешения пользователю, назначьте пользователю соответствующую роль, чтобы предоставить необходимые разрешения.

Что такое АБАК?

Контроль доступа ABAC использует набор характеристик, называемых «атрибутами». Сюда входят свойства пользователя, свойства среды и свойства ресурсов.

Атрибуты пользователя: включают в себя такие сведения, как имя пользователя, роль, организация, идентификатор и уровень допуска.

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

Свойства ресурса: включают такие данные, как дата создания, владелец ресурса, имя файла и конфиденциальность данных.

В зависимости от потребностей бизнеса могут быть сформулированы различные политики контроля доступа. Например, можно указать, что сотрудники финансового отдела могут получить доступ к системе в офисной сети в рабочее время в рабочие дни. Если сотрудники финансового отдела используют офисную сеть, но не имеют доступа в рабочее время, дополнительная проверка подлинности. Будет добавлено Если сотрудники финансового отдела не находятся в офисе, Доступ будет запрещен, если время доступа превышено и сеть офиса не используется.

Разница между RBAC и ABAC

Основное различие между RBAC и ABAC заключается в способе предоставления доступа к методам. RBAC предоставляет права доступа на основе ролей, а ABAC может определять права доступа на основе характеристик пользователя, характеристик объекта, типов операций и других атрибутов.

Краткое описание модели RBAC

RBAC состоит из 3 основных компонентов.

- Пользователь

- Роль

- Разрешения

Принципы безопасности RBAC

- Принцип наименьших привилегий: настройте роли с минимальным набором привилегий, необходимых для выполнения их задач.

- Принцип разделения обязанностей: выполняйте деликатные задачи, вызывая независимые и взаимоисключающие роли, например: бухгалтер и финансовый администратор совместно участвуют в проводочных операциях.

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

Преимущества и недостатки RBAC

преимущество:

1. Упрощение управления авторизацией

2. Облегчите разделение ролей

3. Принцип облегчения предоставления наименьших привилегий

4. Содействие разделению обязанностей

5. Облегчить классификацию объектов

недостаток:

— Не предусмотрен механизм контроля последовательности операций. Этот недостаток затрудняет адаптацию модели RBAC к системам, предъявляющим строгие требования к последовательности операций.

3 модели RBAC

1. RBAC0:Самый простой、Самая оригинальная реализация,Это также основа для других моделей RBAC.

В этой модели между пользователями и ролями может существовать связь «многие ко многим», и пользователь может иметь разные роли в разных сценариях.

2. RBAC1:на основеRBAC0Модель,Введены отношения наследования между Роль,На Роль есть различие между начальником и подчиненным.

3. RBAC2:на основеRBAC0Модель的基础上,Роль контроля доступа проведена

Краткое описание модели ABAC

ABAC (Контроль доступа к базе атрибутов) Управление разрешениями на основе атрибутов

В отличие от обычного способа каким-либо образом связывать пользователей с разрешениями, ABAC динамически вычисляет один или набор атрибутов.

Определите, выполняются ли определенные условия для принятия решений об авторизации (можно написать простую логику).

Недвижимость обычно делится на четыре категории:

Атрибуты пользователя (например, возраст пользователя, адрес пользователя)

Атрибуты окружающей среды (например, текущее время)

Атрибуты операции (добавление, удаление, изменение, проверка)

Свойства объекта (например, статья, также известная как свойства ресурса)

Например: учащиеся уровня P5 (уровень ранга) имеют разрешения на доступ к системе открытого доступа.

Выше приведен простой пример ABAC.,Это через сущностиКлассифицироватьВот этотсвойствоконтролировать, есть лиOAсистематический Разрешения

Другой пример: студенты R&D (уровень P5) (должность) имеют доступ к Gitlab компании.

В приведенном выше примере используется набор сущностейсвойство(Классифицироватьи позиция)управлять объектом эксплуатации Разрешения

Другой пример: студенты P5 (ранг), занимающиеся исследованиями и разработками (должность), могут просматривать и загружать (управлять) кодом во внутренней сети (среде) компании.

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

Таким образом, мы можем использовать следующую картинку, чтобы выразить модель контроля доступа ABAC.

ABACотличныйнедостаток:

преимущество:

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

При добавлении новых ресурсов ABAC необходимо поддерживать только меньше ресурсов, тогда как RBAC необходимо поддерживать все связанные роли, что делает ABAC более масштабируемым и удобным.

ABAC имеет более детальный контроль и динамическое выполнение на основе контекста, тогда как RBAC может принимать решения только на основе статических параметров.

недостаток:

Конструкция модели относительно сложна.

boy illustration
сравнение строк PHP
boy illustration
9 сценариев асинхронного сбоя @Async
boy illustration
Эффективная обработка запланированных задач: углубленное изучение секретов библиотеки APScheduler на Python
boy illustration
Рекомендации по облегченному артефакту развязки внутренних компонентов Spring Event (событие Spring)
boy illustration
Go: Лесоруб-лесоруб на колесах Введение
boy illustration
Основы серверной разработки: технология кэширования, которую должен освоить каждый программист
boy illustration
Java Advanced Collections TreeSet: что это такое и зачем его использовать?
boy illustration
Оказывается, у команды go build столько знаний
boy illustration
Node.js
boy illustration
Анализ исходного кода, связанный с запланированными задачами версии ruoyi-vue (7), то есть анализ модуля ruoyi-quartz.
boy illustration
Вход в систему с помощью скан-кода WeChat (1) — объяснение процесса входа в систему со скан-кодом, получение авторизованного QR-кода для входа.
boy illustration
HikariPool-1 — обнаружено отсутствие потока или скачок тактовой частоты, а также конфигурация источника данных Hikari.
boy illustration
Сравнение высокопроизводительной библиотеки JSON Go
boy illustration
Простое руководство по извлечению аудио с помощью FFmpeg
boy illustration
Подсчитайте количество строк кода в проекте
boy illustration
Spring Boot элегантно реализует многопользовательскую архитектуру: концепции и практика
boy illustration
Как интегрировать функцию оповещения корпоративного WeChat в систему планирования xxl-job
boy illustration
SpringBoot интегрирует отправку сообщений через веб-сокет в режиме реального времени
boy illustration
Краткий анализ основных библиотек журналов в Go: узнайте, как интегрировать функции вращения и резки бревен на уровне проектирования.
boy illustration
Реализация API-шлюза с нуля-Golang
boy illustration
[Разговорный сайт] Как Springboot получает значения свойств из файлов конфигурации yml или свойств
boy illustration
Spring Boot — синхронные события приложения против асинхронных событий публикации и подписки. Практический бой
boy illustration
Spring Boot использует Swagger3 для создания документов интерфейса API.
boy illustration
[1269] Использование Gunicorn для развертывания проектов flask.
boy illustration
Краткое изложение 10 способов регистрации bean-компонентов в SpringBoot
boy illustration
Flask Learning-9. 2 способа включения режима отладки (debug mode).
boy illustration
Руководство по настройке самостоятельного сервера для Eudemons Parlu
boy illustration
40 вопросов для собеседований по SpringBoot, которые необходимо задавать на собеседованиях! При необходимости ответьте на вопросы для собеседования SpringBoot [предлагаемый сборник] [легко понять]
boy illustration
Через два года JVM может быть заменен GraalVM.
boy illustration
Разрешение циклических зависимостей Spring Bean: существует ли неразрешимая циклическая ссылка?