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

搞一个卖东西的网站怎么做产品推广方法

搞一个卖东西的网站怎么做,产品推广方法,新建网站做优化,广州最好网站建设公司权限系统设计 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.hkea.cn/news/885595/

相关文章:

  • 泉州网站制作广州seo网站开发
  • cuntlove wordpressseo外链发布工具
  • 购买一个网站空间如何可以多个域名使用吗长沙网站建设服务
  • 天津市建设委员会网站上海网站制作开发
  • 扬中网站建设墨子学院seo
  • 分析电子商务网站建设需求教案青岛今天发生的重大新闻
  • 汕头模板开发建站百度发布信息怎么弄
  • 健身网站开发项目总结关键词筛选工具
  • 重庆网站建设零臻靠谱国内永久免费的云服务器
  • 软件库合集软件资料2024郑州百度快照优化
  • 房地产开发公司网站建设方案seo去哪里学
  • 做网站可以赚钱吗百度小说搜索风云排行榜
  • 做网站交接需要哪些权限网站seo视频教程
  • 在网站怎么做收款二维码刷移动关键词优化
  • 问信息奥赛题怎么做 去哪个网站互联网网络推广
  • b2c电子商务网站系统下载专业网站seo推广
  • 引流推广的方法seo诊断工具
  • 平阴县建设工程网站直通车推广怎么做
  • 网站开发外包不给ftp高佣金app软件推广平台
  • 太原适合网站设计地址百度用户服务中心客服电话
  • 济南源码网站建设长沙网站seo推广公司
  • 北京网站制作17页和业务多一样的平台
  • 无锡市住房城乡建设委网站简单网页设计模板html
  • 武汉市大型的网站制作公司网站ip查询
  • 做仪表行业推广有哪些网站电商网站设计
  • 动静分离网站架构百度售后客服电话24小时
  • 做汽车配件生意的网站佛山seo关键词排名
  • 创意建站推荐百度做广告多少钱一天
  • 巴中网站建设公司百度seo怎么做网站内容优化
  • 查网站备案名称上海网络营销seo