azure - Azure 管理 API 上的 JWT token 问题

标签 azure

我一直在尝试使用 Azure 服务管理 API 来列出托管服务,但没有成功。

首先,我能够使用 PowerShell 设置身份验证,如 Microsoft 文档所述:https://msdn.microsoft.com/en-us/library/azure/dn790557.aspx

我的第一步是使用 OAuth2 向此 URL 发出 POST 请求来请求访问 token :

https://login.windows.net/<MY_TENANT_ID>/oauth2/token

并传递这些参数:

grant_type: client_credentials
client_id: <THE_CLIENT_ID_OF_THE_APP_REGISTERED_THROUGH_POWERSHELL>
client_secret: <THE_PASSWORD_OF_APP_REGISTERED_THROUGH_POWERSHELL>
resource: https://management.core.windows.net

因此,我收到了有效的响应以及响应中包含的 access_token。到目前为止一切顺利。

然后,我想对管理API进行简单的调用;我想列出我的托管服务(云服务),因此我向此 URL 发出 GET 请求:

https://management.core.windows.net/<MY_SUBSCRIPTION_ID>/services/hostedservices

包括以下 header :

Authorization: Bearer <THE_ACCESS_TOKEN_RECEIVED_IN_THE_PREVIOUS_STEP>
x-ms-version: 2014-10-01 (I've also tested with different versions)

但是,我得到的是 401 Unauthorized 错误,并显示以下消息:

The JWT token does not contain expected audience uri 'https://management.core.windows.net/'

我还尝试了直接在 Azure 门户中注册的 native 应用程序(将权限设置为使用服务管理 API)并使用 grant_type =authorization_code 请求 token 。我正确地获取了 access_token 和刷新 token ,但是当我尝试向上述 URL 发出请求时,我收到了相同的错误消息。

顺便说一句,我能够成功使用 Azure Insights API;上述问题与 Azure 服务管理 API 相关。

有人知道我错过了什么吗?

最佳答案

我今天也遇到了同样的问题。使用 '/' https://management.core.windows.net 完成资源 URL

查看资源中的 URL 与错误消息“https://management.core.windows.net”中的 URL 不匹配/'

关于azure - Azure 管理 API 上的 JWT token 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29857968/

相关文章:

sql-server - SQL Server/Azure 门户授予默认 (sysadmin) QUERYTRACEON 权限

azure - 资源组 beginDeleteByName 与 deleteByNameAsync

c# - Azure 表存储 key 延迟变化很大

c# - Azure 存储 - 处理 URL 中的双斜杠

azure - 有什么方法可以获取我的 Azure 应用程序的大致位置?

azure - 相当于 az acr login 的 powershell 是什么

azure - 如何使用 Azure CLI 将应用服务从一个应用服务计划更改为另一应用服务计划

azure - 我应该为静态网站的 Azure Pipeline 的 rootDirectory 指定什么?

node.js - 如何将多个 Azure Active Directory 帐户连接到您的应用程序?

azure - Azure 虚拟机中 MS SQL 的性能