我正在将Web App / API天蓝色应用程序用于Web应用程序,并使用带有client_id和client_secret的授权授予流来获取访问/刷新令牌(使用rest API),一切正常,除了具有90天后过期。 期望有一个Azure_Documents中所述的,永不过期(除非明确吊销)的refresh_token。
这是Microsoft AzureAD文档所说的: (https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-configurable-token-lifetimes#refresh-tokens)
使用机密客户端刷新令牌的令牌生存期机密 客户端是可以安全存储客户端密码的应用程序 (秘密)。他们可以证明请求来自受保护的 客户端应用程序,而不是来自恶意行为者。例如,一个网站 应用是机密客户端,因为它可以在以下位置存储客户端机密 Web服务器。它没有暴露。因为这些流量更多 安全的,发布给这些流的刷新令牌的默认生存期 直到被吊销,无法通过使用策略进行更改,也不会 撤销了自愿密码重置。
这是基于RFC6749的机密客户端的定义: (https://tools.ietf.org/html/rfc6749#section-2.1)
能够维护其机密性的客户 凭据(例如,在具有 限制访问客户端凭据),或者能够安全 使用其他方式进行客户端身份验证。
我现在在刷新令牌请求上遇到的错误:
AADSTS700082: The refresh token has expired due to inactivity. The token was issued on 2018-10-19T17:26:59.8511467Z and was inactive for 90.00:00:00.
答案 0 :(得分:2)
您不会用新的令牌代替旧的刷新令牌,只要您调用以使用刷新令牌获取新的Access令牌,该令牌也会提供。
Refreshing the access tokens页对此进行了如下解释。
刷新令牌没有指定的生存期。通常, 刷新令牌的生命周期相对较长。但是,在某些情况下 情况,刷新令牌到期,被吊销或缺少足够的令牌 所需操作的特权。您的应用程序需要期待 并正确处理令牌发行端点返回的错误。
当您收到带有刷新令牌错误的响应时,请丢弃 当前的刷新令牌并请求新的授权码或访问权限 令牌。特别是在授权中使用刷新令牌时 代码授予流程,如果您收到带有 interact_required或invalid_grant错误代码,请放弃刷新 令牌并请求新的授权码。