【发布时间】:2018-07-23 04:25:11
【问题描述】:
我正在使用this architecture 创建一个 Outlook 插件。
我正在尝试处理 Azure Active Directory 访问令牌过期的情况。根据the official documentation,token 的生命周期为 1 小时。
所以我正在考虑更改令牌的生命周期,如this question 中所述。但我不能这样做,因为我无权编辑 Azure 策略。另外,我相信有一种更简洁的方法来测试这种情况。
如何测试/调试这个场景?
【问题讨论】:
-
您要测试流程的哪一部分?使用过期令牌调用 API?让您的程序检测到它已过期并将其交换为刷新令牌?您是否为此使用了库?
-
@ShawnTabrizi 我不想在我的应用程序中创建一个计时器来处理令牌过期问题。因此,我正在尝试使用过期令牌测试调用 Graph API 并检测它是否已过期并将其交换为刷新令牌。在这种情况下,我可以获得正确的过期令牌错误(错误代码和消息),因此我可以通过获取新的访问令牌在我的程序中正确处理它。如果我有任何其他错误,我将向最终用户显示正确的错误消息。我对 AAD 和 Graph API 使用带有 Ajax 调用的纯 JavaScript
-
不需要创建定时器。当您获得访问令牌时,有效负载的一部分是
expires_invariable,它会告诉您令牌何时到期。您只需将其存储为会话变量,并在调用之前对其进行检查。 -
@ShawnTabrizi 这是否意味着无法测试过期令牌场景?访问令牌不可能在 Azure AD 端过期(出于任何原因)吗?所以我的会话变量不再有效。
-
我并不是说无法测试过期令牌场景,但这取决于您在哪里测试以及测试什么。例如,您不能在过去使用我们的令牌服务生成令牌。您可以调整令牌生命周期,但您提到您无权访问它。无论如何,您都可以连接您的代码以将令牌声明中的时间视为“过期”,然后让您的代码执行。您不能将过期令牌伪造给下游 API,因为它不会由 STS 签名。
标签: azure oauth-2.0 azure-active-directory access-token