[英]Azure managed identity for Azure service bus with java sdk
如何使用 java 中的 Azure 托管身份向主题发送消息? 现在我正在使用 connectionString 将消息发送到主题。
ServiceBusSenderClient senderClient = new ServiceBusClientBuilder()
.connectionString(connectionString)
.sender()
.topicName(topicName)
.buildClient();
在Azure SDK for java中,我只能找到这个例子,它是服务总线队列
ServiceBusSenderAsyncClient sender = new ServiceBusClientBuilder()
.credential("<<fully-qualified-namespace>>", credential)
.sender()
.queueName("<<queue-name>>")
.buildAsyncClient();
您的第二个片段大部分是正确的; 您错过了创建要传递给构建器的凭据的步骤。 这在概述的使用 DefaultAzureCredential 授权部分进行了讨论,如下所示:
TokenCredential credential = new DefaultAzureCredentialBuilder()
.build();
ServiceBusReceiverAsyncClient receiver = new ServiceBusClientBuilder()
.credential("<<fully-qualified-namespace>>", credential)
.receiver()
.queueName("<<queue-name>>")
.buildAsyncClient();
服务总线可以使用任何Azure.Identity 凭据进行授权。 演示DefaultAzureCredentialBuilder
只是因为它是一个链式凭证,可以在各种场景中取得成功。 可以在Azure.Identity 概述中找到更多信息。
如果您希望将授权仅限于托管标识,则可以使用ManagedIdentityCredentialBuilder
而不是默认凭据来实现。 可以在此处找到创建的示例。 然后可以将其以与默认凭据相同的方式传递给服务总线。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.