zoukankan      html  css  js  c++  java
  • 关于微服务架构的权限控制初步设计

    关于微服务分布式架构的权限资源设计初步设想

    最近开发的系统是前后端分离+微服务分布式架构,不同于单体应用的权限身份校验机制,前后端分离的情况下,无法直接确认前端请求者的身份权限,需要通过第三方鉴权中心来操作,身份校验较为简单,直接过滤网关级别的请求即可,但是权限校验就比较复杂了。

    初步设想

    资源

    • 系统
    • 菜单
    • 按钮
    • 服务
    • api

    对象

    • 部门
    • 人员
    • 账号

    枢纽

    • 角色

    整体关系如下:对象通过枢纽进行资源的权限分配

    数据库设计:

    通过对中间表的维护,来收集用户的权限信息,其中部门角色具有继承的特性

    使用结果

    菜单权限

    菜单权限通过前端配合实现动态路由,可以实现完全的权限控制,其中按钮的权限主要还是在前端进行逻辑处理,服务端完全无法控制,只能作为数据提供者

    API权限

    API权限,通过上面的权限体系可以做到颗粒度为API级别的控制,功能可以实现

    不足之处:问题在于,这个关系表人工维护的话,成本较大,因为需要明确规定好该页面调用了哪些接口,前端有变更则需要及时录入数据,否则会响应无操作权限,这里的想法是分三步走,

      第一步:首先开发前后端同步开发,前端只维护系统菜单数据,后端维护服务接口数据,菜单接口关系表暂时不进行维护

      第二步:前后端初步开发完毕之后,通过小工具扫描前端代码, 进行菜单接口关系的自动录入

      第三步:通过搭建一个API接入申请系统,有需求变更的时候,前端申请某个页面的需求变更,并对新增的和删除的API进行申报,数据校验完毕之后,申请系统自动异步更新菜单接口关系表,完成两者的动态维护

  • 相关阅读:
    Unity4.5版本DLL库名字问题
    Unity路径规划
    Unity 父物体与子物体位置
    Moving in Unity
    C# Xml文件操作,解释见注释
    发个招聘信息
    Unity 视频播放杂谈
    unity中Debug输出控制
    编写可读代码艺术之表面层析
    匈牙利命名法,骆驼命名法(camel),帕斯卡(Pascal)命名法(转)
  • 原文地址:https://www.cnblogs.com/yuchenghao/p/13493704.html
Copyright © 2011-2022 走看看