同时,我的应用只访问1个用户帐户的1个访问令牌 - Web API(OAuth2)

时间:2016-12-14 02:28:17

标签: asp.net asp.net-web-api oauth oauth-2.0 oauth2

我使用Oauth2来保护我的Web API。我的问题是:

帐户“A”登录的用户“A”,授予访问令牌“A”。用户“B”登录帐户“A”,授予访问令牌“B”。然后访问令牌“A”,“B”都可以访问我的资源(相同的帐户“A”)。

如何更改此行为,以便在用户“B”登录时,授予访问令牌B并且访问令牌“A”已过期。

谢谢。

2 个答案:

答案 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