【问题标题】:How to distinguish the device requesting the token OAuth2 on the server?如何区分服务器上请求令牌 OAuth2 的设备?
【发布时间】:2016-03-09 04:41:06
【问题描述】:

我有用于向客户端 (OAuth2) 发布令牌的 Web 应用程序,其中隐含了授权代码授予类型。目前,每次客户端请求(应用程序)时,希望接收令牌以代表一个用户使用资源 api - 新令牌已被给出,旧令牌不再有效(无论请求是由哪个设备发出的)。

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

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

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


有一些原因,我可以使用User-Agent的header(例如:Mozilla / 5.0 (Windows NT 6.1; WOW64; rv: 41.0) Gecko / 20100101 Firefox / 41.0),但是在不同的设备上可以安装相同版本的浏览器、操作系统。除了参数User-Agent在向授权服务请求时不能是。
方式#2 - 在http参数中传输设备的描述。早些时候我没有遇到这样的实现。因此,这种方法值得商榷。

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

【问题讨论】:

    标签: authentication oauth oauth-2.0 request oltu


    【解决方案1】:

    这个问题被问到已经有点时间了,但如果场景仍然有效,我会考虑一下。

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

    设备描述如:

    • 用户代理
    • IP 地址
    • 一些用户输入了描述

    可以在认证后添加,可以作为用户监控自己实际使用什么设备的工具。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-05
      • 1970-01-01
      • 1970-01-01
      • 2011-05-18
      • 2012-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多