小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Spring-cloud學(xué)習(xí)筆記---分布式架構(gòu)統(tǒng)一認(rèn)證主流實(shí)現(xiàn)方案 Spring Cloud OAuth2介紹

 印度阿三17 2020-11-25

Spring-cloud學(xué)習(xí)筆記—分布式架構(gòu)統(tǒng)一認(rèn)證主流實(shí)現(xiàn)方案

1. 微服務(wù)架構(gòu)下統(tǒng)?認(rèn)證思路

認(rèn)證 :驗(yàn)證?戶(hù)的合法身份,?如輸??戶(hù)名和密碼,系統(tǒng)會(huì)在后臺(tái)驗(yàn)證?戶(hù)名和密碼是否合法,合法的前提下,才能夠進(jìn)?后續(xù)的操作,訪(fǎng)問(wèn)受保護(hù)的資源

獨(dú)立的認(rèn)證服務(wù)

在這里插入圖片描述

  1. 基于Session的認(rèn)證?式
    1. 在分布式的環(huán)境下,基于session的認(rèn)證會(huì)出現(xiàn)?個(gè)問(wèn)題,每個(gè)應(yīng)?服務(wù)都需要在session中存儲(chǔ)?戶(hù)身份信息,通過(guò)負(fù)載均衡將本地的請(qǐng)求分配到另?個(gè)應(yīng)?服務(wù)需要將session信息帶過(guò)去,否則會(huì)重新認(rèn)證。我們可以使?Session共享、Session黏貼等?案。
    2. Session?案也有缺點(diǎn),?如基于cookie,移動(dòng)端不能有效使?等
  2. 基于token的認(rèn)證?式
    1. 基于token的認(rèn)證?式,服務(wù)端不?存儲(chǔ)認(rèn)證數(shù)據(jù),易維護(hù)擴(kuò)展性強(qiáng),客戶(hù)端可以把token 存在任意地?,并且可以實(shí)現(xiàn)web和app統(tǒng)?認(rèn)證機(jī)制,token就是一個(gè)令牌, 可以從認(rèn)證服務(wù)中拿到令牌,之后去其他微服務(wù)的時(shí)候通過(guò)token驗(yàn)證進(jìn)入到其他的微服務(wù)。
    2. 其缺點(diǎn)也很明顯,token由于?包含信息,因此?般數(shù)據(jù)量較?,?且每次請(qǐng)求 都需要傳遞,因此?較占帶寬。另外,token的簽名驗(yàn)簽操作也會(huì)給cpu帶來(lái)額外的處理負(fù)擔(dān)。

2. OAuth2開(kāi)放授權(quán)協(xié)議/標(biāo)準(zhǔn)

注意 :OAuth2是一個(gè)協(xié)議標(biāo)準(zhǔn),但是Spring Cloud OAuth2是對(duì)協(xié)議標(biāo)準(zhǔn)進(jìn)行的實(shí)現(xiàn)

  1. 介紹OAuth(開(kāi)放授權(quán))是?個(gè)開(kāi)放協(xié)議/標(biāo)準(zhǔn),允許?戶(hù)授權(quán)第三?應(yīng)?訪(fǎng)問(wèn)他們存儲(chǔ)在另外的服務(wù)提供者上的信息,?不需要將?戶(hù)名和密碼提供給第三?應(yīng)?或分享他們數(shù)據(jù)的所有內(nèi)容。
允許?戶(hù)授權(quán)第三?應(yīng)?訪(fǎng)問(wèn)他們存儲(chǔ)在另外的服務(wù)提供者上的信息,?不需要將?戶(hù)名和密碼提供給第三?應(yīng)?或分享他們數(shù)據(jù)的所有內(nèi)容
  1. 結(jié)合“使?QQ登錄其他應(yīng)用”這個(gè)場(chǎng)景拆分理解上述那句話(huà)
    1. ?戶(hù):我們??
    2. 第三?應(yīng)?:第三方應(yīng)用程序
    3. 另外的服務(wù)提供者:QQ
  2. OAuth2是OAuth協(xié)議的延續(xù)版本,但不向后兼容OAuth1即完全廢?了OAuth1。

3. OAuth2協(xié)議??和流程

