- 客户端模式
- web应用
- 用户的代理应用
- 本地应用
- 混合应用
OAuth2.0的角色被细分为一系列的类型和模式。这段将解释这些类型和模式
OAuth2.0 规范定义两种客户端类型:
- Confidential
- Public
- 机密性
- 开发的
一个机密的客户端是一个有能力安全保存客户端密码的应用。这个客户端密码是授权服务器分配给客户端app的。这个客户端密码是授权服务识别客户端的,和防止欺骗。机密的客户端可能是一个webapp。只有管理员可以进入服务器,看见客户端密码。
一个公开的客户端是没有能力保存机密密码的客户端。比如手机应用或者桌面应用,他们有客户端密码被镶嵌在应用中。这样的应用可能被打开,获取密码。同样一个Javascript的web应用也是一样的。用户可以通过javascript的Debugger查看应用,发现密码。
客户端模式
OAuth2.0 可提到了一系列的客户端模式。这些模式的应用类型可能是机密或者公开的。
模式是:
- web应用
- 用户代理
- 本地
web应用
一个应用是一个运行在web服务器上的应用。实际上,一个典型的web应用包括一个浏览器和一个服务器。如果web应用需要获取资源服务,客户端密码可能存储在服务器上。这样密码就是机密的。
Here is an illustration of a confidential client web application:
下面描述了一个机密的web客户端应用:
Confidential client: Web Application. |
用户代理应用
一个用户代理应用是,比如运行在浏览器中的javascript应用。浏览器是一个用户代理。一个用户代理应用可能被存储在web服务器上。但是应只一旦下载在用户代理上。比如一个javascript的小游戏只能运行在浏览器中。
Here is an illustration of a client user agent application:
下面描述了一个用户代理应用:
Public client: User Agent Application. |
本地应用
一个本地应用是,比如桌面应用,或者手机应用。本地应用被安装在用户的电电脑或者其他的设备上。客户端密码将被存储在用户电脑或者设备上。
下面是本地客户端应用的描述
Public client: Native Application. |
混合应用
一些应用是这些模式的混合。比如,一个本地应用可能也有一部分web服务,这部分完成一些工作()比如数据存储。OAuth 2.0 规范对混合应用没有说什么。然而,在大多数情况下,一个混合将能够用这些模式中的一个的认证模型。