Ir al contenido principal

Overview

Casbin es una poderosa y eficiente biblioteca de control de acceso de código abierto que soporta varios modelos de control de acceso para hacer cumplir la autorización de manera integral.

Hacer cumplir un conjunto de reglas es tan simple como listar sujetos, objetos y la acción permitida deseada (o cualquier otro formato según sus necesidades) en un archivo de política. Esto es sinónimo en todos los flujos en los que se utiliza Casbin. El desarrollador/administrador tiene control completo sobre la disposición, ejecución y condiciones para la autorización, que se establecen a través del archivo de modelo. Casbin proporciona un Enforcer para validar una solicitud entrante basada en los archivos de política y modelo dados al Enforcer.

Idiomas soportados por Casbin

Casbin ofrece soporte para varios lenguajes de programación, listos para ser integrados en cualquier proyecto y flujo de trabajo:

golangjavanodejsphp
CasbinjCasbinnode-CasbinPHP-Casbin
Listo para producciónListo para producciónListo para producciónListo para producción
pythondotnetc++rust
PyCasbinCasbin.NETCasbin-CPPCasbin-RS
Listo para producciónListo para producciónListo para producciónListo para producción

Conjunto de Características para Diferentes Lenguajes

Siempre estamos trabajando lo mejor posible para que Casbin tenga el mismo conjunto de características para todos los idiomas. Sin embargo, la realidad no es tan hermosa.

CaracterísticaGoJavaNode.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

Nota - ✅ para Watcher o Role Manager solo significa tener la interfaz en la biblioteca central. No indica si hay una implementación de watcher o role manager disponible. ¿Qué es Casbin?

Casbin es una biblioteca de autorización que se puede utilizar en flujos donde queremos que un cierto objeto o entidad sea accedido por un usuario específico o sujeto.

El tipo de acceso, es decir, acción, puede ser leer, escribir, eliminar o cualquier otra acción establecida por el desarrollador. Así es como Casbin se utiliza más ampliamente, y se llama el flujo "estándar" o clásico { sujeto, objeto, acción }. Casbin es capaz de manejar muchos escenarios de autorización complejos además del flujo estándar.

Puede haber la adición de roles (RBAC), atributos (ABAC), etc. Qué Hace Casbin

Hacer cumplir la política en la forma clásica { sujeto, objeto, acción } o una forma personalizada como usted definió.

  1. Se admiten tanto las autorizaciones de permitir como de denegar. Manejar el almacenamiento del modelo de control de acceso y su política.
  2. Gestionar las asignaciones de rol-usuario y las asignaciones de rol-rol (también conocido como jerarquía de roles en RBAC).
  3. Apoyar a superusuarios incorporados como root o administrador.
  4. Apoyo a superusuarios integrados como root o administrator. Un superusuario puede hacer cualquier cosa sin permisos explícitos.
  5. Proporcionar múltiples operadores integrados para soportar la coincidencia de reglas. Por ejemplo, keyMatch puede mapear una clave de recurso /foo/bar al patrón /foo*.

Lo que Casbin NO Hace

  1. Autenticación (es decir, verificar username y password cuando un usuario inicia sesión)
  2. Gestionar la lista de usuarios o roles.

Es más conveniente para los proyectos gestionar sus listas de usuarios, roles o contraseñas. Los usuarios suelen tener sus contraseñas, y Casbin no está diseñado como un contenedor de contraseñas. Sin embargo, Casbin almacena el mapeo de usuario-rol para el escenario RBAC.