概述

授权中心用基于角色的访问控制思想(RBAC-Role Based Access Control)来实现各个业务系统的功能权限及数据权限控制。功能权限是指能否进入页面及使用页面上的操作。数据权限控制主要有组织,品类,项目三个维度。组织层级比较多,目前有一级单位(股份公司),二级单位(工程局及区域联采中心等),三级单位,四级单位,五级单位等。

关于组织

一个人属于某个组织,可以拥有多个组织的角色。需求明确指出不能采用切换组织的方式来做。要一次性查询角色组织的本级或本下级的相关数据。

组织的管理层级有一级单位(股份公司),二级单位(工程局及区域联采中心等),三级单位,四级单位,五级单位。

组织的机构性质有公司及区域联采中心。

后来金服又提出需要扩展是否法人单位及三证相关信息,这些信息仅仅是金服在用,没有复杂的业务逻辑。

关于品类:

品类有两大类,即物资类和分包类,其中物资类包括物资,设备,专业服务;分包类包括劳务分包,专业分包。每个一级品类又包括几十种二级品类。

目前的管控需求是控制到二级品类。二级品类上页面需要设置采购策略及映射商品类别。

关于用户:

用户主要有登录名,姓名,职位,手机号,用户身份等重要属性。整个平台的用户都存储在一张表中,用户身份包括采购商,供应商,供应商子帐号,总包方,分包方,劳务人员,平台管理员,共7种。这7种用户类型可以按业务规则进行组合,随意组合可能不具有意义。其中总包方,分包方,劳务人员主要是劳务使用。

用户分类

用户分为平台级,组织级,项目级三类。

1. 顾名思义,平台级用户所属组织为平台,主要是运营,客服,售后,开发团队相关的人员等等。比如给一个运营妹子分配一个八局的合规性检查人员的角色,数据权限为本下级,品类权限是物资,那么她就只能管理八局本下级物资相关的合同,订单,结算单等数据。

2.组织级用户主要是股份公司,二级单位(局级),三级单位(号码公司等),四级单位,五级单位等领导及业务人员(招投标,合同,订单,结算,合规性检查等等人员)。强调一下,这些公司可能是法人单位也可能不是,比如一些大的经理部也可能纳为五级单位。有一点必须遵守,项目不能添加到组织树中。

3.项目级用户,即项目现场的收货人员,进度检查人员,质量检查人员,安全检查人员等等。

关于角色:

角色主要有所属系统,所属组织,角色名称,角色类型等属性,可以设置功能权限。因为组织机构树层级比较多,各个组织的管理需求又各不相同。所以只能让各个组织自己去规划角色。但是我们要实现分级授权。比如平台可能看到几乎所有的权限(有些权限只能开发或运维同事使用),同时也要精确控制股份公司,二级单位(局级),三级单位,四级单位,五级单位的权限设置。

关于数据范围:

数据范围有平台级,股份公司级,(按组织查看)本级,(按组织查看)本上级,(按组织查看)本上级等。不同的业务有不同的管控需求,使用不同的数据范围控制。

比如模板管理使用本上级的数据范围控制。比如一局一分公司在招标过程中使用招标公告模板时,可能用户最想要的功能是先查看本级的招标公告模板,然后还可以查看上级的招标公告模板。

再比如柖标管理使用本下级的数据范围控制,同时还有创建人,采购经办人等特殊逻辑。

重要约定:

1. 授权中心要支持多系统授权。因此它的实现要尽量不要和具体系统的业务耦合,保证其单一性,可扩展性。

2.  功能点分为系统级,平台级,用户级。

a)系统级:比如授权中心的系统管理,菜单管理,组织迁移等只能由开发人员或运维人员使用。

b)平台级:比如供应商注册审核,准入信息变更,供应商管理,商城广告位管理,商城推荐管理等运营后台相关功能只能由运营团队,客服团队等使用的功能。

c)用户级:业务方的管理功能。不再区别是股份公司,二级单位,三级单位等层级,只需采用分级授权体系层层控制即可。比如有些功能只能由股份公司级使用,就只分配给他这一级就可以了。至于他要不要再分配到下级由他们自己控制。

3. 精确控制每一个组织的可见权限集,由此来实现分级授权体系。

4. 业务角色分为业务角色,功能角色两种。

a) 业务角色指业务系统中相关业务职位、权力的代表,比如采购经办人,采购员,采购经理,商务部经理,商务部业务人员,领导,合规性检查人员,进度管理人员,质量管理人员,安全管理人员,项目经理,财务,法务。

b)功能角色指业务系统中的各操作人员的权限集合。

5. 不允许同一个人有多个组织的功能角色,只能拥有同一个组织的多个功能角色。

6.如果一个人拥有某组织的系统管理员功能角色,就不能再拥有其它功能角色了。但是他可以拥有其它的业务角色。

7. 多个业务系统使用统一的登录页面。

8. 多个业务系统中的项目库,产品库,企业库(即组织机构,比如采购商,供应商,总承包,分包单位, 建设单位,设计单位,监理单位,政府部门,施工企业等单位基本信息)使用一套表存储,不能每个业务系统自己搞。

9.组织权限设置需要有两个层级:组织级系统管理员,项目级系统管理员?

我感觉既然选择框架,用security比较好。可以和spring其它模块无缝接合,比如websocket stomp。

我感觉security,shiro中不应该有role授权,可以把role当成一个特殊的authority。security,shiro都整了两个概念(role, authority)反而增加了复杂度。

Spring Security 入门系列

