我正在浏览Oauth2文档,并认为这是一种宽容的安全性,因此我尝试使用特殊方案实现JWT令牌,如图片中的移动应用程序与Web API进行通信。
注意:我不喜欢Oauth2刷新令牌的想法,因为它们可能会被盗并允许并行使用(由合法和恶意用户),除非您通过旋转它们来实施盗窃检测(在每次请求时刷新刷新令牌)在这种情况下为什么要使用它们什么?
身份验证流程的工作原理:
问题是:
答案 0 :(得分:0)
OAuth2 refresh tokens并不适合移动客户端使用。使用刷新令牌需要客户端凭据,这些凭据无法安全地存储在移动应用程序中。
刷新令牌用于confidentials客户端(例如服务器端Web应用程序)。它们通常在使用时更新(服务器发回新访问和新刷新令牌)。与访问令牌相反,刷新令牌仅发送到授权服务器,而不是资源(API)服务器。
关于您的身份验证流程。第2步是IMO的薄弱环节。您允许客户端使用过期的令牌生成新的访问令牌。因此,如果我找到您的手机并访问该设备,它将允许我获取新的访问令牌并冒充您。
您可以强制客户端每隔15分钟刷新一次令牌,但是您必须定义在应用关闭或设备关闭时会发生什么?是否可以再次重新验证用户?