来自Azure Bot Service的OAuth刷新令牌

时间:2018-09-11 13:53:18

标签: botframework

我正在使用Azure Bot服务中的OAuth功能来访问Microsoft Graph。

我需要与SharePoint Online REST端点进行通信。通常,我会从AAD请求并缓存刷新令牌,然后使用该刷新令牌获取第二个访问令牌,并将sharepoint.com地址指定为资源。

在Azure Bot服务中使用OAuth连接时,可以通过调用对话框上下文的GetUserToken方法来获取访问令牌。但是,我无法从Bot服务获取刷新令牌。

问:刷新令牌是作为BotBuilder库的一部分公开还是以其他某种方式公开?

1 个答案:

答案 0 :(得分:0)

您必须在您的OAuth Bot配置和Azure机器人注册中的机器人API权限中包括 offline_access 范围(转到AAD-应用程序注册(预览)-API权限 >)。

否则,如果机器人服务在default的60分钟后过期,令牌服务将无法刷新令牌。

有关范围的更多信息,请参见here

进一步的解释:

令牌请求中未包含 offline_access 范围,不会提交刷新令牌,而仅提供访问令牌。在包含范围的情况下,刷新令牌将提供给调用方,调用者(在本例中为bot服务)可用于在任何时候获取刷新令牌,直到刷新令牌本身到期为止。