Windows Azure Active Directory - refreshtoken到期

时间:2014-02-26 13:38:58

标签: .net azure-active-directory

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

5 个答案:

答案 0 :(得分:25)

我在移动应用上实施了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
  6. 更改此值

    详情请见this blog post

答案 1 :(得分:2)

解决方案就在这里。

tokenRefreshExtensionHours

现在可以通过App Service的资源管理器配置tokenRefreshExtensionHours。

  

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

感谢cgillum.

答案 2 :(得分: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 forums中提到过期令牌有效期约为80天。

答案 3 :(得分:1)

答案 4 :(得分:0)

是的,刷新令牌确实过期了......我不确定,但我相信你可以在天蓝色的WAAD属性设置中设置令牌的TTL或到期时间。我必须检查,但我现在不能访问Azure。