【问题标题】:How do you get an access token from azure active directory (V2) to allow access to Azure Service Bus?如何从 azure Active Directory (V2) 获取访问令牌以允许访问 Azure 服务总线?
【发布时间】:2020-12-10 23:52:26
【问题描述】:

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

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

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

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.nethttps://myqueue.servicebus.windows.net 和谷歌搜索,但我什么也没找到。

更新

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

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

[

更新 2

上次更新中的授权类型错误 - 应该是客户端凭据,然后才能正常工作。

【问题讨论】:

  • 这个问题有更新吗?
  • @JoyWang 我还没有让它工作,但随着进度更新了问题。我正在尝试查找“.default”的文档,以查看它是否需要分配给该服务原则的其他角色,而不是该文章中涵盖的角色。
  • 从截图来看,Grant TypeAuthorization Code,是认证码流,在你提到的文档中,它使用客户端凭证流,你需要把它改成@987654330 @.
  • 呃-谢谢@JoyWang

标签: azure azure-active-directory azureservicebus microsoft-identity-platform


【解决方案1】:

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

【讨论】:

  • 您好,这是正确的答案,谢谢您的回答!我接受了 Joy Wang 的,因为它包含屏幕截图和链接,其他人在谷歌搜索时可能会发现它们更有用。
  • @Twisted,感谢您提及。
【解决方案2】:

使用client credential flowv2.0端点时,需要在请求体中use scope instead of resource,并将/.default传递给url,应该是https://servicebus.azure.net/.default

示例:

【讨论】:

    猜你喜欢
    • 2018-02-17
    • 1970-01-01
    • 2020-05-25
    • 2023-03-19
    • 2018-03-24
    • 1970-01-01
    • 2023-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多