4.3.2 of RFC 6749(描述了oauth2授权框架的“资源所有者密码凭据授权流程”)声明:
如果客户类型是保密的或客户是发给客户的 凭证(或指定的其他认证要求),
客户端必须按授权服务器进行身份验证,如上所述 在第3.2.1节中。
似乎找不到“机密客户”是什么的参考。由此看来,允许非机密客户参与“资源所有者密码凭证授权流程”(4.3)。即不会(也不能)使用授权服务器对自己进行身份验证的客户端。
这是对的吗?
答案 0 :(得分:3)
查看client types部分,其中“机密客户”的定义如下:
能够保持其机密性的客户 凭证(例如,在安全服务器上实现的客户端 限制访问客户端凭据)或能够安全 使用其他方式进行客户端身份验证。
Cloudfoundry的命令行cf application是使用密码授予的“公共”(即非机密)客户端的示例。
答案 1 :(得分:1)
Section 2.3具有以下段落:
授权服务器可以与公共客户端建立客户端身份验证方法。但是,授权服务器不得依赖公共客户端身份验证来识别客户端。
在section 2.1中将公共客户定义为:
客户端无法保持其凭据的机密性(例如,在资源所有者使用的设备上执行的客户端,例如已安装的本机应用程序或基于Web浏览器的应用程序),并且无法通过任何其他方式进行安全的客户端身份验证装置
因此,您可以(可选)对客户端进行身份验证,但不要认为客户端就是它所说的那样。