Casbin

Casbin

  • Документ
  • API
  • Редактор
  • Плагины IDE
  • Single Sign-On (SSO)
  • Форум
  • Справка
  • Блог
  • Pricing
  • Contact Sales
  • Languages iconРусский
    • English
    • 中文
    • 한국어
    • Français
    • Deutsch
    • 日本語
    • Помочь перевести
  • GitHub

›Основы

Основы

  • Общий обзор
  • Начать работу
  • Как это работает
  • Уроки

Модель

  • Поддерживаемые модели
  • Синтаксис для моделей
  • Эффект
  • Функция
  • RBAC
  • RBAC with Pattern
  • RBAC с доменами
  • Casbin RBAC v.s. RBAC96
  • АДАТ
  • Приоритетная модель
  • Супер админ

Хранилище

  • Модель хранилища
  • Хранилище политики
  • Загрузка подмножества политик

Расширения

  • Enforcers
  • Адаптеры
  • Наблюдатели
  • Диспетчеры
  • Менеджеры ролей
  • Посредники
  • GraphQL Middlewares
  • Облачные Посредники

API

  • Обзор API
  • API управления
  • RBAC API
  • RBAC с доменным API
  • RoleManager API
  • Права доступа к данным

Расширенное использование

  • Многопоточность
  • Benchmarks
  • Оптимизация производительности
  • Авторизация Кубернетов
  • Авторизация служебной ячейки через посланника

Управление

  • Администратор портала
  • Служба Касбина
  • Обработка журнала и ошибок
  • Использование интерфейса

Редактор

  • Онлайн-редактор
  • Плагины IDE

Ещё

  • Наши усыновители
  • Вклад
  • Политика конфиденциальности
  • Условия предоставления услуг
Translate

Как это работает

В Касбине модель контроля доступа абстрагируется в CONF файл, основанный на метамоделе PERM (политика, эффект, запрос, Matchers). Таким образом, переключение или обновление механизма авторизации для проекта так же просто, как и изменение конфигурации. Вы можете настроить свою собственную модель контроля доступа, комбинируя доступные модели. Например, вы можете комбинировать роли RBAC и атрибуты ABAC внутри одной модели и поделиться одним набором правил политики.

Модель PERM состоит из четырех основ (политика, действие, запрос, Matchers), описывающих взаимоотношения между ресурсами и пользователями.

Запросить

Определите параметры запроса. Основной запрос - это туфельный объект, требующий, по крайней мере, предмет (доступный объект), объект (доступный ресурс) и действие (метод доступа)

Например, определение запроса может выглядеть следующим образом: r={sub,obj,act}

На самом деле он определяет имя параметра и его порядок, который мы должны предоставить для функции контроля доступа.

Политика

Определите модель стратегии доступа. По сути, она определяет имя и порядок полей в документе правил политики.

Например: p={sub, obj, act} или p={sub, obj, act, eft}

Примечание: Если eft (результат политики) не определен, то поле результата в файле политики не будет прочитано, и результаты соответствующей политики будут разрешены по умолчанию.

Матчер

Соответствующие правила запроса и политики.

Пример: m = r.sub == p.sub && r.act == p.act && r.obj == p. bj Это простое и общее совпадающее правило означает, что если запрашиваемые параметры (сущности, и методы) равны, то есть если их можно найти в политике, то результат политики (p. f) возвращается. Результат стратегии будет сохранен в p.eft.

Эффект

Это можно понимать как модель, в которой логическая комбинация вновь выполняется по результатам совпадений матчей.

Например: e = некоторый (where(p.eft == разрешить))

Это предложение означает, что если результат совпадения p.eft имеет (некоторый) результат, то окончательный результат верно

Давайте посмотрим на другой пример: e = где-то (где (p.eft == allow)) && !some(где (p. ft == отрицать)) Логическое значение этой комбинации примеров: если существует стратегия, которая соответствует результату разрешения и не соответствует результату отрицания, результат верен. Другими словами, верно, когда все совпадающие стратегии разрешены, если есть отрицание, оба являются ложными (более просто, когда позволяют и отрицают существование в то же время, отрицание имеет приоритет)

Самая простая и простая модель в Касбине - ACL. Модель ACL CONF:

# Определение запроса
[request_definition]
r = sub, obj, act

# Определение политики
[policy_definition]
p = sub, obj, act

# Эффект политики
[policy_effect]
e = как-то (стр. ft == позволять))

# Матчей
[matchers]
м = r. ub == p.sub && r.obj == p.obj && r.act == p.act

Пример политики для модели ACL аналогичен:

p, alice, data1, чтение
p, bob, data2, запись

Это означает:

  • alice может читать данные1
  • Боб может записать данные2

Мы также поддерживаем многострочный режим, добавив '\' в конце:

# Соответствия
[matchers]
m = r.sub == p.sub && r.obj == p.obj \ 
  && r.act == p.act

Более того, если вы используете ABAC, вы можете попробовать оператора в , как указано в редакции Casbin golang (jCasbin и Node-Casbin пока не поддерживаются):

# Соответствия
[matchers]
м = r.obj == p.obj && r.act == p.act || r.obj в ('data2', 'data3')

Но вы ДОЛЖНЫ убедитесь в том, что длина массива БОЛЬШЕ чем 1, в противном случае это вызовет панику.

Для большего количества операторов вы можете взглянуть на govaluate

← Начать работуУроки →
Casbin
Docs
Getting StartedManagement APIRBAC APIMiddlewares
Community
Who's using Casbin?Stack Overflow
Casbin          jCasbin
Node-Casbin   PHP-CasbinPyCasbin          Casbin.NETCasbin-CPP        Casbin-RS
Follow @casbinHQ
Copyright © 2022 Casbin Organization