我有一个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);
我是否误解了承载令牌的目的或功能?
据我所知,您只是从Azure Bot获取访问令牌,但是想从Azure Bot请求到另一个Web应用程序。因此,您需要从Web应用程序中获取另一个访问令牌,并将该访问令牌用作承载令牌。
另一种方式,您不需要询问另一个访问令牌。您可以通过参考此tutorial刷新令牌,但是您需要更改“ scope”属性,将其从Azure Bot的范围更改为Web应用程序的范围。
更新:
根据您的要求,您需要使用OAuth 2.0代表流程,请参阅此tutorial。
在上面的流程图中,“ Web API A”代表您的Azure Bot,而“ Web API B”代表您的Web应用程序。您需要获取Web API A的第一个访问令牌,然后获取Web API B的第二个令牌。之后,您可以请求Web API B。