使用令牌在 Azure 应用 url 上调用 WebRequest

Invoke-WebRequest on a Azure App url with token

我有一个来自我的 Azure 应用程序网站的 url。我想做的是使用 token.

对此 url 进行 Web 请求

我设法用与here相同的方法检索到令牌$token。以下命令运行良好

Invoke-WebRequest "https://graph.microsoft.com/v1.0/me" -Headers @{Authorization="Bearer $token"}

然后我试了

Invoke-RestMethod -Uri "myurl" -Headers @{"authorization" = "Bearer $token"}

但我遇到了以下问题:

Invoke-WebRequest : {"code":401,"message":"IDX10511: Signature validation failed. Keys tried: '[PII is hidden]'. \u000akid: '[PII is hidden]'. \u000aExceptions caught:\u000a
'[PII is hidden]'.\u000atoken: '[PII is hidden]'."}

看来签名无效。知道为什么以及如何解决它吗? 谢谢

它不起作用,因为令牌是针对 Microsoft Graph API,而不是您的 API。

要为您的 API 获取访问令牌,请为其应用注册添加一个范围(公开一个 API 选项卡)。 然后在获取令牌时,将该范围的完整值分配给 scope 查询参数。 此完整值将包括 API 应用程序注册的 App ID URI 或客户端 ID + 您为范围定义的值。