平台权限管理设计(权限管理系统设计报告)

平台权限管理往往是比较核心的,权限的配置与管理存在很多矛盾的地方。例如权限控制的颗粒度与配置的复杂度就是对立的,如何在不可兼得中找到相对平衡的那个点呢。很多开发者都在不断努力试图去接近它,下面聊聊opsone平台在这方面都做了哪些努力和尝试,也算是抛砖引玉吧。

权限颗粒的控制在接口级别,接口采用自动注册机制,当平台进程启动时,各个API接口会自动将各自的接口信息注册到etcd,权限后台程序会定期拉取etcd接口注册信息,将接口注册信息写入权限数据库表中并自动维护权限表数据的实时更新。这样就最大限度地减少了人工配置操作,降低配置难度。

平台权限管理设计(权限管理系统设计报告)

在权限验证环节,采用开源软件Casbin,Casbin是一个功能强大、高效的开源访问控制库。它支持基于各种访问控制模型强制授权,支持验证模型包括ACL,RBAC,ABAC,RESTful,Deny-override,Priority等,opsone平台采用了基于RBAC模式的权限验证。

平台权限管理设计(权限管理系统设计报告)

用户配置方面依然采用极简的设计开发理念,只需要简单的点击鼠标即可完成权限的配置工作,不需要去理解RBAC的概念,也无需关心修改权限后是如何与casbin进行规则同步的。所有的一切都由后台程序自动完成。

平台权限管理设计(权限管理系统设计报告)

左侧的菜单栏按照平台的功能模块进行导航,点击相应功能模块菜单即可显示功能模块对应的权限配置列表,权限颗粒为接口级别。

平台权限管理设计(权限管理系统设计报告)

右侧的权限配置区域表示每个角色(基于RBAC)所拥有的权限,通过每个接口权限开关进行开启或者关闭。

平台权限管理设计(权限管理系统设计报告)

最右侧的权限显示功能的主要作用是设置哪些接口可以在角色的权限列表里显示,也就是说可以按照实际的业务需求对角色的权限设置复杂度进行控制。例如作业模块拥有10多个接口,角色对作业模块的权限控制不需要对这10多个接口都进行配置,这样只要对不想配置的接口关闭权限显示,在角色的权限配置页面就看不到关闭的接口权限了。

平台权限管理设计(权限管理系统设计报告)

可以随时编辑权限名称

平台权限管理设计(权限管理系统设计报告)

平台权限管理设计(权限管理系统设计报告)

只需要点击一下开启或者关闭即可对角色拥有的权限进行设置,并且可以按照功能模块进行清晰的权限设置。如果您有更好的方案或者意见都可以在评论区留言,我们一起探讨学习!

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/107055.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
重蔚的头像重蔚管理团队
上一篇 2022年10月5日 03:54
下一篇 2022年10月9日 18:22

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息