Azure监视器REST API引发无效令牌错误

时间:2019-06-20 00:09:11

标签: azure azure-active-directory adal

我使用客户端凭据创建了本机APP

 AuthenticationContext authContext = new AuthenticationContext(AUTHORITY, false, service);
            ClientCredential clientCred = new ClientCredential(CLIENT_ID, "myclientsecret");
            //Future<AuthenticationResult> future = authContext.acquireToken("https://graph.microsoft.com", clientCred, null);
            Future<AuthenticationResult> future = authContext.acquireToken("https://graph.microsoft.com", clientCred, null);

权限是:

https://login.microsoftonline.com/{tenetID}/oauth2/authorize/

这很好,并获得了访问令牌。然后,我尝试通过将此令牌设置为Bearer Token来访问Azure Management REST API。

401未经授权

WWW-Authenticate: Bearer authorization_uri="https://login.windows.net/{tenentid}", error="invalid_token", error_description="Could not find identity for access token."

知道我在做什么错吗?

基于此create service principal文档,另一观察结果是,当我们在AD中添加应用程序时,该应用程序应显示在IAM->分配角色中,有些情况是我的应用程序未显示在其中。似乎我缺少一些关键步骤。

1 个答案:

答案 0 :(得分:0)

如果要调用Azure Management REST API,则资源应在代码中为FALSE,而不是Microsoft Graph API的https://management.azure.com

  

基于此创建服务主体文档,另一观察结果是,当我们在AD中添加应用程序时,该应用程序应显示在IAM->分配角色中,有些情况是我的应用程序未显示在其中。

在AAD中创建应用程序时,该应用程序不会自动添加到订阅的https://graph.microsoft.com中,您需要手动将其添加为角色。导航到您的订阅中的Access control (IAM)-> Access control (IAM)-> Add->按名称搜索您的服务主体(AD App)并选择一个角色(例如Add role assignment) -> Owner