如何使用启用了LDAP的RabbitMQ配置NServiceBus

时间:2018-08-03 17:16:28

标签: rabbitmq nservicebus

我组织中设置的兔子MQ使用LDAP进行身份验证和授权。
如何配置NServiceBus(或RabbitMQ)以使用服务在其下运行的凭据(例如SQL连接的集成安全性)。

Rabbmit MQ配置

[
{rabbit,
   [{auth_backends, [rabbit_auth_backend_ldap]}]},
  {rabbitmq_auth_backend_ldap,
   [ {servers,               ["ad.xxxx.xxx"]},
     {dn_lookup_attribute,   "userPrincipalName"},
     {dn_lookup_base,        "OU=xxxx Users,DC=ad,DC=xxxx,DC=xxx"},
     {log,                   true},
     {group_lookup_base,     "OU=xxxx Users,DC=ad,DC=xxxx,DC=xxx"},
     {tag_queries,           [{administrator, {in_group, "CN=GRP_Name,OU=XXXX Users,DC=ad,DC=XXXX,DC=XXX"}},
                              {management, {in_group, in_group, "CN=GRP_Name,OU=XXXX Users,DC=ad,DC=XXXX,DC=XXX"}}]}
   ]
  }
].

NServiceBus代码:

var endpointConfiguration = new EndpointConfiguration("Receiver.Service");
            var transport = endpointConfiguration.UseTransport<RabbitMQTransport>();
            transport.UseConventionalRoutingTopology();
            transport.ConnectionString("host=rabbitmq.sb.xxxx.xxx");

1 个答案:

答案 0 :(得分:0)

RabbitMQ的LDAP支持要求客户端应用程序传递用户名和密码。没有SQL的集成安全性。

在您的情况下,用户必须有一个DN,其值以OU=xxxx Users,DC=ad,DC=xxxx,DC=xxx结尾。您的NServiceBus应用程序必须使用预期的DN传递帐户的用户名和密码。

DataTemplateSelector


注意: RabbitMQ团队监视https://www.rabbitmq.com/ldap.html,并且有时仅在StackOverflow上回答问题。