Azure resource manager Azure资源管理器.Net API无法获取资源组

Azure resource manager Azure资源管理器.Net API无法获取资源组,azure-resource-manager,Azure Resource Manager,我正在尝试编写一个独立程序,使用Azure资源管理器.Net库访问Azure资源组详细信息。根据文档,它在每个资源管理器请求中都需要Azure AD身份验证和令牌。所以我在AD中创建了一个web应用程序,配置了密钥并使用它生成令牌 但下面的代码失败了,即使我在请求中以承载者的身份传递这个令牌 m_resourceClient = new ResourceManagementClient(connection.GetCredentials()); m_resourceClient.HttpClie

我正在尝试编写一个独立程序,使用Azure资源管理器.Net库访问Azure资源组详细信息。根据文档,它在每个资源管理器请求中都需要Azure AD身份验证和令牌。所以我在AD中创建了一个web应用程序,配置了密钥并使用它生成令牌

但下面的代码失败了,即使我在请求中以承载者的身份传递这个令牌

m_resourceClient = new ResourceManagementClient(connection.GetCredentials());
m_resourceClient.HttpClient.DefaultRequestHeaders.Authorization = new     AuthenticationHeaderValue("bearer", connection.GetAccessToken());
***ResourceGroupGetResult resourceGroupList = m_resourceClient.ResourceGroups.Get("PraveenTest")*** ;
错误消息:

AuthorizationFailed: The client '5919f7f9-####-####-####-074456eba98c' with object id '5919f7f9-####-####-####-074456eba98c' does not have authorization to perform action 
'Microsoft.Resources/subscriptions/resourcegroups/read' over scope '/subscriptions/1f94c869-####-####-####-055e8ae15be3/resourcegroups/TestGroup'.

您的承载令牌有效,但您还需要授予应用程序对资源组的访问权

您可以使用以下PowerShell命令执行此操作:

New-AzureRmRoleAssignment 
   -ObjectId '5919f7f9-####-####-####-074456eba98c' `
   -ResourceGroupName TestGroup `
   -RoleDefinitionName Reader
如果您使用的是Azure PowerShell版本<1.0,则cmdlet为
New AzureRoleAssignment


我建议对ARM请求进行身份验证。

非常感谢BenV。我是Azure的新手。您的建议已解决该问题。我尝试了此操作,但当我执行此命令时,在提示符中再次出现相同的错误。更新:在MS Azure Powershell版本1.0.1中,New AzureRoleAssignment现在是New AzureRoleAssignment Saved my day!!在Azure门户中尝试相同的方法无效。使用PowerShell时没有问题对象id实际上是什么?