首页 文章

在Azure AD中使用Bearer Token刷新

提问于
浏览
2

我有一个Web应用程序将Bearer令牌传递给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客户端在请求运行报告时传递实际的刷新令牌?

1 回答

  • 2

    刷新令牌不应发送到正常刷新流之外的任何位置 . 我建议您在收到后立即使用传入令牌来触发onbehalfof flow(我假设您将其称为UserAssertion流) . 这将为您的后端和刷新令牌提供新的访问令牌 . 刷新令牌持续14天:当您选择从队列中发出请求时,刷新令牌将允许您获取新的访问令牌 .

    使用你的符号,你会有

    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
    

    如果您在接收请求时以及在推入队列之前无法执行任何处理,则替代方法是使用应用程序权限 - 这将允许您随时获取后端的令牌 .

相关问题