ldap集成rabbitmq
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的更多相关文章
- rabbitMQ第五篇:Spring集成RabbitMQ
前面几篇讲解了如何使用rabbitMq,这一篇主要讲解spring集成rabbitmq. 首先引入配置文件org.springframework.amqp,如下 <dependency> ...
- RabbitMQ第四篇:Spring集成RabbitMQ
前面几篇讲解了如何使用rabbitMq,这一篇主要讲解spring集成rabbitmq. 首先引入配置文件org.springframework.amqp,如下 <dependency> ...
- springboot集成rabbitmq(实战)
RabbitMQ简介RabbitMQ使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现(AMQP的主要特征是面向消息.队列.路由.可靠性.安全).支持多种客户端,如:Python.Ru ...
- SpringBoot集成rabbitmq(二)
前言 在使用rabbitmq时,我们可以通过消息持久化来解决服务器因异常崩溃而造成的消息丢失.除此之外,我们还会遇到一个问题,当消息生产者发消息发送出去后,消息到底有没有正确到达服务器呢?如果不进行特 ...
- SpringBoot集成rabbitmq(一)
前言 Rabbitmq是一个开源的消息代理软件,是AMQP协议的实现.核心作用就是创建消息队列,异步发送和接收消息.通常用来在高并发中处理削峰填谷.延迟处理.解耦系统之间的强耦合.处理秒杀订单. 入 ...
- ldap集成bitbucket
confluence ldap配置跟jira ldap集成一样,请参考:https://www.cnblogs.com/imcati/p/9378668.html 需在 Global permissi ...
- Spring Boot系列——7步集成RabbitMQ
RabbitMQ是一种我们经常使用的消息中间件,通过RabbitMQ可以帮助我们实现异步.削峰的目的. 今天这篇,我们来看看Spring Boot是如何集成RabbitMQ,发送消息和消费消息的.同时 ...
- SpringBoot集成RabbitMQ消息队列搭建与ACK消息确认入门
1.RabbitMQ介绍 RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性.扩展性.高可用性等方面表现不俗.Rabbi ...
- RabbitMQ(3) Spring boot集成RabbitMQ
springboot集成RabbitMQ非常简单,如果只是简单的使用配置非常少,springboot提供了spring-boot-starter-amqp项目对消息各种支持. 资源代码:练习用的代码. ...
随机推荐
- unittest多线程生成报告-----BeautifulReport
原文地址https://www.cnblogs.com/yoyoketang/p/8404204.html 前言 selenium多线程跑用例,这个前面一篇已经解决了,如何生成一个测试报告这个是难点, ...
- iOS应用图标及尺寸
Icon and Image Sizes Every app needs an app icon and a launch file or image. In addition, some apps ...
- cocos2d-x JS 开启远程代码调试
为了方便服务端与测试部门的工作需要,把客户端的写的程序可以在其他电脑上运行,方便他人工作与测试. 下面是cocos2d-x JS WebStorm 的设置方法.
- cocos2dx 3.x(纯代码实现弹出对话框/提示框/警告框)
头文件: // // PopAlertDialog.h // macstudycocos2dx // // Created by WangWei on 15/6/8. // // #ifndef ...
- 排名前10的vue前端UI框架框架值得你掌握
参考:https://juejin.im/post/5b34faeef265da59645b188e muse-ui 框架: https://juejin.im/entry/582974eb8ac24 ...
- node.js初识01
1.对于node.js的安装在这里就不做过多的介绍了,安装成功后,可以通过cmd 输入node -v查看node的版本号,如图所示 2.开始我们的hello world,通过cmd进入所属文件夹,输入 ...
- HDU 1251 统计难题(Trie)
统计难题 [题目链接]统计难题 [题目类型]Trie &题解: Trie的模板题,只不过这题坑点在没给数据范围,改成5e5就可以过了,用的刘汝佳蓝书模板 &代码: #include & ...
- Mod制作第一个物品
在通过Mod制作第一个物品时需要 一下几个步骤: 创建一个物品 通常在创建这个物品类的时候会继承Item或者是Block父类(因为Mod中的物品都是这个两个类的子类),在给类中使用了this.setU ...
- JAVA多线程常用例子
详情见该页面ttps://www.cnblogs.com/pureEve/p/6524366.html
- <4>Lua表
lua表 1: lua没有数组,但是表可以代替数组的功能(数组部分与非数组部分); 开始的, 1, 2, 3 ...称连续的索引; b.Lua表的连续索引的长度(数组部分); #表的名字; --数组 ...