Casbin Auth Middleware

Casbin is a powerful and efficient open-source access control library for Go. It provides support for enforcing authorization based on various models. By far, the access control models supported by Casbin are:

ACL (Access Control List)

ACL with superuser

ACL without users: especially useful for systems that don’t have authentication or user log-ins.

ACL without resources: some scenarios may target for a type of resources instead of an individual resource by using permissions like write-article, read-log. It doesn’t control the access to a specific article or log.

RBAC (Role-Based Access Control)

RBAC with resource roles: both users and resources can have roles (or groups) at the same time.

RBAC with domains/tenants: users can have different role sets for different domains/tenants.

ABAC (Attribute-Based Access Control)

RESTful

Deny-override: both allow and deny authorizations are supported, deny overrides the allow.