10

我正在试验 Windows Azure Active Directory。在客户端(桌面)应用程序中,用户输入其凭据并进行身份验证以访问 REST 服务。我正在使用最新版本的 Active Directory 身份验证库。在我的场景中,我希望用户插入他的凭据一次,因此我存储刷新令牌并通过调用 AuthenticationContext 对象的 AcquireTokenByRefreshToken 方法使用它来更新访问令牌。我的问题是:刷新令牌会过期吗?我可以在获得刷新令牌数天或数周后使用它吗?

4

5 回答 5

31

我在移动应用上实现了 Azure AD SSO,并使用了 ADAL Nuget 包。我的客户很少有关于刷新令牌到期的查询。在与 Azure 工程团队来来回回并尝试了一些事情之后,这是我的发现。我在这里的博客文章中记录了详细信息:

  1. Azure AD SSO访问令牌在 1 小时后过期
  2. 您可以使用 Azure AD 刷新令牌来刷新您的 AccessToken。
  3. 刷新令牌在 72到期。
  4. Azure 允许使用刷新令牌刷新访问令牌,最长期限为 90 天(从颁发令牌的初始日期算起)。这意味着 90 天后,Azure 将对用户进行身份验证以再次登录。(无法确认对此的任何更改)
  5. 刷新令牌的过期时间默认设置为 72 小时。这现在是可配置的。您可以根据此处的讨论更改此值

完整的细节可以在这篇博文中找到

于 2014-12-04T23:28:53.883 回答
2

解决方案在这里。

tokenRefreshExtensionHours

现在可以通过应用服务的资源管理器来配置 tokenRefreshExtensionHours。

“使用资源浏览器管理站点的身份验证设置,您可以将名为“tokenRefreshExtensionHours”的设置添加到 {site}/config/authSettings.properties 并将其设置为允许使用过期令牌进行刷新的小时数。“

感谢 cgillum。</p>

于 2016-08-26T10:10:01.923 回答
1

我使用 Fiddler 捕获了对 Azure Active Directory (AAD) 的调用,并找到了一个 JSON 响应,其中包括 access_token、expires_in 和 expires_on、id_token、refresh_token、resource、scope 和 token_type (Bearer)。

expires_on 等于 1398790050。所以我去了Wolfram Alpha,询问这是 1970 年之后的秒数并增加了 2 小时(我在 UTC+2 时区)。访问令牌有效期为 1 小时。在TechNet 论坛中提到过期令牌的有效期约为 80 天。

于 2014-04-29T16:10:29.007 回答
1

现在可以正式配置刷新令牌过期时间: https ://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-configurable-token-lifetimes

于 2016-12-14T11:23:38.840 回答
0

是的,刷新令牌确实过期了。我不确定,但我相信您可以在天蓝色的 WAAD 属性设置中设置令牌的 TTL 或过期。我必须检查一下,但目前我无法访问 Azure。

于 2014-02-26T13:59:19.023 回答