3.运维平台之账户系统

历程:

0. 账户系统(accounts)分为用户认证和权限分配两部分.

1. 刚开始运维平台业务比较单一,只提供给运维组人员使用即可,根本没有用户账号的概念.

2. django系统本身有用户、用户组、权限,需要进行一些扩展开发,以满足需求.

在16年独立出用户认证注册模块,形成accounts项目,简单API认证.

3. 在17年时,前端设计获得很大突破,基于Django实现RBAC权限管理.

需求:

1.需要用户认证和角色权限管理,实现资源控制访问.

2.基于用户-角色-权限数据链,在多模块应用下,维护使用必须便捷实用.

3.权限的粒度控制,不仅仅到达URL,关联资源且基于角色的权限控制.

所有开发通过接口/url/进行发布, 开发A只允许处理项目资源A, 开发B只允许处理项目资源B.

4.由于权限控制不严谨,对系统资源的重启、删除风险操作,影响业务展开.

accounts模块关系图

大概内容

0.用户认证:

0.1 用户账号信息

0.2 使用部门

0.3 用户组

1.权限设置:

1.1 权限定义和粒度控制

1.2 用户-角色-权限数据链关联

2.权限使用:

2.1 用户权限提取

2.2 用户权限实际使用.

显示内容

0.1 用户账号信息

提供基本用户信息,方便本人和其它同事查找,被运维平台其它应用调用.

每个用户提供一个独立token数据串,用于个人API接口数据推送.

0.2 使用部门

公司组织, 资源归类定位, 有些公司居然没有单位通讯录,找起来好麻烦呀.

0.3 用户组

之前工单和监控报警推送到使用部门,后期独立成用户组.

1.1 权限定义和粒度控制

每条权限条目 = URL标识(必需) + 请求方法(可选) + 参数字段(可选) + 参数字典(可选)

粒度控制怎么做,我也不懂.

#工单任务区, 并不使用url路径,而是使用url name,因为路径可变.

#所以我们使用资源封装权限标识, 而不是资源封装URL.

#数据来源 http://developer.51cto.com/art/201704/537240.htm

url(r'^task/add/(?P<id>\d+)/$', 'taskAdd', name='taskadd'),

url(r'^task/delete/(?P<id>\d+)/$', 'taskDelete', name='taskdelete'),

url(r'^task/edit/(?P<id>\d+)/$', 'taskEdit', name='taskedit'),

url(r'^task/list/(?P<key>\w*/)$', 'taskList', name='tasklist'),

1.2 用户-角色-权限数据链关联

用户通讯录只处理用户认证功能即可,并不一一权限关联;

角色处理权限管理功能, 承上多对多用户对象, 启下多对多关联权限资源,

只需要赋予相应权限用户对应角色即可.

权限资源控制粒度,独立出配置接口.

2.1 用户权限提取

可以通过传递权限标识,再去查询此用户是否有权限通过. 产生数据库操作.

也可以在用户登录时全量获取对应应用权限,全量写入用户session, 传递标识直接在session查询即可.

数据链接: http://blog.csdn.net/Ayhan_huang/article/details/78094570?locationNum=9&fps=1

2.2 用户权限实际使用

在装饰器标示在视图处理方法上时传入权限标识参数(如:@auth("user:add")),在装饰器中也是从Session中获取用户,

迭代用户的所有角色绑定的资源中的权限标识,如果与传入装饰器中的权限标识相同则放行,否则跳转到无权限的页面.

数据链接: https://my.oschina.net/harmel/blog/755544

数据链接:

<基于Django实现RBAC权限管理>http://blog.csdn.net/Ayhan_huang/article/details/78094570?locationNum=9&fps=1

<我对Django权限控制的理解>https://my.oschina.net/harmel/blog/755544

<Django之路 如何开发通用且万能的的权限框架组件>http://developer.51cto.com/art/201704/537240.htm

原文地址:http://blog.51cto.com/teemomo/2058880

时间: 2024-11-09 23:48:54

3.运维平台之账户系统的相关文章

自动化运维平台之系统自动化安装Cobbler系统使用详解

