Общий обзор
Casbin - мощная и эффективная библиотека контроля доступа с открытым исходным кодом. Она обеспечивает поддержку авторизации на основе различных моделей контроля доступа.
Все языки, поддерживаемые Casbin:
![]() | ![]() | ![]() | ![]() |
|---|---|---|---|
| Casbin | jCasbin | node-Casbin | PHP-Casbin |
| готовое производство | готовое производство | готовое производство | готовое производство |
![]() | ![]() | ![]() | ![]() |
|---|---|---|---|
| PyCasbin | Casbin.NET | Casbin-CPP | Casbin-RS |
| готовое производство | готовое производство | готовое производство | готовое производство |
Функция для разных языков
| Функция | Идти | Java | Node.js | PHP | Python | C# | Дельфи | Ржава | К++ | Lua | Дарт | Elixir |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Обеспечение соблюдения | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| RBAC | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| АДАТ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Scaling ABAC (eval()) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Адаптер | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| API управления | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| RBAC API | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Пакетное API | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ |
| Фильтрованный адаптер | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ |
| Наблюдатель | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
| Управление ролями | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
| Многопоточность | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| 'в' партнера | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ |
Мы всегда стараемся сделать так, чтобы Касбин имел один и тот же набор возможностей для всех языков. Но реальность не так красива. Нынешний прогресс является приведенной выше таблицей. ✅ для наблюдателя или ролевого менеджера означает только наличие интерфейса в основной библиотеке. Вопрос о том, есть ли доступный наблюдатель или реализация ролевого менеджера - еще один вопрос.
Что такое Casbin?
Что делает Камбин:
- применяют политику классической формы
{subject, object, action}или настраиваемую форму, как вы указали, и разрешают, и отказывают в разрешениях. - обрабатывает хранение модели контроля доступа и ее политики.
- управление картами ролевых ролей и картами ролей (aka role иерархия ролей в RBAC).
- поддержка встроенного суперпользователя, например
rootилиадминистратора. Суперпользователь может делать что-либо без явных разрешений. - несколько встроенных операторов для поддержки соответствия правил. Например,
keyMatchможет сопоставить ключ ресурса/foo/barс шаблоном/foo*.
Что не делает Камбин:
- аутентификация (проверка
имя пользователяи пароль `` при входе пользователя) - управление списком пользователей или ролями. Я считаю, что сам проект более удобно управлять этими сущностями. Пользователи обычно имеют свои пароли, а Casbin не разработан как контейнер паролей. Однако, Касбин хранит отображение ролей пользователей для сценария RBAC.







