我组织中设置的兔子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");
答案 0 :(得分:0)
RabbitMQ的LDAP支持要求客户端应用程序传递用户名和密码。没有SQL的集成安全性。
在您的情况下,用户必须有一个DN
,其值以OU=xxxx Users,DC=ad,DC=xxxx,DC=xxx
结尾。您的NServiceBus应用程序必须使用预期的DN
传递帐户的用户名和密码。
注意: RabbitMQ团队监视https://www.rabbitmq.com/ldap.html,并且有时仅在StackOverflow上回答问题。