天天看点

17-什么是资源服务器

Resource Server又称作资源服务器,它是OAuth2中的一个重要概念。这个概念并不容易理解。

什么是资源服务器

以下摘自RFC文档对资源服务器的描述:

The server hosting the protected resources, capable of accepting and responding to protected resource requests using access tokens.

托管受保护的资源,并且有使用Access Token来接受和响应对受保护资源的访问请求的能力的服务器。

怎么理解?我认为能够对访问令牌进行鉴别,并根据访问令牌提供的信息来对受保护资源进行访问控制的都可以认为是资源服务器。

资源服务器的背景

在传统项目中我们通过用户名和密码(也可以是验证码)来获得服务器给的凭证(JWT是其中的一种),然后携带凭证去请求接口以获得对应的资源(Resource)。绝大部分的单体应用使用这种模式非常方便和简单。

但是一旦你所在的项目做大了,需要大规模部署时使用独立的访问控制体系将非常不方便,而且十分的笨重。 例如,谷歌的服务有几十个资源服务器,如谷歌云平台、谷歌地图、谷歌云端硬盘等等。如果独立开发访问控制体系不但增加了开发工作量,而且也不利于现有用户快速引导到新的业务上。 所以需要一种范式来简化这一流程。

发放Token和使用Token分开

对资源的请求授权和访问控制是可以分开的。就比如你买飞机票,现在你不仅可以在航空公司的售票部门买到票,也可以到第三方票务中心线下或者线上去买票,最终每个架次的航班会对你的票据进行核验以确定你是否符合登记的条件,而且不会关心你的购票渠道。

17-什么是资源服务器

授权服务器只管发Token功能,资源服务器只负责验证Token,当然令牌自省、令牌撤销也可以选用。每当有新的资源服务接入我们只需要加入配套的资源服务配置策略即可,集成起来非常简单。

Spring Security中的资源服务器

继续阅读