刚访问了链接" http://www.cloudidentity.com/blog/2015/03/20/azure-ad-token-lifetime/"供参考,并发现从Microsoft OAuth2.0收到的refresh_token
只能使用90天的详尽用法,之后我们需要让用户再次验证微软应用< / p>
如果offline_access
仅在接下来的90天内工作,我们如何开发refresh_token
范围的微软应用?
用户可能不会再次访问webapp,他可能需要微软应用程序才能在后台完成工作并达到目的......
我们是否应该通过某种方法(电子邮件,短信,电话)通知用户重新验证微软应用?这对开发人员来说听起来很乏味,对用户来说也不舒服......
是否有任何压倒一切的机制来解决这一难题?请分享任何想法或解决方法,以便我的灵魂可以安静地休息......
答案 0 :(得分:0)
目前还没有一种机制可以在移动服务中检索刷新令牌。这是即将为App Service Mobile Apps启用的功能,但截至目前,它尚未通过基本的LoginAsync(“aad”)流程提供。本文将讨论How to Best handle AAD access tokens in native mobile apps并提供帮助。
如果您需要更好的刷新支持,并且如果您使用的是.NET后端,那么您当然可以使用ADAL。它具有LoginAsync的重载,它还接受访问令牌(作为JSON对象的一部分,在“access_token”键下)。这允许客户端处理刷新操作。
答案 1 :(得分:0)
我们可以在Best Practices for OAuth 2.0 in Azure AD
找到报价刷新令牌没有指定的生命周期。通常,刷新令牌的寿命相对较长。但是,在某些情况下,刷新令牌会过期,被撤销或缺少所需操作的足够权限。客户端应用程序需要正确地期望和处理令牌颁发端点返回的错误。收到带有刷新令牌错误的响应时,请丢弃当前刷新令牌并请求新的授权码或访问令牌。特别是,在授权代码授予流程中使用刷新令牌时,如果收到带有interaction_required或invalid_grant错误代码的响应,则丢弃刷新令牌并请求新的授权代码。
这意味着,当refresh_token
到期时,如果您使用此令牌申请新的access_token
,则会收到错误消息。
因此,您可以在代码脚本中编写错误处理程序,在授权代码授权流程中使用刷新令牌时,如果您收到包含interaction_required
或invalid_grant
错误代码的回复,则需要丢弃刷新令牌并请求新的授权码。