首页 / 微服务 / 微服务中如何设计一个权限授权服务
微服务中如何设计一个权限授权服务
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了微服务中如何设计一个权限授权服务,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2583字,纯文字阅读大概需要4分钟。
内容图文
基于角色的访问控制 (RBAC)
是将系统访问限制为授权用户的一种方法,是围绕角色和特权定义的与策略无关的访问控制机制,RBAC的组件使执行用户分配变得很简单。
在组织内部, 将为各种职务创建 角色 。 执行某些操作的权限已分配给特定角色。 成员或职员(或其他系统用户)被分配了特定角色,并且通过这些角色分配获得执行特定系统功能所需的权限。 由于未直接为用户分配权限,而是仅通过其角色(一个或多个角色)获取权限,因此,对单个用户权限的管理就变成了简单地为用户帐户分配适当角色的问题。 这简化了常见操作,例如添加用户或更改用户部门。
RBAC定义了三个主要规则
1、 角色分配:仅当对象已选择或分配了角色时,对象才能行使权限。
2、 角色授权:必须为主体授权主体的活动角色。 使用上面的规则1,此规则可确保用户只能承担获得其授权的角色。
3、 权限授权:仅当对象的活动角色被授权时,对象才能行使权限。 使用规则1和2,此规则可确保用户只能行使其被授权的权限。
创建RBAC的模型
菜单
public class SysMenu { /// <summary> /// 父级 /// </summary> public int ParentId { get; set; } = 0; ///<summary>/// 菜单名称 ///</summary> [StringLength(20)] publicstring Name { get; set; } ///<summary>/// 菜单地址 ///</summary> [StringLength(20)] [Required] publicstring Url { get; set; } ///<summary>/// 层级 ///</summary> [Column(TypeName = "tinyint(4)")] publicint Level { get; set; } = 1; ///<summary>/// 菜单权限(list<int /> json) ///</summary> [StringLength(100)] publicstring Operates { get; set; } ///<summary>/// 排序 ///</summary>publicint Sort { get; set; } ///<summary>/// 菜单图标 ///</summary>publicstring Icon { get; set; } }
功能
public class SysOperate { /// <summary> /// 按钮名称 /// </summary> [StringLength(20)] [Required] publicstring Name { get; set; } ///<summary>/// 备注 ///</summary> [StringLength(int.MaxValue)] publicstring Remark { get; set; } ///<summary>/// 唯一标识 ///</summary> [Required] publicint Unique { get; set; } }
角色
public class SysRole { /// <summary> /// 角色名称 /// </summary> [StringLength(20)] [Required] publicstring Name { get; set; } ///<summary>/// 备注 ///</summary> [StringLength(int.MaxValue)] publicstring Remark { get; set; } }
用户
public class SysUser { ///<summary>/// 角色id ///</summary>publicint RoleId { get; set; } ///<summary>/// 用户名 ///</summary> [StringLength(32)] [Required] publicstring UserName { get; set; } ///<summary>/// 密码 ///</summary> [StringLength(500)] [Required] publicstring Password { get; set; } }
微服务中让它成为一个授权权限服务
在日常工作中,总会有很多系统要做,每个系统都要一套完整的权限功能,有现成的直接拿来粘贴复制,没有现成的又要浪费很多时间去设计实现它。 如果有这样一个服务,我们可以节省很多不必要的粘贴复制操作,节省很多时间。
于是 ketchup.zero 这样一个服务就诞生了。它是基于ketchu微服务框架来实现的一个权限授权服务,基本可以满足我们日常工作的的权限需求。
服务的前端是基于vue的模板d2admin 开发的。
ketchup.zero的功能
登陆
面板
用户配置角色
菜单设置拥有那些权限
权限/功能/按钮 管理
角色设置权限
最后安利
如果它对你有帮助,请给一波start
服务 ketchup.zero 源码地址:https://github.com/simple-gr/ketchup.zero
微服务框架 ketchup 源码地址:https://github.com/simple-gr/ketchup
ketchup 交流群:592407137
原文:https://www.cnblogs.com/alangur/p/13187053.html
内容总结
以上是互联网集市为您收集整理的微服务中如何设计一个权限授权服务全部内容,希望文章能够帮你解决微服务中如何设计一个权限授权服务所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。