Casbin Server is the Access Control as a Service (ACaaS) solution based on Casbin. It provides gRPC interface for Casbin authorization.
Casbin Server?Casbin-Server is just a container of Casbin enforcers and adapters. Casbin-Server is designed to be compute-intensive (for calculating whether an access should be allowed) instead of a centralized policy storage. Just like how native Casbin library works, each Casbin enforcer in Casbin-Server can use its own adapter, which is linked with external database for policy storage.
Of course, you can setup Casbin-Server together with your policy database in the same machine. But they can be separated. If you want to achieve high availability, you can use a Redis cluster as policy storage, then link Casbin-Server's adapter with it. In this sense, Casbin enforcer can be viewed as stateless component. It just retrieves the policy rules it is interested in (via sharding), does some computation and then returns allow or deny.
As Casbin-Server uses gRPC, you need to install ProtoBuf's command-line tool: protoc first to generate the .proto file. The command is:
protoc -I proto --go_out=plugins=grpc:proto proto/casbin.proto
Alternatively, you can also run it from an IDE.
go get github.com/casbin/casbin-server
This project is under Apache 2.0 License. See the LICENSE file for the full license text.