使用 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.
我有一个使用 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.