我的组织中设置的 Rabbit MQ 使用 LDAP 进行身份验证和授权。
如何配置 NServiceBus(或 RabbitMQ)以使用运行服务的凭据(例如 SQL 连接的集成安全性)。
Rabmit 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");
RabbitMQ 的 LDAP 支持要求客户端应用程序传递用户名和密码。 SQL 的集成安全性无可比拟。
在您的情况下,用户必须有一个
DN
,其值以 OU=xxxx Users,DC=ad,DC=xxxx,DC=xxx
结尾。您的 NServiceBus 应用程序必须传递具有预期 DN
的帐户的用户名和密码。