學習OAuth 2 0課程簡記 1

2022-07-02 13:42:10 字數 1854 閱讀 4711

角色

授權碼許可型別

客戶需要授權客戶端訪問資源持有者的部分資源,這裡如果直接將使用者名稱密碼給客戶端則會產生賬號洩露風險,並且無法對資源範圍管控,沒有到期時間除非修改密碼等問題  ~  所以需要授權碼,通過授權碼,客戶端找授權服務換取訪問令牌!授權客戶端用令牌取訪問有限資源

oauth 2.0 授權的核心就是頒發訪問令牌、使用訪問令牌

為什麼要有授權碼換訪問令牌的步驟 -》直接返回訪問令牌,那我們肯定不能使用重定向的方式。因為這樣會把安全保密性要求極高的訪問令牌暴露在瀏覽器上,從而將會面臨訪問令牌失竊的安全風險,有了授權碼的參與,訪問令牌可以在後端服務之間傳輸,同時呢還可以重新建立小明與小兔軟體之間的「連線」

為啥要重定向兩次-》當小明被瀏覽器重定向到授權服務上之後,小明跟小兔軟體之間的 「連線」 就斷了,小明授權之後,又重新重定向回到了小兔軟體的位址上,這樣小明就跟小兔軟體有了新的 「連線」,於是有了第二次授權碼的重定向

授權服務

重新整理令牌,使用者在一定期限內無需重新點選授權按鈕,就可以繼續使用第三方軟體

jwt 就是用一種結構化封裝的方式來生成 token 的技術,分為 header(頭部)、payload(資料體)和 signature(簽名)三部分,因為 jwt 令牌本身就包含了之前所要依賴資料庫或者依賴 rpc 服務才能拿到的資訊

jwt 令牌需要在公網上做傳輸。所以在傳輸過程中,jwt 令牌需要進行 base64 編碼以防止亂碼,同時還需要進行簽名及加密處理來防止資料資訊洩露

第三方應用客戶端關注

資源所有者

資源擁有者的憑據,就是使用者的憑據,就是使用者名稱和密碼,小兔此時就是京東官方出品的一款軟體,小明也是京東的使用者,防止使用者名稱密碼滿天飛,使用了 token 來代替這些「滿天飛」的敏感資訊

客戶端憑據許可

小兔軟體訪問了乙個不需要使用者小明授權的資料,比如獲取京東 logo 的位址,這個 logo 資訊不屬於任何乙個第三方使用者,「資源擁有者被塞進了第三方軟體中」 或者 「第三方軟體就是資源擁有者」

隱式許可

各種型別的對比,安全性授權碼最高,

如果小兔軟體是官方出品,那麼可以直接使用資源擁有者憑據許可;

如果小兔軟體就是只嵌入到瀏覽器端的應用且沒有服務端,那就只能選擇隱式許可;

如果小兔軟體獲取的資訊不屬於任何乙個第三方使用者,那可以直接使用客戶端憑據許可型別

Oauth2 0學習記錄

幾乎每個系統,都不開身份驗證,驗證的方式也很多,oauth2.0,sso,還有最近新接觸到的jwt,傻傻搞不清楚,他們之間到底是什麼關係呢?先簡單整理一下oauth2.0的內容,接下來繼續學習sso和jwt,繼續完善,奧利給 什麼是oauth2.0?一種允許通過簡單,標準的方法從web,移動和桌面應...

OAuth 2 0實戰課 07 08 筆記

極客時間 oauth 2.0實戰課 07 08 筆記 移動端使用oauth2.0 code challenge method s256即code verifier code challenge base64url encode sha256 ascii code verifier 按照上圖訪問步驟 ...

OAuth 2 0實戰課 09 筆記

學習極客時間王新棟的 oauth 2.0實戰課 筆記 實戰 利用oauth 2.0實現乙個openid connect使用者身份認證協議。oidc 是什麼?oidc 授權協議 身份認證 oauth 2.0 的授權碼許可流程的運轉,需要資源擁有者 第三方軟體 授權服務 受保護資源這 4 個角色間的順暢...