oAuth2.0访问令牌混乱

时间:2013-05-06 20:55:21

标签: oauth-2.0

我正在关注OAuth2.0 https://developers.google.com/youtube/v3/guides/authentication

的本教程

看起来很清楚OAuth2.0的工作原理。但是我在访问令牌部分有点混乱。

  

获取用户的访问令牌后,您的应用程序即可使用   该令牌代表该用户提交授权的API请求。   API支持两种指定访问令牌的方法:指定   访问令牌作为access_token查询参数的值:

     

www.googleapis.com/youtube/v3/videos?access_token=ACCESS_TOKEN

如果有人在网址传输过程中获取了此访问令牌,他们可以访问此受保护资源吗?

服务器如何知道请求是否来自最初请求访问令牌的客户端?

更新  在阅读这篇文章Are HTTPS headers encrypted?后,我的困惑被清除了。我认为查询字符串在网络传输过程中没有加密。

2 个答案:

答案 0 :(得分:1)

一般来说,我认为共识是OAuth 2.0是一种服务器端技术,所有访问令牌和通信都应使用SSL传输,因为承载令牌需要尽可能保密。

答案 1 :(得分:0)

此外,您需要知道OAuth 2.0中有两种类型的流 i)隐式授权流程 - 这是用户登录服务提供商并且他的浏览器获取访问令牌的流程。假设你有X.com并通过Facebook登录。一旦用户键入他的FB凭证,访问令牌就会被发送到他的浏览器。

ii)授权代码流程 - 在此流程中(再次考虑上述情况),facebook会将授权代码传递给用户的浏览器。如果有人以某种方式拦截授权代码,他就无能为力。使用有效的客户端凭据传递时,可以交换授权代码以进行访问。因此,当用户登录时,他的浏览器会获得授权代码,该代码将传递到X.com上的服务器。从那里你可以点击FB提供的代码令牌交换端点,并获取返回给你服务器的访问令牌!

授权代码流添加了另一层安全性,其中访问令牌仅对客户端+服务器可见,而不对用户代理可见。当你自己想出来时,令牌会通过HTTPS传递。