1. 程式人生 > >OAuth2在微服務架構中的應用

OAuth2在微服務架構中的應用

環境 關系 進入 成功 認證 技術 tid 分享圖片 微服務架構

首先是為什麽要在微服務場景使用OAuth2,這是因為使用了OAuth2後,就能向第三方系統提供授權。

其次是如何使用,見下圖:

技術分享圖片

在微服務架構中使用OAuth2,有幾個問題需要我們思考:

1. token要不要暴露給前端

根據OAuth2的code模式的機制,獲得code後會進行一次回調,不同的Clientid回調URL是不同的,這個回調正是用來請求獲取token的,如果是第三方系統來請求授權,這個回調自然是由第三方實現。出於安全考慮,我們應盡可能不把token傳到前端,這裏分兩種情形:

(1) 如果是自己的系統,可以把對應的sessionid傳遞給前端,sessionid與token的對應關系在後臺維護好

(2)如果是第三方的應用,token是先傳遞到對方的回調URL上的(即後臺),由對方決是否要暴露給前端

2. 在具體的服務中如何獲取訪問者的信息,即現在請求服務的人是誰

具體的服務實現中不考慮sessionid,只認token,所以可以通過JWT類型的token獲取訪問者的信息。sessionid只是用來對接自己的服務網關的,用於會話管理和讓服務網關獲取token。至於第三方的對接將通過另外一個網關進入。

3.認證中心是如何去調授權中心的

當認證成功之後,也是通過回調機制去調授權中心請求code值

4.clientid 和密碼如何獲取

如果是在生產環境下的正式系統,應提供一個頁面讓第三方可以申請授權,然後產生相應的clientid 和密碼

OAuth2在微服務架構中的應用