oAuth2资源所有者密码凭据授权流程中的客户端凭据是否可选?

时间:2013-10-24 13:34:54

标签: oauth oauth-2.0

4.3.2 of RFC 6749(描述了oauth2授权框架的“资源所有者密码凭据授权流程”)声明:

  

如果客户类型是保密的或客户是发给客户的   凭证(或指定的其他认证要求),
  客户端必须按授权服务器进行身份验证,如上所述   在第3.2.1节中。

似乎找不到“机密客户”是什么的参考。由此看来,允许非机密客户参与“资源所有者密码凭证授权流程”(4.3)。即不会(也不能)使用授权服务器对自己进行身份验证的客户端。

这是对的吗?

2 个答案:

答案 0 :(得分:3)

查看client types部分,其中“机密客户”的定义如下:

  

能够保持其机密性的客户     凭证(例如,在安全服务器上实现的客户端     限制访问客户端凭据)或能够安全     使用其他方式进行客户端身份验证。

Cloudfoundry的命令行cf application是使用密码授予的“公共”(即非机密)客户端的示例。

答案 1 :(得分:1)

oauth2规范的

Section 2.3具有以下段落:

  

授权服务器可以与公共客户端建立客户端身份验证方法。但是,授权服务器不得依赖公共客户端身份验证来识别客户端。

section 2.1中将公共客户定义为:

  

客户端无法保持其凭据的机密性(例如,在资源所有者使用的设备上执行的客户端,例如已安装的本机应用程序或基于Web浏览器的应用程序),并且无法通过任何其他方式进行安全的客户端身份验证装置

因此,您可以(可选)对客户端进行身份验证,但不要认为客户端就是它所说的那样。