比较Oauth令牌和先前保存的令牌
问题描述:
我正在开发一个项目,目前我正在尝试添加额外的安全级别。这个想法是,当一个Oauth令牌生成时,我们将它与保存在我们数据库中的一个进行比较,如果它们不匹配,那么用户被拒绝。我的问题是,我试图在认证流程中直接从/ token端点向最终用户发送令牌之前进行比较,但我无法找到只在认证请求I期间访问生成的令牌的位置当请求被最终授予时看到它。只需要一个“access_token”属性隐藏的指南。比较Oauth令牌和先前保存的令牌
答
我不能完全不知道你正在使用什么库。如果是IdentityServer3,我不知道有这样做的方法,但是出于几个原因你不应该有任何问题。
- 直到用户通过身份验证后才能发布令牌。也许我错过了一些东西,但是当你需要在这一点上拒绝用户时,我无法想到这种情况。
- 每个标记都应该是唯一的,所以您不应该期望生成已经存在的标记。
我还想指出,如果您使用自包含令牌,则不需要保留它们,因为它们可以仅使用证书的公钥进行验证。
如果你可以澄清你的意思是额外的安全性,我可能会想出更有用的东西,但希望这是有帮助的。
我在web api平台上使用Microsoft.Owin.Security.OAuth。基本上我试图跟踪令牌,所以当用户被删除或处于活动状态时,该令牌将与先前保存的争用对象交叉引用。 – savage305
明白了。我想我以前的观点仍然存在,但我认为你可以以不同的方式解决问题。您在启动类中配置“OAuthAuthorizationServerOptions”是否正确?它有一个'Provider'选项,看起来您可以执行以确定授权如何发生。如果是这种情况,那么你可以在那里添加一个检查来查看用户是否被删除或不活动(或任何其他定制逻辑)并返回所需的响应。我预计这发生在新的令牌生成之前,因此不需要比较到这种情况下的老牌(尽管实际上这是不可能的)。 –