开放 - OAuth2.0 - cn

发布时间 : 星期日 文章开放 - OAuth2.0 - cn更新完毕开始阅读

尽管这种授权类型需要引导客户端访问资源所有者凭证,资源所有者凭证被用于一个单一的请求,并交换一个访问令牌。这种授予类型用持久的访问令牌或刷新令牌来交换凭据,这样可以消除客户端必须存储以供将来使用的资源所有者凭证的需要。

1.3.4 ClientCredentials

客户凭证(或其他形式的客户端身份验证)可被用作一个权限授予当授权范围被限制在保护资源在客户端控制下,或者 授权资源先前被安排给授权服务器。当客户端正以自己的名义行事(客户端也是资源所有者),或者客户端正在请求访问根据一个授权先前安排的授权服务器的受保护资源时,客户端凭证被典型被用来作为一种权限授予。

1.4 访问令牌

访问令牌是用于访问受保护的资源的凭据。 一个访问令牌是一个字符串,代表发送给客户端的授权。字符串通常是对客户端不透明的。令牌代表访问的具体范围和持续时间,由资源所有者授予,被资源的服务器和授权执行服务器强行执行。 令牌可以表示用于检索授权信息的标识符,或用一种可核查的方式自我包含在授权信息中(即一个令牌字符串的一些数据组成和签名)。 超过了本规范范围的额外的身份验证凭据,可能为了客户端使用令牌而被需要。

访问令牌提供了一个抽象层,用一个简单的被资源服务器理解的令牌来更换不同单一授权结构(如用户名和密码)。 这种抽象使发出的访问令牌比用来接收他们的权限授予更具有限制性,以及删除资源服务器的需要去了解一个广泛的验证方法。

访问令牌可以有不同的格式,结构和基于资源服务安全性需求的方法利用率(如加密属性)。访问令牌的属性和用于访问受保护资源的方法超出了本规范和同伴规范定义的范围。

1.5 刷新令牌

刷新令牌是用来获取访问令牌的凭据。在当前的访问令牌变成无效或过期,或获得额外的访问令牌具有相同或更窄的范围(访问令牌可能有较短期少于资源授权

的权限所有者)时,刷新令牌被授权服务器发送给客户端用于获取一个新的访问令牌。分发刷新标记是可选的。如果authorization server分发可刷新令牌,那么当分发access token的时候就会将可刷新令牌包括进去。

刷新令牌是一个字符串,代表权限被资源所有者授予给客户端。字符串通常对客户端是透明的。令牌表示用于检索授权信息的标示符。与访问令牌不同的是,可刷新令牌只被用于授权服务器,而不会发送给资源服务器。发送给资源服务器的始终是访问令牌。

下面看一个关于可刷新令牌的处理流程图。

该流程图包括以下步骤:

(A) 客户端访问授权服务器进行验证,通过提供授权认可,以请求访问令牌。

(B) 授权服务器验证客户端并且验证授权认可(四种类型中的一种),如果有效则分发一个访问令牌和一个可刷新令牌

(C) 通过提供访问令牌,客户端可向资源服务器请求受保护资源。 (D) 资源服务器验证验证访问令牌,如果有效,就响应请求。

(E) 步骤(C)和(D)重复进行,直到访问令牌过期。如果client知道访问令牌过期,就直接跳到步骤(G),否则它还会请求受保护资源。 (F) 由于访问令牌失效,资源服务器返回无效令牌错误。 (G) client请求一个新的访问令牌,通过向授权服务器提供可刷新令牌并进行验证。对client的验证条件是基于client的类型和authorization server的策略。

(H) authorization server验证client和可刷新令牌,如果有效就分发一个新的访问令牌(你也可以再发送一个新的可刷新令牌)

2 2. ClientRegistration 客户注册

发起协议之前,客户端注册授权服务器。在客户端注册透过何种途径与授 服务器超出此范围规范,但通常涉及与最终用户互动HTML登记表。

客户端注册不需要客户端和授权服务器之间的直接互动 。当支持授权服务器时,注册可以依靠其他手段 建立信任和获取所需的客户端属性(例如:重定向的URI,客户端类型)。例如,可以注册使用自发行或第三方发行的主张来实现,或 授权服务器执行客户端发现使用信任的渠道。

2.1 客户端类型

OAuth的定义了两种客户端类型,在授权服务器下根据自己的能力验证安全性(即保持他们的客户端凭据的保密的能力): 保密性:

客户能够保持其凭据机密性(如客户端一个安全的服务器与实施限制访问的客户端凭据),或使用其他手段保证客户端身份验证安全的能力。 公开性:

客户无法维持其保密凭据(如客户资源所有者的设备上执行如安装本地应用程序或基于Web浏览器应用程序),无法通过任何其他手段确保客户端身份验证安全。

客户类型的制定是基于授权服务器安全认证的定义和它可接受的风险级别的客户端凭据。 此规范已经围绕以下客户端设计 配置文件: Web应用程序

Web应用程序是一个网络服务器上运行的机密的客户端。资源所有者通过一个HTML用户界面呈现在资源所有者的设备上的用户代理来访问客户端。客户端凭据,以及任何分发给客户端的访问令牌被存储在Web服务器上,并没有暴露或由资源的所有者访问。 用户代理为基础的应用

用户代理为基础的应用是一个公共的客户端,客户端代码是从Web服务器下载,并在资源所有者的设备(如Web浏览器)上的用户代理执行。“协议”的相关数据和凭证能方便(而且往往可见)资源的所有者访问。 由于这些应用程序驻留在用户代理上,他们可以在请求权限时无缝使用用户代理能力。 本机应用程序

本机应用程序是在公共的客户端上安装和资源所有者的设备上执行的。 “协议”的相关数据和凭据可被资源的所有者访问。据推测,任何包含在应用程序内的客户端身份验证凭据可以被提取。另一方面,动态分发的凭据,例如访问令牌或刷新令牌可以得到一个可接受的水平保护。在最低限度,隔离这些凭据与该应用程序可能交互的敌对服务器之外。在某些平台,这些凭据可能被保护,使之与驻留在同一设备上的其它应用程序隔离。

2.2 客户端标识符

授权服务器分发给登记客户端一个客户标识符 —— 一个唯一的字符串代表由客户提供的登记信息。客户端标识符是不是公开的秘密,它暴露给资源所有者,绝不能单独适用于客户端身份验证。

联系合同范文客服:xxxxx#qq.com(#替换为@)