C# Azure无效的AccessToken

C# Azure无效的AccessToken,c#,.net,azure,token,C#,.net,Azure,Token,我正在尝试使用Microsoft.Azure.Management.Resources库来管理某些Azure资源。我已经在Azure广告中注册了应用程序,并授予了所有权限。我获取了它的ApplicationId和Secret+tennanti和SubscriptionId,并尝试获得如下AccessToken: var clientCredential = new ClientCredential(_model.DeploymentDetails.CliendId, _model.Deploym

我正在尝试使用Microsoft.Azure.Management.Resources库来管理某些Azure资源。我已经在Azure广告中注册了应用程序,并授予了所有权限。我获取了它的ApplicationId和Secret+tennanti和SubscriptionId,并尝试获得如下AccessToken:

var clientCredential = new ClientCredential(_model.DeploymentDetails.CliendId, _model.DeploymentDetails.ClientSecret);    
var context = new AuthenticationContext("https://login.windows.net/"+model.DeploymentDetails.TennantId);
_accessToken = context.AcquireTokenAsync("https://management.azure.com/", clientCredential).Result.AccessToken;
_resourceManagementClient =  new ResourceManagementClient(new TokenCloudCredentials(_model.DeploymentDetails.SubscriptionId,_accessToken));
我有一些代币。但当我尝试这样使用它时:

var x = _resourceManagementClient.ResourceGroups.List(...);
我得到这个错误:

其他信息:InvalidAuthenticationToken:收到的访问令牌无效:至少应存在声明“puid”或“altsecid”或“oid”中的一个。如果您作为应用程序访问,请确保在租户中正确创建了服务主体

有什么想法吗


非常感谢。

据我所知,Microsoft.Azure.Management.Resources.dll实现了ARM API。我们需要将应用程序分配给角色,然后我们可以共同使用令牌。有关如何将应用程序分配给角色的更多信息,请参阅。这还有获取AceessToken的更多详细步骤。

如果您需要检查访问令牌的内容以验证声明,您可以使用或。您是否碰巧在新门户中创建了Azure AD应用程序?