gpt4 book ai didi

Azure ServiceBusClient,应用程序注册, "System.UnauthorizedAccessException Unauthorized access"

转载 作者:行者123 更新时间:2023-12-03 05:20:34 30 4
gpt4 key购买 nike

我正在使用 Azure“应用程序注册”的凭据发送 ServiceBusMessage。我已经配置了应用程序并将其添加为服务总线贡献者。

我收到此错误:

System.UnauthorizedAccessException: '未经授权的访问。执行此操作需要“发送”声明。资源:'sb://xxxxxx-eastus.servicebus.windows.net/test'。 TrackingId:a3c9cb6f8705406c8028049296deba60_G5,SystemTracker:gateway7,时间戳:2022-06-15T18:03:04'

我可能错过了哪一步?

    static public void SendTest()
{
string AZURE_TENANT_ID = ConfigurationManager.AppSettings["AZURE_TENANT_ID"];
string AZURE_CLIENT_ID = ConfigurationManager.AppSettings["AZURE_CLIENT_ID"];
string AZURE_CLIENT_SECRET = ConfigurationManager.AppSettings["AZURE_CLIENT_SECRET"];

string _serviceBusName = "xxxxxx-eastus";
string _queueName = "test";

TokenCredential tkcredential = new ClientSecretCredential(AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET);

var token = tkcredential.GetToken(new Azure.Core.TokenRequestContext(
new[] { "https://graph.microsoft.com/.default" }), new CancellationToken());

Console.WriteLine(new JavaScriptSerializer().Serialize(token));

var serviceBusClient = new ServiceBusClient($"{_serviceBusName}.servicebus.windows.net", tkcredential);
var queueSendClient = serviceBusClient.CreateSender(_queueName);

var MsgTest = new
{
name = "Test from moon"
};

string json = new JavaScriptSerializer().Serialize(MsgTest);
var message = new ServiceBusMessage(json);

queueSendClient.SendMessageAsync(message).GetAwaiter().GetResult();
}

I 添加对 azure ServiceBus 的完全访问权限

App Registration, API permissions

我将角色添加为服务总线的贡献者

contributor to service bus

授权错误,我在google上搜索并尝试了两个多小时,一直得到同样的错误。

enter image description here

最佳答案

应用程序需要服务总线数据发送者角色。贡献者角色只允许管理资源本身,不能发送消息。

关于Azure ServiceBusClient,应用程序注册, "System.UnauthorizedAccessException Unauthorized access",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72636085/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com