一.简介 Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows.该工具使用python开发,小巧轻便(才15k行python代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP.DNS.以及yum仓库.构造系统ISO镜像. Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用. Cobbler客户端Koan支持虚拟机安装和操作系统重新安装,使重装系统更便捷. 二.cobbler提供的功能 使用

使用google authenticator打造运维平台的动态口令

前沿: 在腾讯,百度,阿里,360运维人员登录堡垒机,或者是单点登录引导的各种运维平台,好多都需要用动态口令令牌的,用rsa的多点,这栋系价格不便宜,国内也有些便宜的,一些游戏公司的将军令就是从国内x厂商定制买的,有兴趣的可以搜搜,价格还算可以,给你提供服务端的一些源码,让你方便的使用. 当然了,并不是每个公司都会这玩意感兴趣的,咋办?  不知道大家有没有用过 支付宝.dnspod.yy的电子口令,每30s换一次密码.dnspod.yy手机令牌貌似用的是google的token方案. 下图就是各

授之以渔-运维平台发布模块二(Jenkins篇)

接上篇<授之以渔-运维平台发布模块一(Jenkins篇)>,今天介绍下结合着Saltstack的MasterEven,用来做发布系统的结果监控. 一.Event介绍 SaltStack 0.10版本中, 新增了Event系统, 官方在 Release Notes 对其描述如下: The Salt Master now comes equipped with a new event system. This event system has replaced some of the back e

[转载] 运维平台规划体系全介绍

原文: http://www.infoq.com/cn/articles/operation-platform-planning-introduction 很多观点我都比较赞同, 特别是工作流引擎+运维可视化的观点 识别运维平台的边界在哪儿,才能更好地构建平台,从而协助运维的日常工作. 在之前的文章中,谈到过“运维的本质——可视化”,在可视化的篇幅中,着重介绍自动化的可视化和数据的可视化:在后续的篇章中又介绍了“互联网运维的价值体系”,里面分解了几个维度:质量.成本.效率.安全等.以上都是为了清

运维平台相关开发

最近在做一些运维平台的东东 原文链接:http://www.cnblogs.com/caoguo/p/6003150.html 1.支持查看ucloud主机统计及主机分布情况2.支持ucloud主机及数据库资产信息3.支持针对单台主机执行命令4.支持针对单台主机部署服务5.支持对主机业务分组,并关联联系人6.支持代码发布7.支持权限管理 现在上一些图,图片如果看不清,可以右键打开大图查询 a).ucloud平台查询 b).Saltstack 相关部署接口的开发 c).发布系统rsync+ssh

第二个运维平台项目

把之前的运维平台重新整理和改写,主要实现的思路是从服务器采购开始,采购之后,从网络部申请得到IP地址:通过厂商那里得到的MAC地址直接定制装机,装机时候直接指定IP地址:后期硬件信息采集的方式取消saltstack的grain方式,直接跑脚本做定期资产录入,提供API的接口方式:录入CMDB之后,通过平台实现把CMDB关联到zabbix数据库,批量对zabbix主机进行批量绑定和解绑,包括维护周期等:时间人力有限后面版本再退出批量管理和git发布系统.系统完成要感谢51reboot的rock和p

BAT解密:互联网技术发展之路(10)- 运维平台技术

备注:本来想自己写一篇运维体系的文章的,但毕竟不是专业运维人员出身,担心讲的太肤浅,因此转载我的好朋友王金银(江湖人称老王)同学发表在InfoQ的运维体系介绍.老王的牛逼相信很多同学已经领教过了,全球运维技术大会深圳站一个人专场讲运维能讲3个小时,而且会场还爆满,更多老王的介绍可以参考文章的最后,也可以关注老王的微信公众号:互联网运维杂谈. 原文链接:运维平台规划体系全介绍 =============================================================

用友iuap云运维平台支持基于K8s的微服务架构

什么是微服务架构? 微服务(MicroServices)架构是当前互联网业界的一个技术热点,业内各公司也都纷纷开展微服务化体系建设.微服务架构的本质,是用一些功能比较明确.业务比较精练的服务去解决更大.更实际的问题.该架构强调的一些准则:单一职责.协议轻量.进程隔离.数据分离.独立部署.按需伸缩. 什么是Kubernetes? Kubernetes是Google开源的容器集群管理系统,其提供应用部署.维护. 扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用,其主要功能:

《开源安全运维平台--OSSIM最佳实践》当当自营店 双十二期间 仅售 4.9 折!

<开源安全运维平台--OSSIM最佳实践>当当自营店双十二仅售 4.9 折! http://product.dangdang.com/23903741.html