我正在试验Windows Azure Active Directory。在客户端(桌面)应用程序中,用户输入其凭据并进行身份验证以访问REST服务。我正在使用最新版本的Active Directory身份验证库。在我的场景中,我希望用户一次插入他的凭据,因此我存储刷新令牌并使用它来通过调用AuthenticationContext对象的AcquireTokenByRefreshToken方法来更新访问令牌。 我的问题是:refreshtoken会过期吗?我可以在获得它之后的几天或几周使用刷新时间吗?
答案 0 :(得分:25)
我在移动应用上实施了Azure AD SSO并使用了ADAL Nuget包。在刷新令牌到期时,我的客户几乎没有查询。在与Azure工程团队来回走动,尝试一些事情后,我的发现就是这些。我在blog post here:
中记录了详细信息详情请见this blog post
答案 1 :(得分:2)
解决方案就在这里。
现在可以通过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)
现在可以正式配置刷新令牌到期时间: https://docs.microsoft.com/de-de/azure/active-directory/active-directory-configurable-token-lifetimes
答案 4 :(得分:0)
是的,刷新令牌确实过期了......我不确定,但我相信你可以在天蓝色的WAAD属性设置中设置令牌的TTL或到期时间。我必须检查,但我现在不能访问Azure。