天天看點

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中的資源伺服器

繼續閱讀