RabbitMQ鉴权设计以及相关探讨

文章目录

  • 1. rabbitmq的鉴权设计
  • 2. rabbitmq鉴权应用范围
  • 3. rabbitmq鉴权的常用方法
    • 3.1 用户管理
    • 3.2 角色管理
    • 3.3 权限管理
  • 4. 默认鉴权
    • 4.1 默认用户
    • 4.2 默认角色
  • 5. 参考文档

鉴权,分别由组成

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

因此对于某一个用户来说,通常情况下,需要完成才能够满足一个完整的业务场景,因此通常将鉴权放在一起考量。本文探讨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的控制台
RabbitMQ鉴权设计以及相关探讨_第1张图片

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官网

你可能感兴趣的:(分布式,中间件,RabbitMQ,rabbitmq,分布式,消息中间件)