Перейти до основного контенту

Overview

Casbin - це потужна та ефективна бібліотека контролю доступу з відкритим вихідним кодом, яка підтримує різні моделі контролю доступу для забезпечення авторизації на всіх рівнях.

Застосування набору правил так само просте, як перелічення суб'єктів, об'єктів та бажаної дозволеної дії (або будь-якого іншого формату відповідно до ваших потреб) у файлі політики. Це синонімічно для всіх процесів, в яких використовується Casbin. Розробник/адміністратор має повний контроль над структурою, виконанням та умовами для авторизації, які встановлюються через файл моделі. Casbin надає Enforcer для перевірки вхідного запиту на основі політики та файлів моделі, наданих Enforcer.

Мови, що підтримуються Casbin

Casbin підтримує різні мови програмування, готові до інтеграції в будь-який проект та робочий процес:

golangjavanodejsphp
CasbinjCasbinnode-CasbinPHP-Casbin
Готовий до виробництваГотовий до виробництваГотовий до виробництваГотовий до виробництва
pythondotnetc++rust
PyCasbinCasbin.NETCasbin-CPPCasbin-RS
Готовий до виробництваГотовий до виробництваГотовий до виробництваГотовий до виробництва

Набір функцій для різних мов

Ми завжди докладаємо максимум зусиль, щоб Casbin мав однаковий набір функцій для всіх мов. Однак реальність не така вже й прекрасна.

ФункціяGoJavaNode.jsPHPPythonC#DelphiRustC++LuaDartElixir
Enforcement
RBAC
ABAC
Scaling ABAC (eval())
Adapter
Management API
RBAC API
Batch API
Filtered Adapter
Watcher
Role Manager
Multi-Threading
'in' of matcher

Примітка - ✅ для Watcher або Role Manager означає лише наявність інтерфейсу в основній бібліотеці. Це не вказує на те, чи є доступна реалізація watcher або role manager.

Що таке Casbin?

Casbin - це бібліотека авторизації, яку можна використовувати в процесах, де ми хочемо, щоб певний об'єкт або сутність могла бути доступна конкретному користувачу або суб'єкту. Тип доступу, тобто дія, може бути читання, запис, видалення або будь-яка інша дія, встановлена розробником. Ось як Casbin найчастіше використовується, і це називається "стандартним" або класичним { subject, object, action } потоком.

Casbin здатний обробляти багато складних сценаріїв авторизації, крім стандартного потоку. Може бути додано ролі (RBAC), атрибути (ABAC) тощо.

Що робить Casbin

  1. Забезпечує політику в класичній формі { subject, object, action } або у визначеній вами налаштованій формі. Підтримуються як дозволені, так і заборонені авторизації.
  2. Керує зберіганням моделі контролю доступу та її політики.
  3. Керує відображеннями ролі-користувача та відображеннями ролі-ролі (так звана ієрархія ролей у RBAC).
  4. Підтримує вбудованих суперкористувачів, як-от root або administrator. Суперкористувач може робити все без явних дозволів.
  5. Забезпечує кілька вбудованих операторів для підтримки відповідності правил. Наприклад, keyMatch може відображати ключ ресурсу /foo/bar на шаблон /foo*.

Що Casbin НЕ Робить

  1. Аутентифікація (тобто перевірка username і password під час входу користувача)
  2. Управління списком користувачів або ролей.

Для проектів зручніше самостійно управляти своїми списками користувачів, ролей або паролів. Зазвичай користувачі мають свої паролі, і Casbin не призначений для зберігання паролів. Однак, Casbin зберігає відображення користувач-роль для сценарію RBAC.