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

Casbin

Библиотека авторизации, поддерживающая модели контроля доступа, такие как ACL, RBAC, ABAC для Golang, Java, C/C++, Node. , Javascript, PHP, Laravel, Python, .NET (C#), Delphi, Rust, Ruby, Swift (Objective-C), Lua (OpenResty), Dart (Flutter) и Elixir

Как начать

Модели контроля гибридного доступа

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

Гибкое хранение политики

Помимо памяти и файлов, политика Casbin может храниться в нескольких местах. В настоящее время поддерживается десятки баз данных, от MySQL, Postgres, Oracle до MongoDB, Redis, Cassandra, AWS S3. Проверьте полный список поддерживаемых сайтов: адаптеры.

Межязыковые и кросс-платформенные

Casbin реализован в Golang, Java, PHP и Node.js. Все реализации делятся одним и тем же API и поведением. Вы можете изучать Casbin один раз и использовать его повсеместно.

Сохранение политики

В Касбине хранилища политики реализованы как адаптер(aka middleware for Casbin). Чтобы сохранить легкий вес, мы не ставим код адаптера в основную библиотеку (кроме стандартного файлового адаптера). Полный список адаптеров Casbin приводится ниже. Любой вклад сторонних разработчиков на новом адаптере приветствуется; сообщите нам и я поместим его в этот список:) Для получения подробной информации о адаптерах обратитесь к документации: адаптеры.
Policy Persistence
Policy enforcement at scale

Принудительная реализация политики в масштабе

Некоторые адаптеры поддерживают управление отфильтрованной политикой. Это означает, что политика, загруженная Casbin, является подмножеством политики хранения на основе данного фильтра. Это позволяет эффективно осуществлять политику в крупных многоквартирных условиях при анализе всей политики становится узким препятствием на пути к ее осуществлению.

Роль менеджера

Менеджер ролей используется для управления иерархией ролей RBAC (картирование ролей пользователя) в Касбине. Менеджер ролей может получить данные ролей из правил политики Casbin или внешних источников, таких как LDAP, Okta, Auth0, Azure AD, и т.д. Мы поддерживаем различные реализации ролевого менеджера. Чтобы сохранить легкий вес, мы не помещаем код ролевого менеджера в основную библиотеку (кроме менеджера по умолчанию). Полный список ролевых менеджеров Касбина предоставлен как: ролевые менеджеры.
Role manager

Кто использует Casbin?

Сотни проектов используют Casbin, от созданных Fortune 500 до новых горячих стартапов. f Вам интересно посмотреть, что может быть сделано в Casbin, проверить эти приложения!