openfga原理及简单落地方案设计
源码地址
https://github.com/openfga
OpenFGA 是一款高性能且灵活的授权/许可引擎,专为开发人员打造,灵感来自Google Zanzibar。它将强大的基于关系的访问控制 (ReBAC)和基于属性的访问控制 (ABAC)概念与领域特定语言相结合,可以轻松制定可以扩展和发展到任何规模的任何用例的授权和许可解决方案。
快速开始
https://github.com/openfga/openfga
一、背景
一方面,项目权限管理能力需要支持部门、群组、用户类型、角色等各种场景的权限配置,以保证数据安全,从而需要设计一种灵活度高的权限模型支持丰富的权限扩展能力;另一方面,在复杂的权限模型下,需要保证资源列表、资源搜索等复杂查询场景下的性能,从而提升用户体验。在这些背景下,选择一种通用、简单、灵活、高性能的权限模型显得尤为重要。
1.1 常见权限模型
常见的权限模型有ACL(Access Control List)访问控制列表、RBAC(Role-Based Access Control)基于角色的访问控制、ABAC(Attribute-Based Access Control)基于属性的访问控制。
1.1.1 ACL
ACL 是最简单的权限管理模型之一,ACL 将权限直接与用户或用户组相关联,管理员直接给用户授予某些权限即可。这种模型适用于小型和简单系统