We are running RabbitMQ 3.6.5 in a Windows environment and are using the LDAP plugin. This allows our developers to view the queues and inspect the messages. By default, the RabbitMQ LDAP plugin allows "all users to access all objects in all vhosts" (as documented here). This includes the ability to publish messages directly from the LDAP plugin. What we would like to do is deny this permission to LDAP users, while still allowing them to see the queues.
According to the LDAP plugin page, this is accomplished by inserting Erlang queries into the RabbitMQ configuration. Using the examples on that page, we first tried simply granting read permission with this query (LDAP specifics changed):
{resource_access_query,
{for, [{permission, configure, {in_group, "OU=someGroup,OU=Departments,OU=ABC,DC=ABC,DC=ORG"}},
{permission, read, {constant, true}}
]
}}
When that had no effect, we tried explicitly denying write permissions:
{resource_access_query,
{for, [{resource, queue, {for, [{permission, configure,
{in_group, "OU=someGroup,OU=Departments,OU=ABC,DC=ABC,DC=ORG"}
},
{permission, write, {constant, false}},
{permission, read, {constant, true}}
]}},
]}}
Unfortunately that had no effect either. In both cases, LDAP users were still able to publish messages in the LDAP plugin.
Does anybody know what we are missing?