【问题标题】:How to keep the oAuth 2.0 Client Secret a secret?如何将 oAuth 2.0 客户端机密保密?
【发布时间】:2014-07-27 02:04:16
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 但是在客户端密钥已经被发布的情况下,客户端将如何安全地发送密钥以获取访问令牌?
    • 令牌端点也必须使用 TLS (https) 访问,如 3.2 中所述。令牌端点。 TLS 保护客户端密钥的传输。
    猜你喜欢
    • 2014-12-03
    • 2017-10-18
    • 2013-11-06
    • 1970-01-01
    • 2016-03-22
    • 2015-09-06
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    相关资源
    最近更新 更多