rabbitmq版本: 3.7.4

rabbitmq支持ldap需要开启插件:

      rabbitmq-plugins enable rabbitmq_auth_backend_ldap

rabbitmq主要通过两个配置文件对ldap服务进行控制访问: rabbitmq.conf,advanced.config。

rabbitmq.conf: ldap连接,查询配置。

advanced.config:rabbitmq权限配置。

rabbitmq.conf的配置如下:

auth_backends.1 = internal
auth_backends.2 = ldap
auth_ldap.servers.1 = ldap.xxxxx.net
auth_ldap.port = 389
auth_ldap.use_ssl = false
auth_ldap.user_dn_pattern= cn=${username},ou=People,dc=xxxx,dc=xxxxx,dc=xxxx

#如果用户存在在内部数据库,则对用户执行授权检查,不存在则在LDAP中查找用户并进行校验
auth_backends.1 = internal
auth_backends.2 = ldap

#ldap服务器地址,可配置多个,将按顺序尝试进行连接,直到与其中一个连接成功为止
auth_ldap.servers.1 = ldap01.xxxxx.net
auth_ldap.servers.2 = ldap02.xxxxx.net

#是否使用tls连接ldap服务器
auth_ldap.use_ssl = false

#根据匹配字段查找符合条件的用户
auth_ldap.user_dn_pattern= cn=${username},ou=People,dc=xxxx,dc=xxxxx,dc=xxxx

advanced.config的配置如下:

[{rabbitmq_auth_backend_ldap,[
{tag_queries, [{administrator, {in_group, "cn=rabbitmq-dev-administrator,ou=rabbitmq,dc=ldap,dc=xxxxx,dc=net","uniqueMember"}},
                    {management, {in_group, "cn=rabbitmq-dev-management,ou=rabbitmq,dc=ldap,dc=xxxxx,dc=net","uniqueMember"}}]}
]}].

