oauth-2.0 - 如何使用自动刷新令牌授予实现 OAuth2 代码流
问题描述
我们刚刚开始使用 ASP.NET Web API 2 并实现了OAuth2客户端凭据令牌授予、资源所有者令牌授予(用于内部应用程序)以及第三方供应商的代码流令牌授予。
对于代码流,当将刷新令牌交换为新的访问令牌和刷新令牌时,原始令牌将从令牌存储中删除并因此失效。资源所有者还可以随时撤销访问令牌及其关联的刷新令牌。
我们的供应商之一将遵循代码流授权,因为要求资源所有者或代表授权访问资源服务器。
供应商随后要求主机服务器自动为每个请求提供一个新的访问令牌和刷新令牌,而不是用正常流程将刷新令牌兑换为新的访问令牌和刷新令牌。
除了为请求提供服务之外,主机 API 还回调客户端域上的预定端点,该端点将提供新的访问令牌和刷新令牌。
不用说,这样的安排在主机 API 中引入了复杂性,它会破坏短期令牌和长期刷新令牌的全部意义,我们可能会实施其他措施来防止令牌劫持和其他类型的攻击。
目前我们的授权服务器和资源服务器是一体的。但是,我们希望将来保持选项打开以将授权服务器与资源分开。
那么问题来了:
- 我们应该考虑这种安排吗?
- 调整到永不过期的访问令牌而不用令牌请求发出刷新令牌是否有意义?
解决方案
推荐阅读
- google-cloud-platform - 即使使用 oidc 服务帐户身份验证,HTTP 云调度程序作业也无法触发云运行
- javascript - 在界面中创建一个函数来格式化日期,以便它可以在渲染中显示
- javascript - React:从列表项的弹出菜单中编辑和删除
- css - 如何在 iOS Safari 中将复选标记的颜色更改为白色?
- javascript - 如何使用 Dexie/IndexDB 从 table.get 获取有效结果
- android - android 应用程序由于低内存杀手而崩溃,但探查器显示其他情况
- python-3.x - python - 如何在Beautiful Soup中从同一类和属性中抓取多个信息,而无需在Python中对find_all函数进行硬编码索引?
- math - 如何在知道 0 点值的情况下缩放两个范围?
- ios - 是否可以更改从 NSURLSessionDelegate:didReceiveChallenge() 生成的重试请求的 HTTP 标头?
- c++ - 使用 Matlab Coder 将 Matlab 代码转换为 C++ - 单元问题