鉴权,分别由鉴和权组成
- 鉴: 表示身份认证,认证相关用户是否存在以及相关的用户名和密码是否一致
- 权: 完成身份的鉴后,还需要判断用户是否有相关操作的权限。
因此对于某一个用户来说,通常情况下,需要完成鉴和权才能够满足一个完整的业务场景,因此通常将鉴权放在一起考量。本文探讨rabbitmq的鉴权常用的鉴权方式以及相关鉴权设计方式。
1. rabbitmq的鉴权设计
rabbitmq的鉴权作用范围是vhost,不同vhost采用不同的鉴权(账号密码等),因此可以rabbitmq可以通过vhost进行多租户的权限设计。
鉴: 身份认证
身份的认证有常用简单认证方式,可以配置账号和密码。
权: 操作权限
rabbitmq针对权限设计主要通过2种方式
- 配置用户的角色
- 配置用户的操作权限,相关的操作分别是**“配置”、“读”、“写”**权限
2. rabbitmq鉴权应用范围
rabbitmq的鉴权应用范围vhost级别,能够针对vhost内部的topic、exchange、queue、配置、数据读写等进行赋权和操作限制。不同vhost的鉴权相互隔离,相互独立,因此通常通过vhost来进行多租户的鉴权设计。
3. rabbitmq鉴权的常用方法
给目录创建权限的操作如下
3.1 用户管理
新增账号: rabbitmqctl add_user user-xx passwd-xx
删除用户: rabbitmqctl delete_user user-xx
所有用户: rabbitmqctl list_users
修改密码: rabbitmqctl change_password user-xx passwd-xx2
清除密码: rabbitmqctl clear_password {user-xx}
3.2 角色管理
用户角色分为5中类型:
none:无任何角色。新创建的用户的角色默认为 none。
management:可以访问web管理页面。
policymaker: 包含managerment所有权限,并且可以管理策略(Policy)和参数(Parameter)
monitoring: 包含management所有权限,并且可以看到所有链接、信道及节点相关的信息
administartor:包含monitoring所有权限,并且可以管理用户、虚拟机、权限、策略、参数等。(最高权限)
设置用户角色: rabbitmqctl set_user_tags zhaojigang administrator
设置多个角色: rabbitmqctl set_user_tags hncscwc monitoring policymaker
查看用户角色: rabbitmqctl list_users
3.3 权限管理
命令格式如下:rabbitmqctl set_permissions [-p vhost] {user} {conf} {write} {read}
查询所有权限:rabbitmqctl list_permissions [-p VHostPath]
查看用户权限:rabbitmqctl list_user_permissions user-xx
清除用户权限:rabbitmqctl clear_permissions [-p VHostPath] user-xx
4. 默认鉴权
搭建rabbitmq后会默认创建默认的账号和角色,便于管理。这两个进行了相关梳理
4.1 默认用户
RabbitMQ 安装完成后,会自动创建一个名为 guest 的默认用户,并设置其密码为 guest。可以通过http://localhost:15672登录RabbitMQ的控制台
4.2 默认角色
RabbitMQ中主要有administrator,monitoring,policymaker,management,impersonator,none几种角色。
-
none
不能访问 management plugin -
management
用户可以通过AMQP做的任何事外加:
列出自己可以通过AMQP登入的virtual hosts
查看自己的virtual hosts中的queues, exchanges 和 bindings
查看和关闭自己的channels 和 connections
查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动。 -
policymaker
management可以做的任何事外加:
查看、创建和删除自己的virtual hosts所属的policies和parameters -
monitoring
management可以做的任何事外加:
列出所有virtual hosts,包括他们不能登录的virtual hosts
查看其他用户的connections和channels
查看节点级别的数据如clustering和memory使用情况
查看真正的关于所有virtual hosts的全局的统计信息文章来源:https://www.toymoban.com/news/detail-831280.html -
administrator
policymaker和monitoring可以做的任何事外加:
创建和删除virtual hosts
查看、创建和删除users
查看创建和删除permissions
关闭其他用户的connections文章来源地址https://www.toymoban.com/news/detail-831280.html
5. 参考文档
- RabbitMQ官网
到了这里,关于RabbitMQ鉴权设计以及相关探讨的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!