azure-active-directory - 使用代表流刷新令牌(使用 Teams 单点登录)
问题描述
我有一个使用 Microsoft Teams 的单点登录方案。请参阅文档中的完整描述:https ://docs.microsoft.com/en-us/microsoftteams/platform/tabs/how-to/authentication/auth-aad-sso
我通过将“团队”令牌“交易”为访问令牌来获得访问令牌。
我的问题是,如何刷新此访问令牌?在单点登录场景中,不返回“refrehs_token”(?),因此正常的 OAuth2 刷新流程似乎是不可能的。
想象一下,我交易了一次,并获得了 2 小时后到期的访问令牌。我用它来访问图形 API(或其他),然后令牌过期。
我应该怎么做才能获得新的访问令牌?我可以向 Teams 索要一个新的“团队”代币并在旧代币过期的情况下再次交易吗?Teams App 负责刷新自己的令牌,对吗?我什么时候应该这样做(当我得到“拒绝访问”时,或者只是当我看到令牌已过期时?
解决方案
看起来我找到了原因 - 你必须作为范围请求传递offline_access
,然后你才能取回refresh_token
. 这实际上是我的问题,并且记录在案,我只是没有仔细阅读:
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-on-behalf-of-flow
refresh_token请求的访问令牌的刷新令牌。当前访问令牌过期后,调用服务可以使用此令牌请求另一个访问令牌。仅当请求了offline_access范围时才提供刷新令牌。
推荐阅读
- python-3.x - 如何平滑二值图像中的轮廓/边界?
- amazon-web-services - AWS:使用 EC2 实例创建来触发 lambda
- javascript - 使用 webpack 和 babel-loader 高效导入导出模块 - 摇树不工作
- command-line - Mcafee Commadline 工具 (vscl) 需要很长时间才能加载
- javascript - Changing a list of element from Selenium in Python
- c - How to print binary tree?
- javascript - 超链接中的 javascript 引用?
- javascript - List