猪齿鱼 Choerodon 数智化开发管理平台 ,提供协作、测试、DevOps及容器等工具,帮助企业拉通软件开发和项目管理的需求、设计、开发、部署、测试和运营全流程,全面满足企业研发管理与工程效率需求,一站式提高管理效率和软件研发质量,助力团队效能更快更强更稳定,助推企业数智化转型升级。

本文将介绍猪齿鱼的权限体系,帮助猪齿鱼用户从自身需求出发,进行更细粒度的权限控制。本文也将对猪齿鱼中所应用的 RBAC 权限模型和 HZERO(汉得企业级 PaaS 平台)的角色权限体系进行简要介绍。

一、RBAC 权限模型

猪齿鱼 Choerodon 权限体系基于RBAC权限模型而建立。以下先简要介绍下RBAC模型。

RBAC是Role Based Access Control的英文缩写,意思是基于角色的访问控制。RBAC认为权限的过程可以抽象概括为:判断“Who是否可以对What进行How的访问操作”这个逻辑表达式的值是否为True的求解过程。即,将权限问题转换为Who、What、How的问题,Who、What、How构成了访问权限三元组。其中who是权限的拥有者或主体(User、Role),What是资源或对象(Resource、Class),How指具体操作(View, Edit)。

RBAC权限模型如下:

图片来源于网络

相对于直接将权限授予用户个人来说,RBAC权限模型增加了角色,授权会更加的灵活方便。角色可以理解为一定数量的权限集合,权限的载体。

RBAC主要包含四个子模型:RBAC0、RBAC1、RBAC2和RBAC3,整体又叫做RBAC96模型族。

图片来源于网络

RBAC0:RBAC0是权限管理的核心部分,其他的版本都是建立在RBAC0的基础上。简单来说,RBAC0就是一个用户拥有若干角色,每一个角色拥有若干权限。这样就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般都是多对多的关系。并且将关系作为一个单独的概念来使用,这样可以在关系概念中加入一些其他的属性。

RBAC1:RBAC1建立在RBAC0的基础上,引入了角色继承的概念。有了继承。角色就有了上下级或者等级关系,每个等级权限不同,从而实现更细颗粒度的权限管理,比如:一个部门有正副经理,副经理的权限只有正经理的部分权限,这时候就可以采用RBAC1权限模型。

RBAC2:RBAC2在RBAC0模型的基础之上,增加了角色约束,主要约束哪些操作是可进行的,哪些是不可进行。

RBAC3:RBAC3是RBAC1和RBAC2的合集,所以RBAC3既有角色分层,也包括可以增加各种限制。

二、HZERO角色

猪齿鱼使用汉得企业级PaaS平台HZERO作为微服务开发框架,猪齿鱼的角色权限控制也使用了HZERO的角色权限体系。

HZERO是一个企业级PaaS平台,结合汉得多年的项目实施经验,抽象、封装了大量的应用标准服务及功能,以帮助企业产品研发、项目实施更加高效便捷,避免大量产品和项目重复造轮子带来的成本浪费。

在HZERO角色体系中,所有角色都是属于平台(超级)管理员或租户(超级)管理员的子孙角色。平台管理员拥有所有平台级权限,创建平台级权限集时,所有平台级权限会被自动分配到平台管理员上;租户管理员拥有所有租户级权限,创建租户级权限集时,所有租户级权限会被自动分配到租户管理员上。所以,创建权限集后,只能由对应层级的超级管理员往下分配权限。

HZERO角色体系分创建体系和继承体系,创建体系表现在父、子角色关系上,继承体系表现在继承角色关系上。两种体系的区别是:在分配权限时,例如,在给租户模板角色分配权限后,所有继承自该租户模板角色的角色将自动拥有该租户模板角色被分配的权限,用户可以一键往下分配继承自该租户角色模板的角色权限;创建体系则不能一键往下分配子角色的权限。在回收权限时,会回收整个创建体系、继承体系的权限。

具体使用详情可参考 HZERO角色管理文档。

三、猪齿鱼预定义角色

猪齿鱼预定义角色是猪齿鱼权限的基础,由平台默认创建,包括以下四个角色:

  • 组织管理员角色模板:组织层所有权限
  • 组织成员角色模板:组织层部分查看权限
  • 项目所有者角色模板:项目层所有权限
  • 项目成员角色模板:项目层部分操作权限

创建组织时,会基于这四个模板创建对应组织的相关角色,即所有组织的四个预定义角色,都继承自这四个角色模板;通过HZERO的继承体系,可以一键往下分配权限或者回收权限。

四、角色标签

猪齿鱼通过角色标签区分是组织层角色还是项目层角色、区分对应用服务的Gitlab权限,以此实现业务权限的灵活管理与有效隔离。

使用平台管理员角色,进入平台管理-》HZERO菜单-》角色管理菜单,进入HZERO标签管理界面。选择角色标签,可以查看猪齿鱼的所有角色标签及其含义。

