0


RabbitMQ鉴权设计以及相关探讨

文章目录

鉴权,分别由组成

  • : 表示身份认证,认证相关用户是否存在以及相关的用户名和密码是否一致
  • : 完成身份的后,还需要判断用户是否有相关操作的权限。

因此对于某一个用户来说,通常情况下,需要完成才能够满足一个完整的业务场景,因此通常将鉴权放在一起考量。本文探讨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的全局的统计信息
  • administrator policymaker和monitoring可以做的任何事外加: 创建和删除virtual hosts 查看、创建和删除users 查看创建和删除permissions 关闭其他用户的connections

5. 参考文档

  • RabbitMQ官网

本文转载自: https://blog.csdn.net/weixin_43845924/article/details/136161047
版权归原作者 李姓门徒 所有, 如有侵权,请联系我们删除。

“RabbitMQ鉴权设计以及相关探讨”的评论:

还没有评论