http://www.spring4all.com/article/428

https://springcloud.cc/spring-security-zhcn.html

springBoot+springSecurity 数据库动态管理用户、角色、权限

https://www.cnblogs.com/softidea/p/7068149.html

http://blog.csdn.net/u013412066/article/details/50667960

PMS-授权中心的更多相关文章

  1. 从壹开始 [ Ids4实战 ] 之七 ║ 客户端、服务端、授权中心全线打通

    1.经过元旦两天的全力整改,终于在这新的一年,完成了我的布道生涯的第一个大步走 —— 那就是客户端(VUE).服务端(ASP.NET Core API).授权中心(IdentityServer4)的大 ...

  2. Asp.Net Core 中IdentityServer4 授权中心之应用实战

    一.前言 查阅了大多数相关资料,查阅到的IdentityServer4 的相关文章大多是比较简单并且多是翻译官网的文档编写的,我这里在 Asp.Net Core 中IdentityServer4 的应 ...

  3. Asp.Net Core 中IdentityServer4 授权中心之自定义授权模式

    一.前言 上一篇我分享了一篇关于 Asp.Net Core 中IdentityServer4 授权中心之应用实战 的文章,其中有不少博友给我提了问题,其中有一个博友问我的一个场景,我给他解答的还不够完 ...

  4. Day16_授权中心

    学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"乐优商城"获取视频和教程资料! b站在线视频 总结 1 ...

  5. 使用Abp vnext构建基于Duende.IdentityServer的统一授权中心(一)

    原来看到很多示例都是基于IdentityServer4的统一授权中心,但是IdentityServer4维护到2022年就不再进行更新维护了,所以我选择了它的升级版Duende.IdentitySer ...

  6. Spring Authorization Server 实现授权中心

    Spring Authorization Server 实现授权中心 源码地址 当前,Spring Security 对 OAuth 2.0 框架提供了全面的支持.Spring Authorizati ...

  7. IdentityServer4 简单使用,包括api访问控制,openid的授权登录,js访问

    写在前面 先分享一首数摇:http://music.163.com/m/song?id=36089751&userid=52749763 其次是:对于identityServer理解并不是特别 ...

  8. web登录与授权

    web开发已经流行了很多年,登录与授权也基本有一套通用的流程,下面是我自己常用的登录与授权方式,欢迎大家讨论与吐槽. 概念: 登录是过程,授权是结果.登录只是为了获得页面的访问权限 or 操作权限 o ...

  9. IdentityServer4 指定角色授权(Authorize(Roles="admin"))

    1. 业务场景 IdentityServer4 授权配置Client中的AllowedScopes,设置的是具体的 API 站点名字,也就是使用方设置的ApiName,示例代码: //授权中心配置 n ...

  10. spring cloud+dotnet core搭建微服务架构:Api授权认证(六)

    前言 这篇文章拖太久了,因为最近实在太忙了,加上这篇文章也非常长,所以花了不少时间,给大家说句抱歉.好,进入正题.目前的项目基本都是前后端分离了,前端分Web,Ios,Android...,后端也基本 ...

随机推荐

  1. 移动端安卓手机不能识别border 0.5px解决方案

    由于安卓手机无法识别border 0.5px,因此我们要用0.5px的话必须要借助css3中的-webkit-transform:scale缩放来实现, 原理:将伪元素的宽设为200%,height设 ...

  2. C# 插件式开发

    在网上找了下插件式编程的资料,这里自己先借鉴下别人的,同时发现有自己的看法,不过由于本人水平有限,不一定有参考价值,写出来一方面是为了总结自己,以求提高,另一方面也希望各为朋友看到我的不足,给我提出宝 ...

  3. Units in Android

    一般使用dp,不使用px.sp啥时候用呢?给TextView设置文字大小的时候用.

  4. VirtualBox下安装CentOS7系统

    本文假定你已经知道如何安装VirtualBox虚拟机软件,并且已经安装好了. 首先我们需要准备好centos的iso镜像文件,可以从centos的官网下载. 以下操作使用的VirtualBox版本号是 ...

  5. 洗礼灵魂,修炼python(23)--自定义函数(4)—闭包进阶问题—>报错UnboundLocalError: local variable 'x' referenced before assignment

    闭包(lexical closure) 什么是闭包前面已经说过了,但是由于遗留问题,所以单独作为一个章节详解讲解下 不多说,看例子: def funx(x): def funy(y): return ...

  6. 基于VMware Workstation在Windows Server 2008 R2上搭建SQL Server 2012高可用性组(AlwaysOn Group)测试环境(二)

    接上篇: 以SERVER02为例,将服务器加入域,并安装故障转移群集:(SERVER02-SERVER-04操作相同)

  7. python第三十天-类

    编程范式 编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程 , 一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很 ...

  8. Asp.Net WebApi Post请求整理(一)

    Asp.Net WebApi+JQuery Ajax的Post请求整理 一.总结 1.WebApi 默认支持Post提交处理,返回的结果为json对象,前台不需要手动反序列化处理.2.WebApi 接 ...

  9. git 一些基本的命令操作总结

    配置远程仓库:git remote add test http://xxxx/tool/device_management.git test为远程仓库别名克隆远程仓库到本地:git clone htt ...

  10. tkinter学习系列(三)之Label控件

    目录 目录 前言 (一)基本用法和可选属性 ==1.基本用法== ==2.可选属性== (二)属性的具体使用 ==1.常用属性== ==2.边距与文本对齐方式== ==案例一== ==案例一的效果== ...