该页面上可编辑的只有TENANT_ROLE、PROJECT_ROLE、GITLAB_OWNER、GITLAB_DEVELOPER等四个标签。

首先介绍进行层级区分的两个标签:

  1. TENANT_ROLE:用于标识猪齿鱼租户层角色,该标签有两个含义,一是用于区分HZERO的角色与猪齿鱼的角色,二是用于区分猪齿鱼的组织层角色和项目层角色。
  2. PROJECT_ROLE:用于标识猪齿鱼的项目层角色,含义同TENANT_ROLE。

值得注意的是,只有拥有以上两个中任意一个标签的角色,才能在管理中心-》角色管理进行查看和编辑。

另外,还有控制GitLab权限的两个标签:

  1. GITLAB_OWNER:当为用户分配拥有该角色标签的角色时,会自动为该用户分配项目下所有应用服务在GitLab的Owner权限。
  2. GITLAB_DEVELOPER:同GITLAB_OWNER,会自动为该用户分配项目下所有应用服务在GitLab的Developer权限。

以上两个标签的设置主要是为了解决用户拥有项目下的菜单权限,但是,在实际操作过程中,却没有GitLab权限而操作失败这一问题;但是因为这两个标签是给项目下所有应用服务分配权限,所以需谨慎使用,该标签需要配合PROJECT_ROLE标签使用。

附:猪齿鱼GitLab权限说明

1.猪齿鱼的组织所有者、项目所有者角色,默认拥有gitlab_owner角色标签,拥有项目下所有应用服务在GitLab的Owner权限;

2.对于项目成员默认没有Gitlab任何权限,可根据需要在代码管理界面,给用户分配具体的权限,包括Guest、Repoter等角色;

3.对于自定义角色,可根据需求选择GITLAB_OWNER或者GITLAB_DEVELOPER角色标签。

五、自定义角色

了解了角色标签的含义,我们可以开始创建自定义角色。

您可以在组织层或平台层找到自定义角色的入口:组织层-》管理中心-》角色管理;平台层-》角色管理。

1. 组织层角色管理

可以创建、编辑该组织下的所有自定义角色,创建项目层角色时,必须要选择GitLab角色标签,以避免拥有菜单权限,但是没有GitLab权限,从而导致操作失败的情况;在该界面创建的角色,会根据角色层级的不同,自动分配TENANT_ROLE或PROJECT_ROLE角色标签,且父级角色都是该组织的组织管理员。

具体使用详情可参考 角色管理帮助手册。

2.平台层角色管理

除了创建和编辑角色外,还可以复制和继承角色,以快速创建自定义角色。比如:您想要创建某个组织层角色(该角色需要拥有组织管理员除了创建项目的操作外的所有权限)时,您可选择组织管理员角色,点击“复制”,角色标签选择TENANT_ROLE,然后再去掉创建项目权限集即可。

具体使用详情可参考 HZERO角色管理文档。

综上,猪齿鱼的权限体系相对完善,猪齿鱼用户不仅可以一键分配或回收角色权限,方便快捷地进行权限管理;也可创建自定义角色,进行更细粒度的权限控制,满足自身的定制化需求。

如果您想尝试猪齿鱼的权限体系,欢迎您申请试用猪齿鱼: Choerodon | 多云应用技术集成平台

参考文档

  1. 猪齿鱼产品手册链接:https://open.hand-china.com/document-center/doc/product/10177/10608?doc_id=170160&doc_code=37618#%E8%A7%92%E8%89%B2%E7%AE%A1%E7%90%86
  2. RBAC模型: RBAC简介_大白能的博客-CSDN博客_rbac
  3. RBAC的组成:你知道权限管理的RBAC模型吗? - 知乎
  4. HZERO角色管理: 汉得焱牛开放平台

本文由猪齿鱼技术团队原创,转载请注明出处:猪齿鱼官网

关于猪齿鱼

猪齿鱼Choerodon数智化效能平台,提供体系化方法论和协作、测试、DevOps及容器工具,帮助企业拉通需求、设计、开发、部署、测试和运营流程,一站式提高管理效率和质量。从团队协同到DevOps工具链、从平台工具到体系化方法论,猪齿鱼全面满足协同管理与工程效率需求,贯穿端到端全流程,助力团队效能更快更强更稳定,帮助企业推动数智化转型升级。戳此处试用猪齿鱼

