【问题标题】:How to get access to Azure Resource Management REST API?如何访问 Azure 资源管理 REST API?
【发布时间】:2017-03-04 16:17:28
【问题描述】:

我一直在尝试访问 Azure 公开的 REST API,例如“https://management.azure.com/subscriptions?api-version=2016-06-01”,但无论我多么努力,我总是得到“未经授权”的响应。我为这样的通话获取了一个更重要的令牌:

AuthenticationContext authenticationContext = new AuthenticationContext(string.Format("https://login.windows.net/{0}", azureADTenantId), false);
ClientCredential clientCred = new ClientCredential(azureADAppClientId, azureADAppClientSecret);
AuthenticationResult authResult = authenticationContext.AcquireTokenAsync("https://management.azure.com", clientCred).Result;
return authResult;

这利用了 MS 的 ADAL NuGet 包。我确实得到了一个我这样传递的令牌:

httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(authResult.AccessTokenType, authResult.AccessToken);

之后,我使用上述 HttpClient 调用上述 URL,然后是 401 响应。怎么了?仅供参考,我按照以下指南设置用于建立连接的应用程序:https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal

【问题讨论】:

  • 请尝试在您的访问令牌前假装“Bearer”。 “Bearer”和访问令牌之间应该有一个空格。
  • @GauravMantri 标头是用新的 AuthenticationHeaderValue 类构建的,是正确的。
  • 啊....我不知道。谢谢你让我知道。您可以尝试的另一件事是将“/”附加到“management.azure.com”。如果这没有帮助,那么您阅读 Web 异常的响应文本,您应该会看到有关该错误的更多详细信息。

标签: azure


【解决方案1】:

我们已经找到了问题:显然 Azure 中的“读者”角色存在错误并且不授予访问权限。最低要求的访问级别是“贡献者”,以便能够从 REST 服务中读取数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-23
    • 2019-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-23
    • 2017-04-05
    相关资源
    最近更新 更多