使用casbin进行应用访问控制
casbin 支持比较完备的访问控制模型(acl,rbac,abac...)
同时casbin也提供了一个acaas 的服务模型(casbin server)
特性
- 支持比较完备的访问控制模式
- 支持不同数据库的adapter
- 多语言支持(包含了基本上大家常用的开发语言,而且使用上是一致的)
- 支持大规模的使用(当然并不是特别的到位,特别大的量也是会有问题的,因为policy 加载目前是在客户端的,当然官方也提供了相关优化说明)
- 支持watcher 机制(主要还是对于本地存储模式的扩展,当我们部署多实例的时候问题的扩展解决方案)watcher 实现也比较简单
- 分布式式模式以及增量支持(能减少因为变动的loadpolicy 问题,但是核心单机存储数据还是有问题的,还是比较期待提供调整的)
casbin-server 参考说明
casbin-server 是一个cs 架构的模式,server基于golang编写,同时提供了client(golang,php,python)
支持的数据库(基于gorm)包含mssql,mysql,postgres... 同时也依赖的grpc,我们自己也可以实现不同语言实现
说明
casbin的设计是很不错的,支持多租户,强大的规则处理,多语言一致行使用,很值得使用,对于日常的访问控制系统开发很值得使用(简单高效)
参考资料
https://casbin.org/
https://github.com/casbin/casbin-server
https://github.com/casbin/casbin