普元EOS-用户、角色、权限的设计思路

news2024/11/27 22:40:36

1 前言

普元EOS作为企业应用开发,肯定要对用户、角色、权限这些内容进行管理,本文就描述这些内容EOS的设计思想,以及如何使用这些工具。

2 传统的访问权限控制

先说一个RBAC的概念,就是 Role-Based Access Control,中文意思是:基于角色(Role)的访问控制。

也就是是说,权限分配给角色,角色分配给用户,用户拥有角色 - 也就拥有了权限,有什么权限就可以访问资源。

RBAC 设计到的关键点有下面几项:

角色(Role):角色是指在系统中具有一组相关权限的抽象概念,代表了用户在特定上下文中的身份或职能,例如管理员、普通用户等。

权限(Permission):权限是指对系统资源进行操作的许可,如读取、写入、修改等。权限可以被分配给角色。

用户(User):用户是指系统的实际使用者,每个用户可以被分配一个或多个角色。

分配(Assignment):分配是指将角色与用户关联起来,以赋予用户相应的权限。

这里面,用户被分配若干角色,角色被分配若干权限,权限对应的是某个页面,或某个功能,或者是某个接口,或者是某个数据。据此,用户能否访问页面,能否使用功能,能否访问接口,能否操作数据,就确定了。

3  EOS中访问权限管理的思想

EOS在进行权限控制的时候,有以下几个关键的对象:

机构(org):包括公司、部门,还有总公司、分公司、这样的分类,感觉没必要,反正就是部门,形成组织架构。

用户(user):用户是指登录信息,包括账号和密码登登录信息。

员工(employee):机构下自然就有员工,每个员工对应一个用户账号,这是两个对象,但基本是一对一的,一个员工对应一个用户。

角色(role):角色就是一个权限组,这个很好理解。比较难理解的是角色分为平台角色和应用角色,这个是EOS特有的。

EOS启动后,一切都运行在Afcenter这个平台下,AFcenter:叫做应用联邦中心。

在AfCenter平台下集成组织架构、低开ide、工作流引擎,以及我们自己开发的微服务应用。

那么就有了平台级别的权限、角色,和应用级别的权限、角色。

为了简化开发和降低开发复杂度,我今后很长时间都只处理平台级别的角色和权限,所以这里也只针对平台级别的角色进行概念说明。

好吧,我们假设没有应用级别的角色和权限。(准确的,在EOS的Afcenter中叫业务对象,业务级别的角色,另外也没有权限,叫业务级别的资源)。

资源(resource):在EOS中,资源就是权限,没有Permission,而是Resource。

其实很好理解,权限是什么呢?权限就是能访问什么页面,能访问哪个API接口,这不就是资源吗?

因此,角色分配页面、功能,就实现了角色 - 权限的关联关系。

资源 - 页面(url):页面类型的资源,页面可以直接传入一个URL,也可以直接选择低开的表单、视图或者工作流。

资源 - 功能(function):功能是在高开中使用的资源,可以配置在接口的注解上。通过这种方式来决定能访问哪些接口。

人员与员工的关系:每个员工都对应一个人员,用这个人员进行登录。人员和员工是一个人的两个身份,人员保存这个人的登录账号和密码,员工保存这个人在企业中的身份信息。

人员与角色的关系:EOS中,人员可以分配角色,分配角色后,该人员登录后,就拥有角色下的资源的访问权限。

员工与角色关系:员工也可以分配角色,人员登录后,其对应的员工所拥有角色的资源,也可以访问了。

机构与角色关系:机构也可以分配角色,该机构下的员工登录后,也拥有该机构拥有角色的资源的访问权限。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2034976.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java Web —— 第五天(请求响应2)

响应数据 ResponseBody 类型:方法注解、类注解 位置: Controller方法上/类上 作用:将方法返回值直接响应,如果返回值类型是 实体对象/集合,将会转换为JSON格式响应 说明: RestController Controller ResponseBody ; package com.example.springbo…

嘉实基金“青黄不接”:董事长赵学军被调查,明星经理基金绿油油

尚未实现“打造中国版的贝莱德”之梦,手握万亿资产管理规模的嘉实基金便“出事”了。 近日,嘉实基金在官网披露了一则临时公告,称其于2024年8月9日从相关方面获悉,该公司董事长赵学军因个人问题正配合有关部门调查。目前&#xf…

录音怎么转换成mp3格式?6款免费音频转换mp3的软件大公开!(赶紧收藏)

录音怎么转换成mp3格式?录音是我们日常记录生活和工作的常见方式之一。然而,不同的音频格式往往会带来兼容性和播放上的困难。如果您曾因为无法播放某个录音而烦恼,或者希望能够方便地将录音转换成mp3格式,那么本文就能告诉您答案…

那些年我们一起遇到过的奇技淫巧

EVAL长度限制突破技巧 PHP Eval函数参数限制在16个字符的情况下 &#xff0c;如何拿到Webshell&#xff1f; 写一段限制长度在小于17位的字符&#xff0c;拿下webshell <?php highlight_file(__FILE__); $param $_REQUEST[param]; if (strlen($param) < 17 &&am…

【安卓】播放多媒体文件

文章目录 播放音频播放视频 播放音频 在Android中播放音频文件一般是使用MediaPlayer类实现的&#xff0c;它对多种格式的音频文件提供了非常全面的控制方法&#xff0c;从而使播放音乐的工作变得十分简单。 MediaPlayer类中常用的控制方法。 常用方法名描述setDataSource()设…

合作文章(IF=14.3)|RNA-Seq和ChIP-Seq助力SOX12调节肝癌细胞的机制研究以及肝癌联合治疗的免疫策略的发现

