gpt4 book ai didi

c# - 将访问 token 传递到 Azure 服务管理 (REST) 时被禁止

转载 作者:行者123 更新时间:2023-12-03 03:13:46 25 4
gpt4 key购买 nike

我正在尝试根据 this 列出资源组中的所有虚拟机API

我已将该应用程序添加到我的 AAD 租户,并授予其对 Windows Azure 服务管理应用程序的委派权限。

这是我的代码...

private static HttpClient httpClient = new HttpClient();
private static AuthenticationResult result;
static void Main(string[] args)
{

AuthenticationContext ac = new AuthenticationContext("https://login.windows.net/<id>.onmicrosoft.com");
ClientCredential cc = new ClientCredential(clientId, clientSecret);
result = ac.AcquireToken("https://management.azure.com/", cc);

getresponse().Wait();


}
static async Task getresponse()
{

httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken);
HttpResponseMessage response = await httpClient.GetAsync("https://management.azure.com/subscriptions/<subscriptionID>/resourceGroups/resourcegroupname/providers/Microsoft.Compute/virtualmachines?api-version=2015-05-01-preview");


}

(<>中的部分已更改为发布在此处)

在最后一行我收到 403 禁止响应

有什么想法吗?

最佳答案

您收到此错误的原因是您尝试使用为您的应用程序获取的 token 来使用 Azure 资源管理器 (ARM) API,但该应用程序无权管理您的订阅。您需要做的是为此订阅中的应用程序分配适当的角色。

请看我对这个问题的回答:Authorization failure when creating a Stream Analytics job我在其中描述了两种为应用程序分配角色的方法。

关于c# - 将访问 token 传递到 Azure 服务管理 (REST) 时被禁止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32766067/

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