分布式認證概念說明
分布式認證,即我們常說的單點登入,簡稱sso,指的是在多應用系統的專案中,使用者只需要登入一次,就可以訪
問所有互相信任的應用系統。
分布式認證流程圖
首先,我們要明確,在分布式專案中,每台伺服器都有各自獨立的session,而這些session之間是無法直接共享資
源的,所以,session通常不能被作為單點登入的技術方案。
最合理的單點登入方案流程如下圖所示:
總結一下,單點登入的實現分兩大環節:
1 使用者認證:這一環節主要是使用者向認證伺服器發起認證請求,認證伺服器給使用者返回乙個成功的令牌token,
主要在認證伺服器中完成,即圖中的a系統,注意a系統只能有乙個。
2 身份校驗:這一環節是使用者攜帶token去訪問其他伺服器時,在其他伺服器中要對token的真偽進行檢驗,主
要在資源伺服器中完成,即圖中的b系統,這裡b系統可以有很多個。
jwt介紹
概念說明
從分布式認證流程中,我們不難發現,這中間起最關鍵作用的就是token,token的安全與否,直接關係到系統的
健壯性,這裡我們選擇使用jwt來實現token的生成和校驗。
jwt,全稱json web token,官網位址,是一款出色的分布式身份校驗方案。可以生成token,也可
以解析檢驗token。
jwt生成的token由三部分組成:
1 頭部:主要設定一些規範資訊,簽名部分的編碼格式就在頭部中宣告。
2 載荷:token中存放有效資訊的部分,比如使用者名稱,使用者角色,過期時間等,但是不要放密碼,會洩露!
3 簽名:將頭部與載荷分別採用base64編碼後,用「.」相連,再加入鹽,最後使用頭部宣告的編碼型別進行編
碼,就得到了簽名。非對稱加密rsa介紹
jwt生成token的安全性分析
從jwt生成的token組成上來看,要想避免token被偽造,主要就得看簽名部分了,而簽名部分又有三部分組成,其
中頭部和載荷的base64編碼,幾乎是透明的,毫無安全性可言,那麼最終守護token安全的重擔就落在了加入的鹽
上面了!
試想:如果生成token所用的鹽與解析token時加入的鹽是一樣的。豈不是類似於中國人民銀行把人民幣防偽技術
公開了?大家可以用這個鹽來解析token,就能用來偽造token。
這時,我們就需要對鹽採用非對稱加密的方式進行加密,以達到生成token與校驗token方所用的鹽不一致的安全
效果!非對稱加密rsa介紹
1 基本原理:同時生成兩把金鑰:私鑰和公鑰,私鑰隱秘儲存,公鑰可以下發給信任客戶端
私鑰加密,持有私鑰或公鑰才可以解密
公鑰加密,持有私鑰才可解密
2 優點:安全,難以破解
3 缺點:演算法比較耗時,為了安全,可以接受
4 歷史:三位數學家rivest、shamir 和 adleman 設計了一種演算法,可以實現非對稱加密。這種演算法用他們三
個人的名字縮寫:rsa。
分布式鎖相關知識
分布式協調技術主要用來解決分布式環境當中多個程序之間的同步控制,讓他們有序的去訪問某種臨界資源,防止造成 髒資料 的後果。在這圖中有三颱機器,每台機器各跑乙個應用程式。然後我們將這三颱機器通過網路將其連線起來,構成乙個系統來為使用者提供服務,對使用者來說這個系統的架構是透明的,他感覺不到我這個系統是...
分布式架構相關知識
傳統單體架構 分布式架構系統 新功能開發 需要時間 容易開發和實現 部署不經常且容易部署 經常發布,部署複雜 隔離性故障影響範圍大 故障影響範圍小 架構設計 難度小難度級數增加 系統效能 響應時間快,吞吐量小 響應時間慢,吞吐量大 系統運維 運維簡單 運維複雜 新人上手 學習曲線大 應用邏輯 學習曲...
完全分布式集群單點啟動
以下操作使用dev1賬戶操作 1 如果集群是第一次啟動,需要格式化namenode。如果格式化失敗,需要檢測之後先刪除data資料夾,再格式化 hadoop namenode format 2 在hadoop102上啟動namenode hadoop daemon.sh start namenode...