当前位置: 首页 > news >正文

做哪些网站比较好的合肥seo管理

做哪些网站比较好的,合肥seo管理,做网站快速排名,绍兴做网站鼎成权限系统设计 RBAC 基于角色的访问控制 ABAC 基于属性的访问控制 普通的系统无非 CRUD,那系统如何控制一个用户该看到哪些数据、能操作哪些功能?日常开发中最常用到 RBAC 和 OAuth2 这两种访问控制和授权方案 RBAC 基于角色的访问控制 所有的访问控制模…

权限系统设计

    • RBAC 基于角色的访问控制
  • ABAC 基于属性的访问控制

普通的系统无非 CRUD,那系统如何控制一个用户该看到哪些数据、能操作哪些功能?日常开发中最常用到 RBAC 和 OAuth2 这两种访问控制和授权方案

RBAC 基于角色的访问控制

所有的访问控制模型,实质上都是在解决同一个问题:“谁(User)拥有什么权限(Authority)去操作(Operation)哪些资源(Resource)”

处理这个问题其实并不困难,只需要在每个用户进行操作的时候去判断一下他是否有该操作的权限即可,简单来说,在用户访问接口的时候去判断一下该用户的权限,权限不足则拒绝他

这么做虽然简单,但是会面临一个问题,一但系统的功能变的丰富,需要判断的接口、每个接口进行的判断也会成指数倍增加。这么做肯定是不会被接受的,我们需要一种解耦手段

RBAC 将权限从用户身上剥离,改为绑定到角色(Role)上,将权限控制变为对角色拥有操作哪些资源的许可

角色拥有许可,许可是抽象权限的具象化体现,权限在 RBAC 系统中的含义是允许何种操作作用于哪些资源之上,这句话的具体实例即为许可

提出许可这个概念的目的其实与提出角色的目的是完全一致的,只是更为抽象。角色为的是解耦用户与权限之间的多对多关系,而许可为的是解耦操作与资源之间的多对多关系,譬如不同的数据都能够有增、删、改等操作,如果将数据与操作搅和在一起也会面临配置膨胀问题

在这里插入图片描述
很多系统借鉴了 RBAC 的思想,提取用户为角色,用角色来管理用户,用许可来管理订单。上面的描述可能有些抽象,举个例子:在这里插入图片描述

在这个页面中,每个模块都可以被视为一种许可。只有有对应许可的角色可以看见这个模块,比如有一个角色被称为创作人,该角色有内容管理、评论管理的权限,用户就可以看见内容管理和评论管理模块

ABAC 基于属性的访问控制

基于属性的访问控制(Attribute-Based Access Control,简称 ABAC) 是一种比 RBAC模型 更加灵活的授权模型,它的原理是通过各种属性来动态判断一个操作是否可以被允许。这个模型在云系统中使用的比较多,比如 AWS,阿里云等

在 ABAC模型 中,一个操作是否被允许是基于对象、资源、操作和环境信息共同动态计算决定的

  • 对象:对象是当前请求访问资源的用户。用户的属性包括 ID,个人资源,角色,部门和组织成员身份等
  • 资源:资源是当前用户要访问的资产或对象,例如文件,数据,服务器,甚至 API
  • 操作:操作是用户试图对资源进行的操作。常见的操作包括“读取”,“写入”,“编辑”,“复制”和“删除”
  • 环境:环境是每个访问请求的上下文。环境属性包含访问的时间和位置,对象的设备,通信协议和加密强度等

在 ABAC 模型的决策语句的执行过程中,决策引擎会根据定义好的决策语句,结合对象、资源、操作、环境等因素动态计算出决策结果。每当发生访问请求时,ABAC 模型 决策系统都会分析属性值是否与已建立的策略匹配。如果有匹配的策略,访问请求就会被通过

举个例子,下面是一个超级简单的 ABAC 实现,该方法根据 salesClue 中的状态以及用户的 role 来分装操作项:

    @Overridepublic List<Operation> buildOperationList(SalesClue salesClue, CrmUserRoleEnum userRoleEnum) {List<Operation> ret = Lists.newArrayList();ClueStatusEnum status = salesClue.getStatus();SaleProgressEnum saleProgress = salesClue.getSaleProgress();if (status == ClueStatusEnum.PENDING_FOLLOW_UP|| status == ClueStatusEnum.IN_PROGRESS|| status == ClueStatusEnum.ON_HOLD|| (status == ClueStatusEnum.CLOSED && !Objects.equals(saleProgress, SaleProgressEnum.PAYMENT_COMPLETED))) {ret.add(Operation.builder().name(OPERATION_TRANSFER).type(Operation.TRANSFER).order(1).build());ret.add(Operation.builder().name(OPERATION_CONTACT_CONSUMER).url(CLUE_DETAIL_URL + IDEncoder.encode(salesClue.getId())).type(Operation.TYPE_FORWARD).order(2).build());} else if (status == ClueStatusEnum.PENDING_CLAIM) {if (userRoleEnum == CrmUserRoleEnum.TEAM_LEADER || userRoleEnum == CrmUserRoleEnum.MANAGE) {ret.add(Operation.builder().name(OPERATION_ALLOCATION_SALES).type(Operation.TYPE_ALLOCATION_SALES).order(1).build());}ret.add(Operation.builder().name(OPERATION_CLAIM).type(Operation.CLAIM_CLUE).order(1).build());} else if (status == ClueStatusEnum.WAIT_FOR_ALLOCATION) {if (userRoleEnum == CrmUserRoleEnum.TEAM_LEADER || userRoleEnum == CrmUserRoleEnum.MANAGE) {ret.add(Operation.builder().name(OPERATION_ALLOCATION_SALES).type(Operation.TYPE_ALLOCATION_SALES).order(1).build());}}return ret;}
http://www.ds6.com.cn/news/85242.html

相关文章:

  • 赣州网络设计公司网络推广与优化
  • 企业网站可概括为我国的网络营销公司
  • 汽车低价网站建设今日特大新闻新事
  • 开发者模式要不要开aso排名优化
  • 洪江市网站上海有哪些优化网站推广公司
  • 2021国内新闻大事20条北京百度推广seo
  • asp和php的建站区别市场推广怎么写
  • 上海制作网站多少钱今日新闻头条
  • 给公司做网站多少钱无代码免费web开发平台
  • 如何将自己做网站放上网网络推广员压力大吗
  • 房地产最新消息2022百度竞价和优化的区别
  • 网络技术与网站建设百度推广按点击收费
  • .net网站程序重庆百度推广优化
  • 网站建设技术员工资网站自动收录
  • 做网站详细步骤西安官网seo技术
  • 企业网站维护与销售外包公司和劳务派遣
  • 一手房发帖网站怎样做雷神代刷推广网站
  • 网站关键词词库怎么做品牌关键词优化哪家便宜
  • 网站域名有效期北京网站优化指导
  • 肇东网站建设云聚达在线教育
  • 关于做网站流程windows优化大师最新版本
  • 深圳石岩网站建设泰州seo推广
  • 百度快照网站怎么做实时热搜榜
  • brophp框架做网站想做百度推广找谁
  • 网站关键字代码千锋教育培训机构可靠吗
  • 武汉做网站找哪家新品牌推广策划方案
  • 个人做的卖货网站公司网站与推广
  • 怎么做网站海报如何建一个自己的网站
  • 手机网站制作app沈阳线上教学
  • 网页设计个人网页html代码搜索引擎优化指的是