如何从 Azure 活动目录 (V2) 获取访问令牌以允许访问 Azure 服务总线?

How do you get an access token from azure active directory (V2) to allow access to Azure Service Bus?

我一直在按照本教程获取 azure 服务总线的访问令牌,以便我可以 post 使用 Postman 将消息发送到队列:

https://docs.microsoft.com/en-us/rest/api/servicebus/get-azure-active-directory-tokenTh

按照示例进行操作,我可以获得访问令牌。但是,该示例使用较旧的 v1 令牌端点 eg

https://login.microsoftonline.com/{{tennant-id}}/oauth2/token

我想使用当前的 v2 端点,例如

https://login.microsoftonline.com/{{tennant-id}}/oauth2/v2.0/token

但是当我切换时出现这个错误:

AADSTS70011: The provided request must include a 'scope' input parameter. The provided value for the input parameter 'scope' is not valid. The scope https://servicebus.azure.net is not valid.

我假设范围的名称一定已经更改,但我找不到任何关于 azure 服务的范围的文档。我尝试了很多东西,例如 https://servicebus.windows.net https://myqueue.servicebus.windows.net 并用谷歌搜索,但我什么也没找到。

更新

根据提供的答案,我已将“.default”附加到请求的范围。这并没有解决问题,但已经更改了错误消息我现在在 postman 控制台中得到错误:invalid_client。

我正在尝试使用 postman“获取新访问令牌”功能并将其设置为这样

[

更新 2

上次更新中的授权类型错误 - 应该是客户端凭据,然后它将起作用。

大多数情况下,您可能错过了在 scope 参数中添加 .default 。请尝试为范围参数值附加 https://servicebus.azure.net/.default 的 .default。

当使用 client credential flow, you need to use scope instead of resource in the request body, and pass the /.default 到 url 的 v2.0 端点时,它应该是 https://servicebus.azure.net/.default.

样本: