zoukankan      html  css  js  c++  java
  • 分布式权限管理系统-架构篇

    后台管理系统也需要微服务化

    痛点一:庞大的后台管理系统

    任何一个公司的系统总是免不了需要很多后台功能,随着业务的发展,营销活动管理后台,短信模板后台,网站内容管理后台…最后会变成一个异常庞大而难以维护的系统。往往光菜单就有几十上百个。每次修改跟新增一个简单的功能都是一场灾难。

    痛点二:各自独立的后台管理系统

    如果公司内部有多条产品线,每个产品线都有自己的后台,往往都各自维护着各自的后台权限体系,这样导致每个人要记住大量的账号密码。如果公司来了新领导,光开通账号就要好几天。

    针对上述两个问题,自然而然的会想到,我们首先需要把后台管理系统拆成多个子系统,但是我们不需要维护多套用户与权限体系,此时我们需要一个单点登录系统来解决问题。该系统应该提供统一的登录与系统导航页面,统一的身份认证、以及统一的账户管理和权限管理。

    在这里插入图片描述
    我们把该系统分为三大模块

    管理员模块:账号,角色,权限分配,部门信息

    用户模块:统一的登录页面,统一的系统导航页,统一的会话管理

    认证模块:提供认证的客户端以及认证的接口

    管理员模块

    关于基本的后台权限管理功能,有大量的开源系统可以借鉴。这里只强调几个重点:

    1.管理员的分级管理。

    如果需要集成的系统比较少,涉及到的用户不多,那么可以只设置一个超级管理员,该管理员负责所有的账号,角色,以及权限分配。如果需要集成几十个系统,涉及到的用户很多,则必须考虑设置两种管理员,超级管理员和普通管理员,普通管理员也具备创建账号与分配权限的功能,但是普通管理员只能分配自己所拥有的权限。例如我们有一个后台坐席系统,坐席人员有上百人,那么我们应该为坐席管理员增加一个普通管理员的权限,让他自己维护坐席人员的账号和权限。

    2.管理员账号与用户账号的分开管理。可以考虑分开两张表管理或者加一个标志位。

    3.权限的粒度

    • 3.1 页面元素权限菜单级别的权限一般跟角色绑定,在后台可以为某一个角色分配菜单以及按钮的权限。需要子系统读取认证接口展示菜单项。

    • 3.2 数据权限数据权限一般跟部门挂钩,但是必须子系统在代码级别支持。

    • 3.3 接口权限如果子系统采用的是前后端分离的架构,那么除了菜单层面需要限制以外,接口层面也需要进行权限管理。

    • 3.4 其他权限假如子系统是一个数据库查询系统,某个用户可以访问哪个数据库表,这种权限的维护放到子系统自己维护。

    4.角色-用户反查

    原文低垂:https://blog.csdn.net/chenyao1994/article/details/89395040
  • 相关阅读:
    为什么MySQL数据库索引选择使用B+树?
    nginx负载均衡策略
    视频笔记
    mysql show full processlist 分析问题
    Git利用命令行提交代码步骤
    zend studio远程自动上传代码并执行
    CentOS7 通过YUM安装MySQL5.7 linux
    PHP的按位运算符是什么意思
    git 分支操作
    php 技术知识点汇总
  • 原文地址:https://www.cnblogs.com/jpfss/p/12054517.html
Copyright © 2011-2022 走看看