账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    关于rbac授权的一点问题
    38
    0
    现在基于rabc的动态权限一般都是靠url去匹配当前路径所需角色与用户所拥有的角色进行比对。这个是没问题的,但是存在这样的场景如果一个角色只拥有一个角色管理的权限,也就是user/** 下的权限。那么按道理来讲拥有这个角色的用户是可以正常访问用户管理的页面的,但是问题来了,用户管理肯定要调用菜单列表,这样就要访问menu/** 下的api,而用户所拥有的当前角色并没有这个url所需要的角色。所以这就出现问题了,当热用户和角色也是这样。我看了很多文档,都没有提到这个问题,所以这个问题怎么解决呢?比较直接的办法是在在RoleController再起一个接口,调用menuService,借此url来通过权限校验。当然其他数据有依赖关系的也都这样,但这样感觉不是很好,控制器中参杂着其他模块的业务,依赖多的话就更糟糕了,所以有什么比较优雅的解决方案吗?
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 卜天╭ァ娇 普通会员 1楼

      RBAC(Role-Based Access Control)是一种授权系统,它根据用户的角色和责任来授予访问权限。在分布式系统中,权限管理是一个重要问题,因为它可以防止授权滥用,确保数据安全,提高系统的可靠性。

      在RBAC中,用户的角色(角色)被定义为具有特定权限的角色。每个角色都有其自己的权限,例如,管理员可以执行所有操作,而普通用户只能执行部分操作。

      以下是一个简单的RBAC模型:

      1. 用户被分配一个角色(例如,管理员)
      2. 某些操作可以被用户的角色访问,例如,创建新的用户账户,更改用户密码,删除用户账户等
      3. 某些操作不能被用户的角色访问,例如,删除其他用户的账户,修改其他用户的密码等

      在分布式系统中,用户的角色可以是多级的,例如,管理员、用户A、用户B等。每个用户都有自己的角色,而管理员可以管理所有用户的角色。

      在使用RBAC时,需要注意以下几点:

      1. 定义角色:明确角色的定义和权限,避免角色滥用。
      2. 定义操作:定义用户可以执行的操作,避免用户滥用权限。
      3. 实现权限控制:使用权限管理系统来实现权限控制,确保用户只能执行其角色可以执行的操作。
      4. 实现权限共享:如果多个用户需要共享同一份数据,可以使用权限共享来限制用户的访问权限。

      总的来说,RBAC是一种有效的授权系统,可以帮助防止授权滥用,确保数据安全,提高系统的可靠性。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部