OAuth2在微服務架構中的應用


首先是為什么要在微服務場景使用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 和密碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM