如何区分在服务器上请求令牌OAuth2的设备?

时间:2015-11-07 13:05:23

标签: authentication oauth oauth-2.0 request oltu

我有用于向客户端发出令牌的Web应用程序(OAuth2),其中授权的授权类型为授权类型。此时,每次客户端请求(应用程序),希望接收代表一个用户使用资源api的令牌时,都会给出新令牌并且旧令牌不再有效(无论请求是在哪个设备上进行的) )。

我想要的是什么。为希望代表同一用户访问资源api的同一客户添加不同令牌的可能性,但生成不同设备的请求。< / p>

示例。安装在家庭计算机应用程序上“ClientApp”希望获取一个令牌,以便从用户名“Max”访问Web服务“PhotoService”。为此,应用程序“ClientApp”指代令牌的授权服务“OAuth2Service”,它将继续引用“PhotoService”。结果,“ClientApp”接收令牌。当安装在工作计算机上时,应用程序“ClientApp”尝试从“OAuth2Service”获取令牌,然后应该给他一个新令牌,而在使用家用计算机时收到旧令牌必须保持有效。也就是说,必须将令牌附加到发出请求的设备,客户端(client_id)以及客户端将使用资源api的用户。对于同一设备,同一客户,同一用户必须返回一个新令牌,而旧版本应无效。

如何区分发出请求的设备?

有理由我可以使用标题的User-Agent(例如:Mozilla / 5.0 (Windows NT 6.1; WOW64; rv: 41.0) Gecko / 20100101 Firefox / 41.0),但在不同的设备上可以安装相同版本的浏览器OS。此外,参数User-Agent不能在请求授权服务时使用 方式#2 - 在http参数中传输设备的描述。早些时候我没有遇到这样的实施。出于这个原因,这种方法值得怀疑。

使用Apache Oltu实现OAuth2应用程序。

1 个答案:

答案 0 :(得分:0)

自问这个问题以来已经有一段时间了,但是如果情景仍然有效,我会留下一些想法。

OAuth2不会阻碍用户使用多个设备。您只需在服务器上为同一用户存储多个令牌。

该设备的描述如下:

  • 的User-Agent
  • ip address
  • 某些用户输入了说明
验证后可以添加

,可以将其视为用户监控实际使用的设备的工具。

最后;已经过身份验证的设备可以使用给定令牌访问服务,而未经身份验证的设备必须通过身份验证过程才能接收令牌。