如何保持oAuth 2.0 Client Secret的秘密?

时间:2014-06-05 22:10:06

标签: oauth oauth-2.0 twitter-oauth google-oauth

我必须使用oAuth 2.0规范构建一个API,并且我的客户端不使用HTTPS协议。我的问题是用于获取授权代码的客户端密钥是否可以保密。如果我必须使用客户端密钥向Authorization服务器发出请求,那么客户端ID和授权代码作为参数是不是可以从该请求中窃取信息?是否会使用授权码和客户端密钥创建签名?即使所有客户端都被迫拥有HTTPS,这也是必需的吗?

1 个答案:

答案 0 :(得分:2)

RFC 6749(OAuth 2.0),3.1. Authorization Endpoint,第4段:

  

由于对授权端点的请求导致用户   身份验证和明文凭证的传输(在   HTTP响应),授权服务器必须要求使用TLS   在发送请求时,如第1.6节所述   授权端点。

因此,客户端应用程序在访问授权端点时必须使用TLS(https)。

仅供参考:如果客户类型为“公共”,则授权终端不需要客户机密。并且OAuth授权服务器尚未向客户端发出客户机密钥。仔细阅读RFC 6749。