[rabbitmq-discuss] Debugging AD

Ben Hood 0x6e6562 at gmail.com
Tue Nov 29 18:16:50 GMT 2011


Hi,

I'm trying to see if I can get 2.7.0 (RHEL 2.6.18-274.3.1.el5, OTP
R14B03) to authenticate against a corporate AD.

The first iteration of my /etc/rabbitmq/rabbitmq.config looks like this:

--------------------------------------------

{rabbit, [{auth_backends, [rabbit_auth_backend_ldap,
rabbitmq_auth_backend_internal]}]  },

%% I'm assuming that the internal DB does not use the _mq suffix,
whereas the ldap backend module
%% appears to derive it's origin from rabbitmq_auth_backend_ldap.app,
which seems to get tarred into the rabbitmq_auth_backend_ldap-2.7.0.ez

 {rabbitmq_auth_backend_ldap,
 [ {servers,               ["ad.acme.com"]},
   {user_dn_pattern,
"(sAMAccountName=${username}),DC=global,DC=acme,DC=Com"},

 %% Leave this commented out for now, so that we can get the basic
LDAP handshake going
 %%  {resource_access_query,
 %%    {for, [{resource, exchange,{for, [{permission, configure,
 %%                                       { in_group,
"cn=acme,ou=groups,dc=acme,dc=com" }
 %%                                      },
 %%                                      {permission, write, {constant, true}},
 %%                                      {permission, read,  {constant, true}}
 %%                                     ]}},
 %%           {resource, queue, {constant, true}} ]}},
 %%    {tag_queries,           [{administrator, {constant, false}}]},

     {use_ssl,               false},
     {port,                  389},
     {log,                   true} ] }
].

--------------------------------------------

However, the effect of this is that the management plugin no longer
responds to any requests (I haven't yet tried to establish an AMQP
connection yet). This is what I gleaned from the SASL log:

=CRASH REPORT==== 29-Nov-2011::18:06:59 ===
  crasher:
    initial call: mochiweb_acceptor:init/3
    pid: <0.288.0>
    registered_name: []
    exception error: undefined function
rabbitmq_auth_backend_ldap:check_user_login/2
      in function  rabbit_access_control:'-check_user_login/2-fun-0-'/4
      in call from lists:foldl/3
      in call from rabbit_mgmt_app:'-make_loop/0-fun-0-'/4
      in call from mochiweb_http:headers/5
    ancestors: [rabbit_mochiweb_web_mgmt,rabbit_mochiweb_sup,<0.127.0>]
    messages: []
    links: [<0.226.0>,#Port<0.5315>]
    dictionary: []
    trap_exit: false
    status: running
    heap_size: 4181
    stack_size: 24
    reductions: 1490
  neighbours:


Looking at the source code of the app, the auth backend behavior
appears to be implemented in the rabbit_auth_backend_ldap module (sans
mq). So I've tried a few different combinations of mq/no mq in
rabbitmq.config, to no avail.

Does anybody know which way round I should define the mq in rabbitmq.config?

Cheers,

Ben


More information about the rabbitmq-discuss mailing list