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

问题描述 投票:0回答:1

我有一个Azure Bot安装程序,该安装程序使用oAuth2对用户进行身份验证。由此,我获得一个访问令牌。我也有一个使用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);

我是否误解了承载令牌的目的或功能?

authentication azure-active-directory bearer-token azure-bot-service azure-authentication
1个回答
0
投票

据我所知,您只是从Azure Bot获取访问令牌,但是想从Azure Bot请求到另一个Web应用程序。因此,您需要从Web应用程序中获取另一个访问令牌,并将该访问令牌用作承载令牌。

另一种方式,您不需要询问另一个访问令牌。您可以通过参考此tutorial刷新令牌,但是您需要更改“ scope”属性,将其从Azure Bot的范围更改为Web应用程序的范围。

更新:

根据您的要求,您需要使用OAuth 2.0代表流程,请参阅此tutorialenter image description here

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

© www.soinside.com 2019 - 2024. All rights reserved.