Active directory 管理插件上的RabbitMQ LDAP

Active directory 管理插件上的RabbitMQ LDAP,active-directory,ldap,rabbitmq,Active Directory,Ldap,Rabbitmq,我是拉比犬的新手。我将其安装在Windows 10 Enterpise上用于开发目的。我们正在运行Active Directory。尝试为管理插件设置LDAP,以便任何具有正确密码的用户都可以作为管理员登录 我的最新配置: [ { rabbit, [ { auth_backends, [ {rabbit_auth_backend_ldap, rabbit_auth_backend_internal},

我是拉比犬的新手。我将其安装在Windows 10 Enterpise上用于开发目的。我们正在运行Active Directory。尝试为管理插件设置LDAP,以便任何具有正确密码的用户都可以作为管理员登录

我的最新配置:

[
{
    rabbit,
    [
        {
            auth_backends, [
                {rabbit_auth_backend_ldap, rabbit_auth_backend_internal},
                rabbit_auth_backend_internal
            ]
        }
    ]
},
{
  rabbitmq_auth_backend_ldap,
  [
    {   
        servers, [
            "WLNC0DS23N.na.mycompany.com","WBRD0DS21N.na.mycompany.com"
        ]
    },
    {
        dn_lookup_attribute, "userPrincipalName"
    },
    {
        dn_lookup_base, "DC=na,DC=mycompany,DC=com"
    },
    {
        user_dn_pattern, "${username}@mycompany.com"
    },
    {
        use_ssl, false
    },
    {
        port, 389
    },          
    {
        log, true
    },
    {
        vhost_access_query, {in_group_nested, "CN=NA_WHS,OU=GroupsAndContacts,OU=Exchange,DC=na,DC=mycompany,DC=com","member"}
    },
    {
        resource_access_query, {in_group_nested, "CN=NA_WHS,OU=GroupsAndContacts,OU=Exchange,DC=na,DC=mycompany,DC=com","member"}
    },
    {
        topic_access_query, {in_group_nested, "CN=NA_WHS,OU=GroupsAndContacts,OU=Exchange,DC=na,DC=mycompany,DC=com","member"}
    },
    {
        tag_queries, [
            {
                administrator, {in_group_nested,"CN=NA_WHS,OU=GroupsAndContacts,OU=Exchange,DC=na,DC=mycompany,DC=com","member"}
            }
        ]
    }
  ]
}
]

不幸的是,虽然LDAP似乎检查我是否正常,但我无法登录并在日志中获取此错误:

2019-05-28 16:04:14.662 [info] <0.678.0> LDAP CHECK: login for perryda
2019-05-28 16:04:14.663 [info] <0.678.0>         LDAP filling template "${username}@mycompany.com" with
        [{username,<<"perryda">>}]
2019-05-28 16:04:14.663 [info] <0.678.0>         LDAP template result: "perryda@mycompany.com"
2019-05-28 16:04:14.750 [info] <0.317.0>     LDAP bind succeeded: xxxx
2019-05-28 16:04:14.750 [info] <0.317.0>         LDAP filling template "${username}@mycompany.com" with
        [{username,<<"perryda">>}]
2019-05-28 16:04:14.751 [info] <0.317.0>         LDAP template result: "perryda@mycompany.com"
2019-05-28 16:04:14.753 [info] <0.317.0>     LDAP DN lookup: perryda -> CN=Perry\, David,OU=Users,OU=WLNC-Wilmington,OU=OC,OU=IT-SD,DC=na,DC=mycompany,DC=com
2019-05-28 16:04:14.753 [info] <0.317.0>     LDAP CHECK: does perryda have tag administrator?
2019-05-28 16:04:14.753 [info] <0.317.0>     LDAP evaluating query: {in_group_nested,"CN=NA_WHS,OU=GroupsAndContacts,OU=Exchange,DC=na,DC=mycompany,DC=com","member"}
2019-05-28 16:04:14.753 [info] <0.317.0>     LDAP evaluating query: {in_group_nested,"CN=NA_WHS,OU=GroupsAndContacts,OU=Exchange,DC=na,DC=mycompany,DC=com","member",subtree}
2019-05-28 16:04:14.754 [info] <0.317.0>         LDAP filling template "CN=NA_WHS,OU=GroupsAndContacts,OU=Exchange,DC=na,DC=mycompany,DC=com" with
        [{username,<<"perryda">>},{user_dn,"CN=Perry\\, David,OU=Users,OU=WLNC-Wilmington,OU=OC,OU=IT-SD,DC=na,DC=mycompany,DC=com"}]
2019-05-28 16:04:14.754 [info] <0.317.0>         LDAP template result: "CN=NA_WHS,OU=GroupsAndContacts,OU=Exchange,DC=na,DC=mycompany,DC=com"
2019-05-28 16:04:14.759 [info] <0.317.0>     LDAP DECISION: does perryda have tag administrator? true
2019-05-28 16:04:14.759 [info] <0.678.0> LDAP DECISION: login for perryda: ok
2019-05-28 16:04:14.759 [warning] <0.678.0> HTTP access denied: user 'perryda' - invalid credentials
2019-05-28 16:04:14.662[信息]LDAP检查:perryda登录
2019-05-28 16:04:14.663[信息]LDAP填充模板“${username}@mycompany.com”,带有
[{用户名,}]
2019-05-28 16:04:14.663[信息]LDAP模板结果:perryda@mycompany.com"
2019-05-28 16:04:14.750[信息]LDAP绑定成功:xxxx
2019-05-28 16:04:14.750[信息]LDAP填充模板“${username}@mycompany.com”,带有
[{用户名,}]
2019-05-28 16:04:14.751[信息]LDAP模板结果:perryda@mycompany.com"
2019-05-28 16:04:14.753[信息]LDAP DN查找:perryda->CN=Perry\,David,OU=Users,OU=WLNC Wilmington,OU=OC,OU=IT-SD,DC=na,DC=mycompany,DC=com
2019-05-28 16:04:14.753[信息]LDAP检查:perryda是否有标签管理员?
2019-05-28 16:04:14.753[信息]LDAP评估查询:{in_group_嵌套,“CN=NA_WHS,OU=GroupsAndContacts,OU=Exchange,DC=NA,DC=mycompany,DC=com”,“member”}
2019-05-28 16:04:14.753[信息]LDAP评估查询:{in_group_嵌套,“CN=NA_WHS,OU=GroupsAndContacts,OU=Exchange,DC=NA,DC=mycompany,DC=com”,“member”,子树}
2019-05-28 16:04:14.754[信息]LDAP填写模板“CN=NA_WHS,OU=GroupsAndContacts,OU=Exchange,DC=NA,DC=mycompany,DC=com”
[{username,},{user\u dn,“CN=Perry\\,David,OU=Users,OU=WLNC-Wilmington,OU=OC,OU=IT-SD,DC=na,DC=mycompany,DC=com”}]
2019-05-28 16:04:14.754[信息]LDAP模板结果:“CN=NA_WHS,OU=GroupsAndContacts,OU=Exchange,DC=NA,DC=mycompany,DC=com”
2019-05-28 16:04:14.759[信息]LDAP决策:perryda是否有标签管理员?符合事实的
2019-05-28 16:04:14.759[信息]LDAP决策:登录perryda:确定
2019-05-28 16:04:14.759[警告]HTTP访问被拒绝:用户“perryda”-无效凭据
有人知道问题是什么,以及如何解决吗

试图将其设置为属于特定广告组的广告用户 当他们访问管理插件时立即登录 来自IE或Edge

管理UI不支持此操作。您必须提供用户名和密码才能使用AD凭据登录


注意:RabbitMQ团队监控
RabbitMQ用户
,并且有时只回答有关StackOverflow的问题

试图将其设置为属于特定广告组的广告用户 当他们访问管理插件时立即登录 来自IE或Edge

管理UI不支持此操作。您必须提供用户名和密码才能使用AD凭据登录



注意:RabbitMQ团队监控
RabbitMQ用户,并且只在某些时候回答有关StackOverflow的问题。

此答案由RabbitMQ Google组的Daniel Fedotov发布。它工作得很好

auth后端配置行“{rabbit_auth_backend_ldap,rabbit_auth_backend_internal}”表示ldap后端仅用于身份验证(检查用户是否存在),而不用于授权(检查用户是否有权访问资源),内部后端用于授权。 这意味着您应该为内部用户配置权限和标记。 如果希望通过LDAP进行授权,则应将此元组“{rabbit\u auth\u backend\u LDAP,rabbit\u auth\u backend\u internal}”替换为:“rabbit\u auth\u backend\u LDAP”。
或者在内部数据库中创建用户权限,但我想这不是您想要实现的。

这个答案是由RabbitMQ Google组的Daniel Fedotov发布的。它工作得很好

auth后端配置行“{rabbit_auth_backend_ldap,rabbit_auth_backend_internal}”表示ldap后端仅用于身份验证(检查用户是否存在),而不用于授权(检查用户是否有权访问资源),内部后端用于授权。 这意味着您应该为内部用户配置权限和标记。 如果希望通过LDAP进行授权,则应将此元组“{rabbit\u auth\u backend\u LDAP,rabbit\u auth\u backend\u internal}”替换为:“rabbit\u auth\u backend\u LDAP”。
或者在内部数据库中创建用户权限,但我想这不是您想要实现的。

可能已经太迟了,但在我的情况下,我已经通过LDAP解决了身份验证+授权+回退到内部数据库的问题:

 {rabbit,
     [
      .......
      {auth_backends, [rabbit_auth_backend_ldap, rabbit_auth_backend_internal]},
      .......
     ]}

更多详细信息:

可能已经太晚了,但就我而言,我已经通过LDAP通过身份验证+授权+回退到内部数据库解决了我的问题:

 {rabbit,
     [
      .......
      {auth_backends, [rabbit_auth_backend_ldap, rabbit_auth_backend_internal]},
      .......
     ]}

更多详细信息:

所说的“即时登录”是指SSO吗?使用Kerberos?RabbitMQ不支持此操作。您可以使用用户名/密码对或X.509证书。看,这听起来有点像。我不知道管理插件是如何工作的,但您可能在相同的情况下登录到:组授权需要与用户DNs匹配,因此您需要在身份验证之前进行查找。所谓“即时登录”是指SSO吗?使用Kerberos?RabbitMQ不支持此操作。您可以使用用户名/密码对或X.509证书。看,这听起来有点像。我不知道管理插件是如何工作的,但您可能遇到了相同的情况:组授权需要匹配用户DNs,因此您需要在身份验证之前进行查找。我现在看到了,我正在尝试使用我的AD用户和密码登录。我似乎能够正确地查询LDAP以获得组成员资格,但仍然得到一个错误。我已经更新了问题。你能帮我拿一下吗