肝细胞癌(HCC)是全球严重的健康负担。长期以来&#xff0c;HCC的治疗选择很少&#xff0c;但免疫检查点阻断(ICB)近年来取得了重大突破。在肿瘤免疫微环境(TIME)中&#xff0c;免疫细胞通过配对的免疫检查点或其他信号与肿瘤细胞相互作用&#xff0c;形成异质的免疫抑制生态系统…

AI高级肖像动画神器LivePortrait

文章目录 前言一、安装1.1 源码安装1.2 windows一键启动包 二、人像生成2.1 浏览器2.2 输入图像2.3 选择驱动视频2.4 生成2.5 结果 三、动物生成3.1 浏览器3.2 输入图片3.3 选择视频3.4 生成3.5 最终结果 四、软件获取 前言 最近&#xff0c;快手可灵大模型团队、中国科学技术…

go 事件机制(观察者设计模式)

背景&#xff1a; 公司目前有个业务&#xff0c;收到数据后&#xff0c;要分发给所有的客户端或者是业务模块&#xff0c;类似消息通知这样的需求&#xff0c;自然而然就想到了事件&#xff0c;观察者比较简单就自己实现以下&#xff0c;确保最小功能使用支持即可&#xff0c;其…

LeetCode旋转图像

题目描述&#xff1a; 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3]…

100 Exercises To Learn Rust 挑战!构文・整数・变量

前一篇文章 【0】准备 【1】构文・整数・变量 ← 本次全部文章列表 《100 Exercise To Learn Rust》第2回&#xff0c;也就是实际演习的第1回&#xff01;从这次开始&#xff0c;我们会适度减少前置说明&#xff0c;直接进入问题的解决&#xff01; 本次的相关页面 1.1. Syn…

VUE3请求意外报跨越错误或者500错误问题

1.有可能是请求传参和传参类型写错了 首先要确保该请求接口是支持跨域的&#xff08;不支持叫后端改&#xff09; access-control-allow-headers:Content-Type, Accept, Access-Control-Allow-Origin, api_key, Authorization access-control-allow-methods:GET, POST, OPTIO…

【docker】dockerfile部署lnmp、docker compose初步

1、dockerfile部署lnmp mkdir /opt/lnmp cd /opt/lnmp mkdir nginx mysql php docker network create --subnet20.0.0.0/24 lnmp-net将wordpress文件夹拷贝到nginx、php文件夹 /opt/nginx/Dockerfile: # 使用官方的nginx镜像作为基础镜像 FROM nginx:latest# 复制默认配置文件…

【QGroundControl二次开发】十. QT添加GStreamer视频播放同时保存

上一章介绍使用QT播放GStreamer视频流 【QGroundControl二次开发】八. QT实现播放gstreamer视频。 这章介绍如何在原有基础上保存为视频&#xff0c;同时保存为一个个规定大小的小视频。 一. 思想 之前的文章展示了如何在QT中播放GST视频流&#xff0c;这章在原有的基础上增加…

vue-cli(二)

箭头函数 一般的函数&#xff1a; 这里window是用来调用函数的 function fun(){console.log(this) } window.fun(); 箭头函数&#xff1a; 1、如果只有一个参数&#xff0c;形参的小括号可以省略 2、如果只有一条语句&#xff0c;{}可以省略 完整的写法 let fun2 a>…

前缀和优化DP

LeetCode3251 单调数组对数目 本题的子问题是下标 0 到 i 中的单调数组对的个数&#xff0c;且 arr1​[i]j&#xff0c;将其记作 f[i][j]。 class Solution { public:int countOfPairs(vector<int>& nums) {const int mod1e97;int nnums.size();int mnums[0];for(in…

C++(STL)的List解读

目录 list简介 list的几个特性 接口函数 1.默认成员函数 2.迭代器相关函数 3.容量相关的函数 4.成员访问相关的函数 5.modify系列 6.operation系列 7.重载在全局的函数 list简介 Lists are sequence containers that allow constant time insert and erase operation…

【Linux】阻塞信号|信号原理|深入理解捕获信号|内核态|用户态|sigaction|可重入函数|volatile|SIGCHILD|万字详解

目录 ​编辑 一&#xff0c;常见的信号术语 二&#xff0c;信号在内核中的表示 信号标志位 Pending表 Block表 handler表 POSIX.1标准 三&#xff0c;sigset_t 信号集操作函数 sigemptyset sigfillset sigaddset sigdelset sigismember sigprocmask sig…

ISP 代理与住宅代理 – 终极指南

模拟自然的、类似人类的流量可能很麻烦&#xff0c;但对于某些任务&#xff08;如帐户管理或网络自动化&#xff09;&#xff0c;没有它就无法完成。ISP 和住宅代理都可以提供帮助&#xff0c;但您不能盲目购买和部署它们。您需要了解它们的优势&#xff0c;理解它们的弱点&…

买的谷歌游戏账号被删了?如果是企业账号找回来的可能性很小。一个识别谷歌企业号的简单方法

这段时间有几个朋友找到我说&#xff0c;自己买的谷歌账号登录不了&#xff0c;有的是直接提示被删除&#xff0c;问能否恢复。 我了解了一下&#xff0c;发现他们的账号都是购买的企业账号。这种企业账号一旦被管理员删除了是无法恢复的。 特此记录下来&#xff0c;提醒各位…

8月13日笔记

msf补充 使用方法&#xff1a; 进入框架&#xff1a;msfconsole 使用search命令查找相关漏洞&#xff1a;search ms14-058 使用info查看模块信息&#xff1a;info 我们也可以将攻击代码写configure.rc&#xff08;只要是以 .rc 结尾的文件&#xff09;配置文件中&#xff0c;然…