我试图通过他们的REST API查询应用程序洞察力。我在获取令牌时卡住了。
我已经使用Azure Application Insights中的API访问刀片创建了一个API密钥:
这将为您提供一个应用程序ID和一个API密钥。
我已经用以下内容填充了 Postman :
url: https://login.microsoftonline.com/<Our Tenant ID>/oauth2/token
tenant: <Our Tenant ID>
client_id: <The Application ID from the API Access screen>
scope: https://api.applicationinsights.io/.default
client_secret: <The API Key from the API Access screen>
grant_type: client_credentials
所有这些都摘自他们的文档页面,网址为:https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-client-creds-grant-flow#get-a-token
错误如下:
"error": "unauthorized_client",
"error_description": "AADSTS700016: Application with identifier '<application ID from API Access screen>' was not found in the directory '<My Company Name>'. This can happen if the application has not been installed by the administrator of the tenant or consented to by any user in the tenant. You may have sent your authentication request to the wrong tenant.\r\nTrace ID: 57f78a92-fe94-40e3-a183-e3002be32801\r\nCorrelation ID: 0ab8e3ec-655d-44aa-93fa-4d3941862d11\r\nTimestamp: 2022-11-30 15:04:20Z",
我检查了我们公司的Azure管理员,我肯定会把这个发送给正确的租户。而且他为我创建了另一个密钥,所以也不是这样。
- 谢谢-谢谢
1条答案
按热度按时间h5qlskok1#
我尝试在我的环境中重现相同的结果,结果如下:
我在Azure Application Insights中从API访问刀片创建了一个**
API key
**,如下所示:当我尝试通过Postman使用以下参数获取令牌时,我得到了相同的错误,如下所示:
回应:
如果要使用API密钥查询应用程序细节,不需要单独生成 * 令牌 。
不包含 token,您可以通过包含*
x-api-key
**头直接查询应用洞察,如下所示:回应:
仅当你要通过Azure AD对你的API进行身份验证时,你当前遵循的过程才有效。在这种情况下,你可以通过向已注册的Azure AD应用程序授予所需的角色和作用域来生成
access token
。但是,如果您的要求是使用API密钥,您可以通过简单地包含**
x-api-key
**标头来运行任何查询,以便进行授权。