尽管使用了机密客户端,Azure刷新令牌也会过期

时间:2019-01-29 18:43:03

标签: azure oauth-2.0 azure-active-directory refresh-token

我正在将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.

1 个答案:

答案 0 :(得分:2)

您不会用新的令牌代替旧的刷新令牌,只要您调用以使用刷新令牌获取新的Access令牌,该令牌也会提供。

Refreshing the access tokens页对此进行了如下解释。

  

刷新令牌没有指定的生存期。通常,   刷新令牌的生命周期相对较长。但是,在某些情况下   情况,刷新令牌到期,被吊销或缺少足够的令牌   所需操作的特权。您的应用程序需要期待   并正确处理令牌发行端点返回的错误。

     

当您收到带有刷新令牌错误的响应时,请丢弃   当前的刷新令牌并请求新的授权码或访问权限   令牌。特别是在授权中使用刷新令牌时   代码授予流程,如果您收到带有   interact_required或invalid_grant错误代码,请放弃刷新   令牌并请求新的授权码。