我正在开发一个时间触发的服务,从各种API中获取数据并将其写入数据库。我需要访问的API之一是Microsoft资源管理API。然而,问题是它的端点都提到了OAuth2.0显式授权流--这需要用户登录。由于我正在创建一个自动化服务,因此无法使用该流程。
例如,列表资源组端点(https://learn.microsoft.com/en-us/rest/api/resources/resource-groups/list)提到了具有user_impersonation作用域的Oauth2隐式授权流:
https://i.stack.imgur.com/0XmIW.png
是否有可能从这个API作为服务获取数据,如果有,我该如何去做呢?是否有其他方法可以从Azure平台获取资源组和资源的列表?
我确实成功地利用了OAuth2.0客户端可信授权流来使用Graph API作为服务进行身份验证,但在这里似乎不可能。
1条答案
按热度按时间iyr7buue1#
要调用Azure管理REST API,需要生成访问令牌,范围为**
https://management.azure.com/.default
。我注册了一个Azure AD应用,并添加了API权限**,如下所示:
请确保在订阅的上述服务主体中添加合适的RBAC角色。
在我的例子中,我在订阅下的服务主体中添加了**
Reader
**角色,如下所示:现在,我通过Postman使用客户端凭证流生成了access token,参数如下:
回复:
当我使用该访问令牌调用下面的管理API查询时,成功得到资源组列表的响应如下:
响应: