Choerodon猪齿鱼实践之角色管理
角色管理是一个平台或系统中重要的基础功能,其中角色是一组特定权限的集合,而管理员可通过给成员分配角色来赋予成员相应的权限。这是角色在各个平台中的基本用法。
考虑到平台的业务层级与结构,Choerodon 的角色管理功能在此基础上,将角色按照层级进行了划分。分为:平台层、组织层与项目层,且一个角色仅能对应为一个层级。
本文旨在介绍 Choerodon 猪齿鱼V0.22及之后版本中组织层的角色管理功能。
Choerodon的角色体系与结构
Choerodon RBAC结构
对于各个平台或系统来说,权限系统设计得越全面和精细,后期的系统扩展性就越高。所以Choerodon采用了RBAC(Role-Based Access Control)的权限模型,基于角色来进行权限控制。通过角色关联用户,角色关联权限的方式间接赋予用户权限。以下为Choerodon RBAC的架构图。
除了结构上的优点,RBAC还支持3个著名的安全原则:
最小权限原则:最小权限原则之所以被RBAC所支持,是因为RBAC可以将其角色配置成其完成任务所需要的最小的权限集。因此在Choerodon中创建自定义角色时,为其分配满足条件的最小权限集合即可。
责任分离原则:责任分离原则指的是,可以通过调用相互独立互斥的角色来共同完成敏感的任务而体现,比如要求一个计帐员和财务管理员共参与同一过帐。由于Choerodon应用场景偏向项目管理、团队协作以及敏捷开发,因此对于角色的责任分离暂无特别的应用场景。
数据抽象原则:可以通过权限的抽象来体现,如:项目开发管理者和项目开发人员两个角色,对于“开发-应用服务”界面中的查看与操作权限就存在差异,而我们只需为项目开发人员这个角色分配页面的可读权限即可。
Choerodon RBAC流程
在开头我们提到了,Choerodon 的角色管理体系中,将角色按照层级进行了划分。分为:平台层、组织层与项目层,且一个角色仅能对应为一个层级。以下为Choerodon中各层级角色的整体流程图。
预定义角色
Choerodon猪齿鱼在组织层与项目层均设有预置角色,用于满足一般的组织与项目结构;其中包括:组织管理员、组织成员、项目所有者与项目成员。
- 组织层
组织管理员:是组织的管理者,用于管理组织的基础配置以及所有其中所有的项目。
组织成员:该角色用于衔接组织层与项目层,支持组织成员在所属组织下创建项目。
- 项目层
项目所有者:项目的管理者与所有者,可直接管理项目下所有的团队成员及项目资源。
项目成员:项目团队成员,可在项目下管理自己的进度以及负责的模块。
自定义角色
在预定义角色的基础上,为了满足更多的应用场景,Choerodon支持组织管理员在“管理中心-角色管理”页面,创建组织层或项目层的自定义角色,并且为这些自定义角色分配各个菜单的查看或操作权限。
比如从普通研发团队的角度来看,便可在项目下为“产品经理”、“测试人员”等业务人员创建相关的自定义角色,并在项目下为其分配相关菜单及接口的权限,以此来避免预置的“项目成员”角色菜单权限过多的问题。
如何使用Choerodon进行角色管理
自0.22版本后,Choerodon支持平台内各组织根据实际使用场景维护各自的角色,并为其分配对应的权限。以下为 Choerodon 中管理角色的具体步骤(此处以创建组织层角色为例,若想创建项目层角色,步骤类似)。
创建角色
组织管理员可在”管理中心>角色管理“菜单中,点击操作栏的“创建组织角色”按钮,即可在此创建新角色,在创建过程中需手动维护:
角色编码:角色编码具有唯一性,是角色的标识。
角色名称:角色的名称可根据角色权限与功能来定义。
角色权限:创建组织角色时,用户可以在此为角色分配组织层各菜单的访问权限;且支持为角色分配其中各个操作按钮或接口的权限,来实现更细颗粒的权限管理。
角色创建成功后,便能在主页管理界面中看到该角色相关的基础信息;而组织管理员也能在“用户管理”页面为组织下的用户分配创建成功的自定义角色。
Choerodon中支持为用户添加多个角色,而用户的权限为所分配角色的并集。
修改角色
对于创建成功的自定义角色,组织管理员可对其进行修改;在列表中点击目标角色的角色名称,进入修改角色页面。
其中,角色编码作为角色的唯一标识,不允许修改。组织管理员可在此对所选角色的名称或权限进行修改,以此来灵活地控制该角色对应的用户在平台中的菜单权限或操作权限。
Choerodon 预定义角色不支持修改。
启停用角色
- 停用角色:当组织中不再需要某个角色,想将其回收,便直接在此将其停用即可。停用角色后,赋予该角色的权限将失效,且已被分配该角色的成员对应的权限也将失效;而后续对用户分配角色时,也将不再显示该角色。
- 启用角色:自定义角色被停用后,可以再次启用。启用角色后,角色状态变为’启用’。而赋予该角色的权限也随之生效。
预定义角色不可停用,只能启/停用自定义角色。
总结
本文介绍了Choerodon中组织层的角色管理功能,至于平台层的角色管理功能,由于在0.22版本后,与Hzero进行了融合,因此支持了更多角色相关的功能(平台管理员可以在”平台层-用户管理“页面管理平台中所有的角色),从而能满足更多的场景;而我们将在后续的文章对其进行详细的介绍。
关于猪齿鱼
Choerodon 猪齿鱼作为全场景效能平台,是基于Kubernetes,Istio,knative,Gitlab,Spring Cloud来实现本地和云端环境的集成,实现企业多云/混合云应用环境的一致性。平台通过提供精益敏捷、持续交付、容器环境、微服务、DevOps等能力来帮助组织团队来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。
更加详细的内容,请参阅Release Notes和官网。
大家也可以通过以下社区途径了解猪齿鱼的最新动态、产品特性,以及参与社区贡献:
Choerodon猪齿鱼官方社区用户交流群,此群可交流猪齿鱼使用心得、Docker、微服务、K8S、敏捷管理等相关理论实践心得,群同步更新版本更新等信息,大家可以加群讨论交流。
①-Choerodon猪齿鱼官方交流(已满);
②-Choerodon猪齿鱼官方交流(可加);【微信号发至客服邮箱[email protected],运营同事拉您入官方交流群】
欢迎加入Choerodon猪齿鱼社区,共同为企业数字化服务打造一个开放的生态平台。
作者:毛智伟
出处:Choerodon
欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。