3分钟快速了解猪齿鱼权限相关推荐

  1. 云信小课堂|5分钟快速实现iOS端PK连麦场景

    Vol. 4 2021年开年,音频社交风靡互联网,语音社交再成风口,直播连麦开启社交新赛道.在实时通信技术不断革新的现状下,直播平台需要不断探索新的方式以满足用户日益增长的需求,直播连麦就是在此背景下 ...

  2. 30分钟快速搭建移动应用直传OSS服务

    30分钟快速搭建移动应用直传服务 背景 这是一个移动互联的时代.手机APP上传的数据会越来越多.把数据存储的问题交给OSS, 让开发者能更加专注于自己的应用逻辑. 那么怎么样基于OSS构建一个APP存 ...

  3. 云小课 | 一个三分钟快速定制OCR应用的神器,要不?

    摘要:ModelArts Pro提供了文字识别套件,基于丰富的文字识别算法和行业知识积累,帮助客户快速构建满足不同业务场景需求的文字识别服务.三分钟即可快速定制OCR服务,实现多种版式图像的文字信息结 ...

  4. 转载文章-【工具】10分钟快速搭建属于自己的文档网站-来自掘金

    掘金 首页 探索掘金 搜索 lvhanghmm的头像 Gopal lv-4 2021年03月09日 阅读 9930 关注 [工具]10分钟快速搭建属于自己的文档网站 前言 很多同学都希望能够拥有自己的 ...

  5. 文字识别软件测试初学者,【只要10分钟 快速掌握文字识别】

    [只要10分钟 快速掌握文字识别] 教程 1.获取接口权限       2.下载接口调用工具       3.进行接口调用 具体步骤如下: 1.获取接口权限 1.1  登录网址:ai.baidu.co ...

  6. Android 一分钟快速使用极光推送

    之前一直都是在项目中,直接把jpush下载的资源直接放在主module,每次感觉需要配置的东西很多,有时候会担心缺少什么导致最后跑不通. 如果你是老手,每个人都各有各的风格习惯,相互学习的可以了解下 ...

  7. java快速打出关键字,汇智动力——1分钟快速掌握Java关键字

    原标题:汇智动力--1分钟快速掌握Java关键字 Java关键字有其特别意义的标识符,还有特别意义的变量.Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型或程序结构.今天汇智动 ...

  8. 【工具篇】10分钟快速学会React图表搭建

    10分钟快速学会React图表搭建 本次紧着之前的antd,接着学习有关react图表以及富文本编辑器的搭建. 本次的功能实现基于上次的[工具篇]10分钟学会Ant Design of React用法 ...

  9. 网络营销:快手如何快速开通直播权限?

    网络营销:快手如何快速开通直播权限? 短视频运营是当前比较有效且常见的营销模式,而快手是很多企业争抢的平台.很多新手想知道快手账号如何快速开通直播权限以及上热门涨粉丝的技巧,接下来千锋网络营销培训小编 ...

  10. 传智健康_第9章 移动端开发-手机快速登录、权限控制

    传智健康_第9章 移动端开发-手机快速登录.权限控制 文章目录 传智健康_第9章 移动端开发-手机快速登录.权限控制 1. 需求分析 2. 手机快速登录 2.1 页面调整 2.1.1 发送验证码 2. ...

最新文章

  1. LeetCode实战:旋转链表
  2. Google 5月4日换装了(纪念凯斯·哈林)
  3. 112. Leetcode 673. 最长递增子序列的个数 (动态规划-子序列问题)
  4. linux粘着位的使用(t权限)
  5. 【ubuntu】中文输入法安装二三事
  6. 基于AliOS Things玩转智能语音
  7. surface mesh framework运行
  8. php数据库显示+ajax,如何使用PHP和AJAX显示MySQL数据库
  9. SQLcode错误代码汇总和sqlstate=37000的解决方案
  10. Sitemesh3使用及配置
  11. Vivado exception_access_violation
  12. 机器学习- 吴恩达Andrew Ng Week11 知识总结 Photo OCR
  13. linux——18数据库SQLite3
  14. ios福利部落绕过激活锁,屏幕锁/已停用界面完美隐藏工具,支持最新ios15.5系统绕过
  15. ansible ---- 主机文件编写--在运行时显示自定义主机名称
  16. Linux操作系统基础之用户管理
  17. 回顾过去,展望未来!
  18. 新版上线|能力中心打造全新视角
  19. 企业微信官方认证的好处是什么?
  20. 德州仪器TM4C123GXL从入手到亮灯-开发环境配置

热门文章

  1. clojure-jack-in : error in process filter: open-network-stream: make client process failed: Connecti
  2. 华为交换机eth口作用_华为网络交换机mode键作用 华为交换机这些接口的作用?...
  3. 域名dns解析IP 与 本机IP 不匹配 是否继续安装
  4. border和boder-radius
  5. 广州大学机器学习与数据挖掘实验一
  6. 修改ubuntu终端显示目录和计算机名称(转)
  7. c语言 中的求和函数,0基础理解C语言调用汇编实现求和函数
  8. 对于上海交通大学网络安全专业21考研823的一些总结以及22考研专业课如何准备的想法
  9. word页码任意设置,如显示在页脚外侧、横版页面要求显示在左侧或右侧
  10. PMP 成本计算相关