For 基于属性的访问控制 (ABAC) 权限库, the strongest matches are stalniy/casl (CASL is a JavaScript ABAC library that lets you), casbin/casbin (Candidate provides a genuine ABAC library with a complete) and hsluoyz/casbin (Casbin is a full-featured authorization library with native support). openfga/openfga and open-policy-agent/opa round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
用于在软件应用中实现细粒度、策略驱动授权逻辑的开源库。
CASL is a JavaScript authorization library for defining and enforcing declarative access control rules across both frontend and backend environments. It provides an attribute-based access control system that manages permissions based on user roles and specific object properties. The library is designed for isomorphic access control, allowing a consistent set of permission rules to be shared between a server API and a client interface. It enables the serialization of permission sets as plain data objects to maintain synchronization across these different layers. Its capabilities include trans
CASL is a JavaScript ABAC library that lets you define declarative access rules based on user roles and object properties, with a policy evaluation engine, custom matching functions, and integrations for frameworks like MongoDB and React — covering every core feature you listed for fine-grained authorization.
Casbin is an authorization library that provides a model-based engine for enforcing access control across diverse application environments. It decouples authorization logic from application code by using a configuration-driven approach, allowing developers to define access rules and evaluation logic independently. The system supports a wide range of access control models, including role-based, attribute-based, and relationship-based patterns, which are evaluated at runtime to determine if a subject is permitted to perform an action on a resource. The project distinguishes itself through a hig
Candidate provides a genuine ABAC library with a complete policy engine, expression-language rules, multi-source attribute support, framework integrations, and a policy management API, making it a flagship match for the target search.
Casbin is an authorization library designed to manage application access control and permissions through a configurable model-based engine. It serves as a centralized system for verifying whether a user has permission to perform specific actions on a resource. The engine supports multiple access control models, including Role-Based Access Control, Attribute-Based Access Control, and Access Control Lists. It allows for the definition of role hierarchies and the evaluation of user, resource, and environment attributes to make access decisions. The library decouples authorization logic from dat
Casbin is a full-featured authorization library with native support for the ABAC model, a configurable policy evaluation engine, an expression language for rule definitions, and support for multiple attribute sources, making it a comprehensive match for your search.
OpenFGA is a fine-grained authorization server and policy decision point that implements relationship-based access control. It serves as a centralized authorization service for evaluating access requests and managing relationship tuples across distributed microservices and multi-tenant environments. The engine combines relationship graphs with attribute-based access control, using the Common Expression Language to evaluate dynamic runtime attributes and conditional access rules. It handles complex hierarchies and nested permissions by traversing chains of associations and parent-child links t
OpenFGA is a fine-grained authorization server that incorporates ABAC attributes into its relationship-based policy model, using Common Expression Language for dynamic attribute evaluation, making it a viable policy engine for ABAC scenarios despite its primary focus on relationship-based access control.
This project is a unified, cloud-native policy engine designed to decouple authorization and security logic from application codebases. It functions as a centralized authorization service that evaluates structured input data against declarative rules, enabling consistent policy enforcement across microservices, infrastructure, and continuous integration pipelines. The engine utilizes a specialized logic programming language to express complex constraints, which are compiled into an optimized intermediate representation for high-performance evaluation. By supporting both sidecar-based deployme
Open Policy Agent (OPA) is a cloud-native policy engine that uses its declarative rule language (Rego) to evaluate attributes and enforce fine-grained authorization, making it a direct and comprehensive match for an ABAC library with policy evaluation, expression language, multi-source input, and integration APIs.
Cerbos is an open-source authorization service that provides a centralized, language-agnostic engine for managing access control. It functions as a policy-as-code platform, allowing teams to define, test, and distribute authorization rules using declarative YAML or JSON configurations. By decoupling access logic from application code, it enables consistent permission enforcement across diverse service stacks. The project distinguishes itself through its ability to translate high-level authorization policies into native database query filters. This capability allows applications to enforce sec
Cerbos is a purpose-built authorization engine that uses attribute-based policies to define and enforce fine-grained access control, providing a policy evaluation engine, expressive rule language, and integration APIs, directly matching the requirements for an ABAC library/policy engine.
Warrant is an open-source authorization library supporting attribute-based access control (ABAC) as part of its fine-grained permission system, fitting your need for an ABAC library and policy engine.
NestJS Access Control is a role-based and attribute-based authorization framework designed for the NestJS ecosystem. It provides a declarative system for securing application routes and resources, allowing developers to enforce granular access policies through metadata-driven decorators. The framework distinguishes itself by supporting hierarchical role inheritance, which enables the resolution of complex permission sets by traversing parent and child role relationships. It also facilitates dynamic authorization management, allowing security rules to be loaded asynchronously from external dat
nest-access-control is an ABAC library tightly integrated with the NestJS framework, providing both role and attribute-based policies for fine-grained authorization within that ecosystem — it fits your intent if you use NestJS, but it may not be the general-purpose, framework-agnostic policy engine you might otherwise be seeking.