概述

授权中心用基于角色的访问控制思想(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. ArcGIS地图文档优化 mxdPerfstat工具使用体验

    经常有客户会咨询到如何提高地图的显示性能.为何ArcMap刷新地图那么缓慢.为何地图服务响应要等待10多秒? 诸如这些问题,虽然它们的表象都是相似的,但是往往在分析排查问题的时候,我们发现背后的原因是 ...

  2. Android项目实战(三十二):圆角对话框Dialog

    前言: 项目中多处用到对话框,用系统对话框太难看,就自己写一个自定义对话框. 对话框包括:1.圆角 2.app图标 , 提示文本,关闭对话框的"确定"按钮 难点:1.对话框边框圆角 ...

  3. springcloud 入门 7 (zuul路由网关)

    Zuul简介: Zuul的主要功能是路由转发和过滤器.路由功能是微服务的一部分,比如/api/user转发到到user服务,/api/shop转发到到shop服务.zuul默认和Ribbon结合实现了 ...

  4. Red5视频流服务器安装

    一.安装jre JAVA运行时下载地址: https://www.java.com/zh_CN/download/manual.jsp 安装后设置环境变量,变量值是jre的安装路径 二.安装 red5 ...

  5. 使用KeePass管理两步验证

    目录 使用KeePass管理两步验证 两步验证 KeePass中管理两步验证 KeeTrayTOTP插件使用 使用KeePass管理两步验证 文:铁乐与猫 2018-9-9 KeePass 是一款管理 ...

  6. MySQL基本简单操作03

    MySQL基本简单操作 现在我创建了一个数据表,表的内容如下: mysql> select * from gubeiqing_table; +----------+-----+ | name | ...

  7. mybatis隐藏不用的sql

    在mybatis的xml中,选中了不用的sql语句,使用ctrl + shift + / 隐去,,结果是 <where> <if test="dto.startTime ! ...

  8. ABAP性能和优化

    哪些工具可以用于性能优化? ST05-性能追踪.包含SQL追踪加RFC,队列和缓存追踪.SQL追踪主要用于测量程序中select语句的性能. SE30-运行时分析.用于测量应用的性能. SAT是过时的 ...

  9. SpringMVC+Spring+Mybatis框架集成

    一.基本概念 1.Spring      Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-O ...

  10. 用户输入序号选择商品,按q退出

    输出商品列表,用户输入序号,显示用户选中的商品 li = ['手机','电脑','鼠标垫','游艇'] while 1: li = ['手机','电脑','鼠标垫','游艇'] for i in li ...