禁止向Azure服务管理(REST)传递访问令牌
本文关键字:访问令牌 REST Azure 服务 管理 禁止 | 更新日期: 2023-09-27 18:14:35
我正在尝试列出一个资源组中的所有虚拟机,根据这个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禁止响应
任何想法? !
你得到这个错误的原因是因为你试图使用Azure资源管理器(ARM) API使用令牌获得你的应用程序,但应用程序没有访问权限来管理你的订阅。您需要做的是为此订阅中的应用程序分配适当的角色。
请看看我在这里对问题的回答:创建流分析作业时授权失败,我描述了两种方法,可以将角色分配给应用程序。