【问题标题】:Windows Azure Active Directory - expiration of refreshtokenWindows Azure Active Directory - refreshtoken 过期
【发布时间】:2014-03-29 09:12:41
【问题描述】:

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

【问题讨论】:

  • 你知道如何更改过期时间吗?
  • AAD 令牌在 1 小时后过期。来自AAD的主谋,“今天没有办法改变默认”twitter.com/vibronet/status/461260062204239872
  • @Daniele,你是如何获得新的访问令牌的?你是在幕后做的吗?还是 adal.js 做的?

标签: .net azure-active-directory


【解决方案1】:
【解决方案2】:

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

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

详情请见this blog post

【讨论】:

【解决方案3】:

解决方案就在这里。

tokenRefreshExtensionHours

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

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

感谢 cgillum。

【讨论】:

    【解决方案4】:

    我使用 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 forums 中提到过期令牌的有效期约为 80 天。

    【讨论】:

      【解决方案5】:

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

      【讨论】:

      猜你喜欢
      • 2022-06-15
      • 2020-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 2020-03-27
      • 1970-01-01
      相关资源
      最近更新 更多