首页 > 解决方案 > Oauth2.0:客户端应用程序和授权服务器之间的通信

问题描述

我对oauth2.0做了很好的研究。但是当谈到客户端向授权服务器请求访问令牌的部分时,我完全迷失了

这种通信如何通过 tls 进行保护?这种通信不涉及用户代理(浏览器),所以我假设这是一个客户端-服务器通信。那么,证书验证是如何进行的。我不记得将任何证书从 facebook 服务器导入到我的密钥库以用于我的测试应用程序。

我无法搜索有关此的任何正确答案

问候, 阿米特

标签: httpsoauth-2.0tls1.2

解决方案


从 OAuth 2.0 的角度来看,访问令牌是凭据。访问令牌可用于访问受 OAuth 2.0 保护的资源。

当数据通过网络传输时,攻击可以针对从线路中提取数据。如果传输的数据未加密,则此类攻击将泄露正在传输的纯数据。如果此类数据包含令牌请求和响应,则恶意方可以提取访问令牌。RFC6749中也强调了这一点,

Since requests to the token endpoint result in the transmission of
clear-text credentials (in the HTTP request and response), the
authorization server MUST require the use of TLS as described in
Section 1.6 when sending requests to the token endpoint.

当客户端与授权服务器建立连接时,该连接也会通过公共网络打开。因此那里也存在攻击。这就是为什么您必须使用 TLS 进行令牌请求。

现在 TLS 的功能是一个单独的主题。它使用由证书颁发机构 (CA) 颁发的数字证书。存在受信任的 CA,默认情况下受操作系统信任。所以当你连接 Facebook 时,如果 Facebook 使用的是知名 CA 颁发的 tls 证书,那么你就不需要配置任何东西。


推荐阅读