1.比如說(shuō)xxx網(wǎng)要開(kāi)發(fā)使?QQ登錄這個(gè)功能的話(huà),那么xxx?是需要提前到QQ平臺(tái)進(jìn)?登記的(否則QQ憑什么陪著xxx?玩授權(quán)登錄這件事)
  1. 首先,xxx?——>登記——>QQ平臺(tái)

  2. QQ 平臺(tái)會(huì)頒發(fā)?些參數(shù)給拉勾?,后續(xù)上線(xiàn)進(jìn)?授權(quán)登錄的時(shí)候(剛才打開(kāi)授權(quán)??)需要攜帶這些參數(shù)

    1. client_id:客戶(hù)端id(QQ最終相當(dāng)于?個(gè)認(rèn)證授權(quán)服務(wù)器,拉勾?就相當(dāng)于?個(gè)客戶(hù)端了,所以會(huì)給?個(gè)客戶(hù)端id),相當(dāng)于賬號(hào)
    2. secret:相當(dāng)于密碼
  3. OAuth2流程細(xì)化圖
    在這里插入圖片描述

    1. 資源所有者(Resource Owner):可以理解為?戶(hù)??
    2. 客戶(hù)端(Client):我們想登陸的?站或應(yīng)?,?如拉勾?
    3. 認(rèn)證服務(wù)器(Authorization Server):可以理解為微信或者QQ
    4. 資源服務(wù)器(Resource Server):可以理解為微信或者QQ

4. 什么情況下需要使?OAuth2?

  1. 第三?授權(quán)登錄的場(chǎng)景:?如,我們經(jīng)常登錄?些?站或者應(yīng)?的時(shí)候,可以選擇使?第三?授權(quán)登錄的?式,?如:微信授權(quán)登錄、QQ授權(quán)登錄、微博授權(quán)登錄等,這是典型的 OAuth2 使?場(chǎng)景。
  2. 單點(diǎn)登錄的場(chǎng)景:如果項(xiàng)?中有很多微服務(wù)或者公司內(nèi)部有很多服務(wù),可以專(zhuān)?做?個(gè)認(rèn)證中?(充當(dāng)認(rèn)證平臺(tái)??),所有的服務(wù)都要到這個(gè)認(rèn)證中?做認(rèn)證,只做?次登錄,就可以在多個(gè)授權(quán)范圍內(nèi)的服務(wù)中?由串?。

5. OAuth2的頒發(fā)Token授權(quán)?式 — 粉色較為常用

  1. 授權(quán)碼(authorization-code):授權(quán)碼模式使?到了回調(diào)地址,是最復(fù)雜的授權(quán)?式,微博、微信、QQ等第三?登錄就是這種模式
  2. 密碼式(password)提供?戶(hù)名 密碼換取token令牌:我們重點(diǎn)講解接?對(duì)接中常使?的password密碼模式(提供?戶(hù)名 密碼換取token)
  3. 隱藏式(implicit)
  4. 客戶(hù)端憑證(client credentials)

6. Spring Cloud OAuth2介紹

  1. Spring Cloud OAuth2Spring Cloud體系對(duì)OAuth2協(xié)議的實(shí)現(xiàn),可以?來(lái)做多個(gè)微服務(wù)的統(tǒng)?認(rèn)證(驗(yàn)證身份合法性)授權(quán)(驗(yàn)證權(quán)限)。
  2. 通過(guò)向OAuth2服務(wù)(統(tǒng)?認(rèn)證授權(quán)服務(wù))發(fā)送某個(gè)類(lèi)型的grant_type進(jìn)?集中認(rèn)證和授權(quán),從?獲得access_token(訪(fǎng)問(wèn)令牌),?這個(gè)token是受其他微服務(wù)信任的。

注意:使?OAuth2解決問(wèn)題的本質(zhì)是,引?了?個(gè)認(rèn)證授權(quán)層,認(rèn)證授權(quán)層連接了資源的擁有者,在授權(quán)層??,資源的擁有者可以給第三?應(yīng)?授權(quán)去訪(fǎng)問(wèn)我們的某些受保護(hù)資源。

7. Spring Cloud OAuth2構(gòu)建微服務(wù)統(tǒng)?認(rèn)證服務(wù)思路

在這里插入圖片描述

  1. 客戶(hù)端(瀏覽器)發(fā)送請(qǐng)求到網(wǎng)關(guān)
  2. 首次請(qǐng)求先去認(rèn)證服務(wù)拿到token
  3. 攜帶token到資源服務(wù)器
  4. 資源服務(wù)器中的微服務(wù)會(huì)暴露接口,資源服務(wù)器也要調(diào)用認(rèn)證服務(wù),驗(yàn)證token是否正確
  5. 其實(shí)這些暴露的接口中也有check Token的

注意:在我們統(tǒng)?認(rèn)證的場(chǎng)景中,Resource Server其實(shí)就是我們的各種受保護(hù)的微服務(wù),微服務(wù)中的各種API訪(fǎng)問(wèn)接?就是資源,發(fā)起http請(qǐng)求的瀏覽器就是Client客戶(hù)端(對(duì)應(yīng)為第三?應(yīng)?)

來(lái)源:https://www./content-4-763651.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多