#返回ou=rabbitmq组中cn=rabbitmq-dev-administrator 匹配属性为uniqueMember的用户,授予administrator的权限
{administrator, {in_group, "cn=rabbitmq-dev-administrator,ou=rabbitmq,dc=ldap,dc=xxxxx,dc=net","uniqueMember"}

#返回ou=rabbitmq组中cn=rabbitmq-dev-management 匹配属性为uniqueMember的用户,授予management的权限
{management, {in_group, "cn=rabbitmq-dev-management,ou=rabbitmq,dc=ldap,dc=xxxxx,dc=net","uniqueMember"

rabbitmq管理插件的以下五种权限标签:

以上是对两种配置文件大致介绍,现在启动rabbitmq验证配置是否正确。

3.7.0之前的配置在rabbitmq.config文件里,配置格式:

[{rabbit,[
{auth_backends, [rabbit_auth_backend_internal,rabbit_auth_backend_ldap]}
]},
{rabbitmq_auth_backend_ldap, [
{servers, ["ldap.xxxxx.net"]},
{port, 389},
{user_dn_pattern, "cn=${username},ou=People,dc=ldap,dc=xxxxx,dc=net"},
{tag_queries, [{administrator, {in_group, "cn=rabbitmq-qa-administrator,ou=rabbitmq,dc=ldap,dc=xxxxx,dc=net","uniqueMember"}},
{management, {in_group, "cn=rabbitmq-qa-management,ou=rabbitmq,dc=ldap,dc=xxxxx,dc=net","uniqueMember"}}]}
]}
].

启动服务: rabbitmq-server  ,观察日志查看服务是否启动正常

主要查看是否加载上图红框所示的两个配置文件,如果未成功加载,需在 /etc/rabbitmq/rabbitmq-env.conf 中添加以下配置:
CONFIG_FILE="/opt/rabbitmq/etc/rabbitmq/rabbitmq.conf"
ADVANCED_CONFIG_FILE="/opt/rabbitmq/etc/rabbitmq/advanced.config"

接下来验证账户是否可以登录

登录成功,查看ldap中对应组信息:

以上就是ldap+rabbitmq的配置。

参考链接:

https://www.rabbitmq.com/ldap.html

http://www.rabbitmq.com.s.icopy.site/ldap.html

ldap集成rabbitmq的更多相关文章

  1. rabbitMQ第五篇:Spring集成RabbitMQ

    前面几篇讲解了如何使用rabbitMq,这一篇主要讲解spring集成rabbitmq. 首先引入配置文件org.springframework.amqp,如下 <dependency> ...

  2. RabbitMQ第四篇:Spring集成RabbitMQ

    前面几篇讲解了如何使用rabbitMq,这一篇主要讲解spring集成rabbitmq. 首先引入配置文件org.springframework.amqp,如下 <dependency> ...

  3. springboot集成rabbitmq(实战)

    RabbitMQ简介RabbitMQ使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现(AMQP的主要特征是面向消息.队列.路由.可靠性.安全).支持多种客户端,如:Python.Ru ...

  4. SpringBoot集成rabbitmq(二)

    前言 在使用rabbitmq时,我们可以通过消息持久化来解决服务器因异常崩溃而造成的消息丢失.除此之外,我们还会遇到一个问题,当消息生产者发消息发送出去后,消息到底有没有正确到达服务器呢?如果不进行特 ...

  5. SpringBoot集成rabbitmq(一)

    前言 Rabbitmq是一个开源的消息代理软件,是AMQP协议的实现.核心作用就是创建消息队列,异步发送和接收消息.通常用来在高并发中处理削峰填谷.延迟处理.解耦系统之间的强耦合.处理秒杀订单.  入 ...

  6. ldap集成bitbucket

    confluence ldap配置跟jira ldap集成一样,请参考:https://www.cnblogs.com/imcati/p/9378668.html 需在 Global permissi ...

  7. Spring Boot系列——7步集成RabbitMQ

    RabbitMQ是一种我们经常使用的消息中间件,通过RabbitMQ可以帮助我们实现异步.削峰的目的. 今天这篇,我们来看看Spring Boot是如何集成RabbitMQ,发送消息和消费消息的.同时 ...

  8. SpringBoot集成RabbitMQ消息队列搭建与ACK消息确认入门

    1.RabbitMQ介绍 RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性.扩展性.高可用性等方面表现不俗.Rabbi ...

  9. RabbitMQ(3) Spring boot集成RabbitMQ

    springboot集成RabbitMQ非常简单,如果只是简单的使用配置非常少,springboot提供了spring-boot-starter-amqp项目对消息各种支持. 资源代码:练习用的代码. ...

随机推荐

  1. MongoDB--运行环境

    版本 a.b.c  a大版本  b中版本分奇数偶数 奇数是开发版 偶数是稳定版 c小版本 ssh工具:远程Linux机器.在windows下使用 Linux 下使用vim     windows下使用 ...

  2. JavaScript 基础数组循环和迭代的几种方法

    JavaScript 数组循环和迭代   (之前一直没怎么注意数组循环,今天做一道题时,用到forEach循环发现它并没有按照我想象的样子执行,总结一下数组循环) 一.第一种方法就是for()循环   ...

  3. 记录一则RMAN恢复到历史备份(多个incarnation)

    环境: OEL 5.7 + Oracle 11.2.0.4 1.直接restore到想要恢复的时间点报错: RMAN> sql "alter session set nls_date_ ...

  4. HDU 1568 Fibonacci(大数前4位)

    转载自:http://blog.csdn.net/thearcticocean/article/details/47615241 分析:x=1234567.求其前四位数: log10(x)=log10 ...

  5. Css预处理器---Less(三)

    四.Color函数 1.less提供的颜色运算函数,颜色会被转换成HSL色彩空间,然后再通道级别进行操作,函数如下: lighten(@color, 10%); //return a color wh ...

  6. Java包装

    public class Test2 { public static void main(String[] args) { /*String str = "..............&qu ...

  7. Python之words count

    要求: 对文件单词进行统计,不区分大小写,并显示单词重复最多的十个单词 思路: 利用字典key,value的特性存单词及其重复的次数 每行进行特殊字符的处理,分离出被特殊字符包含的单词 def mak ...

  8. 删除(unfork)github中某个库(repository)

    1.头像->your profile 2.点击某个想要删除的库,出现界面: 3.点击setting,鼠标滚动页面至末尾,出现页面: 4.点击delete this repository: OK!

  9. python os.path.splitext()

    # Split the file extension 可以把扩展名获取出来

  10. RocketMQ 问题汇总

    1. rocketMQ安装: 编译完成以后准备启动项目,注意:bin的位置是编译后target目录下,启动命令在这里. linux命令目录:你的目录/rocketmq-all-4.2.0/distri ...