我使用Oauth2来保护我的Web API。我的问题是:
帐户“A”登录的用户“A”,授予访问令牌“A”。用户“B”登录帐户“A”,授予访问令牌“B”。然后访问令牌“A”,“B”都可以访问我的资源(相同的帐户“A”)。
如何更改此行为,以便在用户“B”登录时,授予访问令牌B并且访问令牌“A”已过期。
谢谢。
答案 0 :(得分:0)
除非您想要更改Web API以回调授权服务器并检查令牌是否已被撤销,否则这并不容易。此外,您必须根据特定规则更改您的身份验证服务器以撤消令牌。
这违背了Oauth2.0规范的要求,因为资源服务器(您的web api)在拥有有效令牌(即正确签名,未过期)时不应该向auth服务器发出任何回调和适当的范围)。
我建议Oauth2.0可能不是这种情况下的最佳解决方案。
答案 1 :(得分:0)
行为---是否发布新的访问令牌使现有的访问令牌无效 - 取决于OAuth 2.0服务器实现。 OAuth 2.0规范(RFC 6749)不对行为施加任何限制。
实际上,某个OAuth 2.0服务器实现提供了一项功能,使服务器管理员能够配置该行为。有关详细信息,请参阅this answer。