【发布时间】:2016-12-19 00:44:34
【问题描述】:
我正在寻找阻止客户共享 oauth 令牌的想法,即创建令牌的客户只能是使用它的客户。在服务器端可以做些什么来防止该客户与其他人共享令牌?
【问题讨论】:
标签: web-services rest spring-security jwt access-token
我正在寻找阻止客户共享 oauth 令牌的想法,即创建令牌的客户只能是使用它的客户。在服务器端可以做些什么来防止该客户与其他人共享令牌?
【问题讨论】:
标签: web-services rest spring-security jwt access-token
有几个 IETF RFC/草案试图提供一种方法来验证客户端是令牌的“所有者”。 这些规范与 OAuth2 框架协议相关,但是它们可以在任何其他令牌交换上下文中实现。
他们是:
Hawk Tokens 的另一个有趣协议:参见 https://github.com/hueniverse/hawk(Eran Hammer 是 OAuth2 贡献者)
如您所见,所有这些规范都依赖于客户端签名的请求。这似乎是验证客户端是否允许使用令牌的最佳方式。任何其他验证(例如 IP 地址、用户代理、设备 ID...)都不可靠,因为它们可能会被欺骗。
【讨论】:
在我自己看来,防止令牌共享的最好方法是获取电脑的机器 ID、硬件序列号等,然后将其作为令牌。在此之前将收集机器 ID 注册到您的数据库。除了注册机,没有人可以访问您的网络服务。
否则人员 id,可用于搜索数据库中是否存在,我的意思是注册人员 id,然后首先验证他们是否已注册,但如果此人将人员 id 提供给其他人,这可能是一个问题。
希望对你有帮助
【讨论】: