0

我想调用https://management.azure.com/tenants?api-version=2020-01-01 api 调用以获取我的项目中的租户列表,使用 asp.net 和 c# ,但无法获取有效链接. 如果可能的话,分享这个样本。

我知道如何调用 api,问题是我没有得到正确的响应,我参考下面的链接来调用 api,但是在调用组织 api 后得到异常'远程服务器返回错误:(401)未经授权。'

我已经使用 GetAccessToken() 方法获取了 Token

https://msftstack.wordpress.com/2016/01/03/how-to-call-the-azure-resource-manager-rest-api-from-c/

我从 Token 得到以下信息

在此处输入图像描述

4

1 回答 1

0

要调用此 api,您需要为此 api 生成访问令牌。要生成此令牌,您需要一个具有特定 api 权限的 azure 广告应用。对于您的 401 错误,它可能具有错误的权限或不包含范围。您可以调试代码并复制访问令牌并转到https://jwt.io/以生成它。

检查您的令牌是否具有正确的 aud https://management.azure.com和范围user_impersonation

这是此 api 的详细信息,我将向您展示我的详细信息。

在此处输入图像描述 在此处输入图像描述

由于委托的权限,需要通过ropc流或auth代码流的用户生成token(这不仅意味着azure ad app,在生成access token的过程中还需要使用用户名和密码)。

我想你可以在这个官方文档中找到一个示例。

如果您想在 Angular 应用程序中生成令牌并调用 api,可以参考此示例,请注意示例调用图形 api

在此处输入图像描述

如果您更喜欢在后端应用程序中调用 api,您可以将令牌发送到后端程序,因为守护程序应用程序仅支持客户端凭据流。

于 2021-04-04T15:51:27.533 回答