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=safetytaxfree,dc=net","uniqueMember"}},
{management
]}].
#返回ou=rabbitmq組中cn=rabbitmq-dev-administrator 匹配屬性為uniqueMember的用戶,授予administrator的權限
{administrator, {in_group, "cn=rabbitmq-dev-administrator,ou=rabbitmq,dc=ldap,dc=safetytaxfree,dc=net","uniqueMember"}
#返回ou=rabbitmq組中cn=rabbitmq-dev-management 匹配屬性為uniqueMember的用戶,授予management的權限
{management, {in_group, "cn=rabbitmq-dev-management,ou=rabbitmq,dc=ldap,dc=safetytaxfree,dc=net","uniqueMember"
rabbitmq管理插件的以下五種權限標簽:
以上是對兩種配置文件大致介紹,現在啟動rabbitmq驗證配置是否正確。
啟動服務: 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