如何为AD组使用LDAP配置RabbitMQ?

时间:2019-11-21 08:24:40

标签: rabbitmq ldap

我是LDAP新手。

到目前为止,如果它是针对单个AD的,我已经设法用LDAP配置RabbitMQ并对其进行身份验证。 我正在使用以下配置:

RabbitMQ配置文件,

auth_backends,[{rabbit_auth_backend_ldap, rabbit_auth_backend_internal},rabbit_auth_backend_internal]

在RabbitMQ管理中, 我手动创建了没有设置密码的用户名(有效)

但是,可以说

我有一个AD组(称为“兔子用户组”),其中有3个用户(User1,User2,User3)。

“兔子用户组”的位置在: sample.companyname.com>城市名称(OU)>组(OU)> IT组(OU)>“兔子用户组”(安全组)。

我可以知道如何在RabbitMQ管理中以及配置文件中对其进行配置,以便在更新特定组后,该组内的所有成员都将进行身份验证并具有相同的权限(例如,仅此组)有管理员权限)?我不需要在RabbitMQ管理中手动创建每个用户来进行身份验证吗?。

我已将以下内容添加到我的Rabbitmq配置文件中

{
            tag_queries, [
                            {administrator,{in_group,'CN="Rabbit User Group",OU="City Name", OU=Groups, OU="IT Group",DC=sample,DC=companyname,DC=com',"uniqueMember"}},
                            {management,    {constant, true}}
                         ]
        }

,并试图在没有密码的情况下创建一个名为“兔子用户组”的用户名到rabbitMQ管理中。但是,当我尝试以“ User1”身份登录时,无法登录。

我尝试了几种方法,但是我不确定我缺少哪一部分,而且似乎都不起作用。

这是我的总体配置文件。

[
 {
  rabbit,
  [
   {
     auth_backends,[{rabbit_auth_backend_ldap, rabbit_auth_backend_internal},rabbit_auth_backend_internal]
   }
  ]
 },
 {
   rabbitmq_auth_backend_ldap,
   [   
        {servers, ["sample.companyname.com","192.168.63.123"]},
        {dn_lookup_attribute, "userPrincipalName"},
        {dn_lookup_base, "DC=AS,DC=companyname,DC=com"},
        {user_dn_pattern, "${username}@as.companyname.com"},
        {use_ssl, false},
        {port, 636},   
        {log, true},
        {
            tag_queries, [
                            {administrator,{in_group,'CN="Rabbit User Group",OU="City Name", OU=Groups, OU="IT Group",DC=sample,DC=companyname,DC=com',"uniqueMember"}},
                            {management,    {constant, true}}
                         ]
        }
    ]%% rabbitmq_auth_backend_ldap,
 }
].

如果有人能够为我提供有关如何使用LDAP为AD组配置RabbitMQ身份验证的指南,我们将不胜感激。

感谢您的期待。

1 个答案:

答案 0 :(得分:0)

经过几次反复试验和多次阅读,到目前为止,以下内容对我有用:

我需要将“ dn_lookup_attribute”设置为distinguishedName(DN)而不是userPrincipalName / sAMAccountName,以便它将使用该用户的DN进行in_group中的成员检查。如下图所示:

{dn_lookup_attribute, "distinguishedName"}, 
{user_dn_pattern, "CN=${username},OU=Users,DC=sample,DC=companyname,DC=com"},

代替“:

{dn_lookup_attribute, "userPrincipalName"},
{user_dn_pattern, "${username}@as.companyname.com"},

我只是意识到用户列表的Microsoft Active Directory组被称为“成员”,而OpenLDAP被称为“ uniqueMember”。 Microsoft Active Directory和OpenLDAP都是不同的LDAP服务类型,并且具有不同的组用户列表属性。

总体配置文件:

[
 {
  rabbit,
  [
   {
     auth_backends, [rabbit_auth_backend_ldap, rabbit_auth_backend_internal]  
   }
  ]
 },
 {
   rabbitmq_auth_backend_ldap,
   [   
        {servers, ["sample.companyname.com","192.168.63.123"]},

        {dn_lookup_attribute, "distinguishedName"},
        {dn_lookup_base, "DC=AS,DC=companyname,DC=com"},
        {user_dn_pattern, "CN=${username},OU=Users,DC=sample,DC=companyname,DC=com"},

        {use_ssl, false},
        {port, 636},   
        {log, true},
        {
            tag_queries, [
                            {administrator,{in_group,"CN=Rabbit User Group,OU=City Name, OU=Groups, OU=IT Group,DC=sample,DC=companyname,DC=com","member"}},
                            {management,    {constant, true}}
                         ]
        }
    ]%% rabbitmq_auth_backend_ldap,
 }
].

我在这里发布解决方案。 希望这对将来与我遇到相同问题的其他人有所帮助。 =)。 *干杯。