使用Azure管理API进行身份验证

时间:2019-09-04 23:55:37

标签: azure rest active-directory azure-authentication

一段时间以来,我们一直在使用Azure API进行各种操作。例如,这是我们使用https://docs.microsoft.com/en-us/rest/api/servicebus/namespaces/createorupdate的API之一,正如文档中提到的,我们向其发送请求的URL是:

  

management.azure.com

最近,我们需要开始通过API针对我们的Cloud Services执行。我注意到该URL与我们以前使用的URL不同-

  

management.core.windows.net

此处https://docs.microsoft.com/en-us/rest/api/compute/cloudservices/rest-list-cloud-services

首先,有人可以解释一下两者之间的区别吗?

第二,如何使用租户/客户端/秘密密钥对management.core.windows.net进行身份验证?

这是我一直在使用第一个URL进行身份验证的以下代码。

var context = new AuthenticationContext($"https://login.microsoftonline.com/{Constants.AZURE_TENANT_ID}");
var result = context.AcquireTokenAsync(
                        "https://management.azure.com/",
                        new ClientCredential(Constants.AZURE_MANAGEMENT_API_CLIENT, Constants.AZURE_MANAGEMENT_API_SECRET)
                    ).GetAwaiter().GetResult();
return result.AccessToken;

我试图简单地替换URL,但这没有用。我收到以下错误:

enter image description here

1 个答案:

答案 0 :(得分:1)

  

有人可以解释一下这两者之间的区别吗?

Azure Resource Manager提供程序API使用https://management.azure.com/,Azure经典部署模型使用https://management.core.windows.net/

  

如何使用以下方式针对management.core.windows.net进行身份验证   租户/客户/秘密密钥?

如果设置正确,您应该可以获取访问令牌,您可以重试。

enter image description here