OAuth 2.0客户端类型
OAuth 2.0客户端角色可细分为一组客户端类型和配置文件。本文将解释这些类型和配置文件。
OAuth 2.0规范定义了两种类型的客户端:
- Confidential 机密的
- Public 公共的
机密客户端是一种能够使客户端密码对世界保密的应用程序。该客户端密码由授权服务器分配给客户端应用程序。此密码用于标识授权服务器的客户端,以避免欺诈。机密客户端的示例可以是一个Web应用程序,其中只有管理员才能访问服务器并查看客户端密码。
公共客户端是无法对客户端密码保密的应用程序。例如,其中嵌入了客户密码的手机应用程序或者桌面应用程序。这样的应用程序可能会被破解,这可能会泄露密码。在用户浏览器中运行的JavaScript应用程序也是如此。用户可以使用JavaScript调试器来查看应用程序,并查看客户端密码。
客户端配置文件
OAuth 2.0规范还提到了一组客户端配置文件。这些配置文件是具体的应用程序类型,可以是机密的也可以是公开的。这些配置文件是:
- Web Application
- User Agent
- Native
Web应用程序
Web应用程序是在Web服务器上运行的应用程序。实际上,Web应用程序通常同时包含浏览器部分和服务器部分。如果Web应用程序需要访问资源服务器(例如Facebook用户帐户),则可以将客户端密码存储在服务器上。密码因此将是机密的。
用户代理应用
用户代理应用程序例如是在浏览器中运行的JavaScript应用程序。浏览器是用户代理。用户代理应用程序可以存储在Web服务器上,但是下载后该应用程序仅在用户代理中运行。一个示例可能是只在浏览器中运行的小JavaScript游戏。
本机应用
本机应用程序例如是桌面应用程序或者移动电话应用程序。本机应用程序通常安装在用户计算机或者设备(电话,平板电脑等)上。因此,客户端密码也将存储在用户计算机或者设备上。
混合应用
一些应用程序是这些配置文件的混合体。例如,本机应用程序也可以具有服务器部分,该服务器部分完成部分工作(例如,存储数据)。 OAuth 2.0规范对这种混合动力没有任何说明。但是,在大多数情况下,混合服务器将能够使用这些配置文件之一的身份验证模型。