使用 Azure Bot Bearer Token 向外部发出 GET 请求 API

Using Azure Bot Bearer Token to make a GET request to external API

我有一个使用 oAuth2 对用户进行身份验证的 Azure Bot 设置。由此,我获得了一个访问令牌。我还有一个使用 oAuth2 身份验证和与 Azure Bot 相同的活动目录的 Web 应用程序。使用此访问令牌作为不记名令牌,我想从 Azure Bot 向我的 Web 应用程序发出 POST 和 GET 请求。

我尝试了以下方法,但似乎我的请求未通过身份验证,因为我没有收到所需的结果。

 RestClient client = new RestClient(BaseURL);
                    RestRequest request = new RestRequest("api/dashboard/GetUserName", Method.GET);
                    request.AddParameter("Authorization",
                    string.Format("Bearer " + tokenResponse.Token),
                                ParameterType.HttpHeader);
                    var response = client.Execute(request);

我是否误解了不记名令牌的用途或功能?

据我了解,您只是从 Azure Bot 获取访问令牌,但您想从 Azure Bot 向另一个 Web 应用程序请求。因此,您需要从 Web 应用程序获取另一个访问令牌并将此访问令牌用作不记名令牌。

反之,您不需要请求另一个访问令牌。可以参考这个tutorial,刷新token但是需要改"scope"属性,把它从Azure Bot的作用域改成从网络应用程序。

更新:

您的需求,需要使用OAuth 2.0代流,请参考此tutorial

在上面的流图中,"Web API A" 代表您的 Azure Bot,"Web API B" 代表您的 Web 应用程序。您需要获取 Web API A 的第一个访问令牌,然后获取 Web API B 的第二个令牌。之后您可以请求 Web API B.