【发布时间】:2014-08-05 15:06:54
【问题描述】:
使用 OAuth2 资源所有者密码流程时,不需要客户端 ID 和密码。因此,是什么阻止了另一个 3rd 方应用简单地询问用户他们的用户名/密码组合并使用相同的流程?
【问题讨论】:
使用 OAuth2 资源所有者密码流程时,不需要客户端 ID 和密码。因此,是什么阻止了另一个 3rd 方应用简单地询问用户他们的用户名/密码组合并使用相同的流程?
【问题讨论】:
恕我直言,RFC 6749 (OAuth 2.0) 和 RFC 6819 (OAuth 2.0 Security) 包含关于令牌端点的客户端身份验证的轻微矛盾。我个人的结论如下。
授权服务器不应要求公共客户端将其客户端凭据发送到令牌端点,但实现只能要求公共客户端发送其客户端 ID,无论 grant_type 是什么(如果实现想要支持 refresh_token)。
如果我必须为 Resource Owner Password Credentials Grant 实现令牌端点,我将要求每个客户端发送其客户端 ID,尽管规范不要求在令牌端点对尚未颁发客户端机密的公共客户端进行身份验证在资源所有者密码凭据授予中。
【讨论】: