Oauth 2.0 在Azure AD中使用承载令牌刷新

Oauth 2.0 在Azure AD中使用承载令牌刷新,oauth-2.0,azure-active-directory,bearer-token,Oauth 2.0,Azure Active Directory,Bearer Token,我有一个web应用程序,它将承载令牌传递给web API应用程序。然后,该应用程序将要运行的报告排队。根据队列的长度,可能需要10秒或一个多小时才能开始处理该报告。该报告需要访问同样使用Azure AD OAuth保护的其他REST资源 因此,流程是 Web Client --- Bearer Token ---> Web API ---> Queue ---> Report Processor ---> Token Acquired With Client Secr

我有一个web应用程序,它将承载令牌传递给web API应用程序。然后,该应用程序将要运行的报告排队。根据队列的长度,可能需要10秒或一个多小时才能开始处理该报告。该报告需要访问同样使用Azure AD OAuth保护的其他REST资源

因此,流程是

Web Client --- Bearer Token ---> Web API ---> Queue ---> Report Processor  ---> 
Token Acquired With Client Secret with UserAssertion ---> REST Data Source

由于原始的承载令牌将在60分钟后过期,因此我需要能够在实际生成报告时刷新用户的承载令牌。我是否应该让Web客户端在请求运行报表时也传递实际的刷新令牌?

刷新令牌不应发送到正常刷新流之外的任何地方。 我建议您在收到传入令牌后立即使用它来触发一个断言流(我假设您指的是UserAssertion流)。这将为您的后端获得一个新的访问令牌和一个刷新令牌。刷新令牌持续14天:当您从队列中选择put请求时,刷新令牌将允许您获取新的访问令牌

用你的符号,你会

Web Client --- Bearer Token ---> Web API ---> Token Acquired With Client Secret with UserAssertion ---> Queue ---> Report Processor  ---> 
Token Acquired With refresh token grant ---> REST Data Source
如果您在接收到请求后和推入队列之前无法进行任何处理,则另一种方法是使用应用程序权限—这将允许您随时为后端获取令牌