OAuth2.0 4種授權模式
學習了楊波老師的《微服務安全架構和實踐》關於Oauth2.0的知識,做了下簡單的總結,具體內容在https://github.com/geektime-geekbang/oauth2lab 最安全的授權方式,適用於開放平臺,客戶端為不受信的第三方應用,最終客戶端獲取了token,使用者是不知情的
1、使用者 ——》客戶端(第三方不受信應用) 2、客戶端——〉授權伺服器 請求授權(攜帶clientId、返回地址等) 3、授權伺服器——》使用者 跳轉頁面給使用者,詢問是否授權 4、使用者——〉授權伺服器 輸入賬號密碼確認授權 5、授權伺服器——〉客戶端 跳轉到第2步給定的返回地址,附帶上code引數 6、客戶端 ——》授權伺服器 根據code獲取token 和 refreshToken 7、客戶端 ——〉資源伺服器 根據token獲取使用者資源
簡化版的授權,適用於單頁應用、app等,一般不會有refreshToken,這個時候使用者是能知曉token,安全性較弱(因為瀏覽器、app等是和使用者在一起的)
1、使用者 ——》客戶端(第三方不受信應用) 2、客戶端——〉授權伺服器 請求授權(攜帶clientId、返回地址等) 3、授權伺服器——》使用者 跳轉頁面給使用者,詢問是否授權 4、使用者——〉授權伺服器 輸入賬號密碼確認授權 5、授權伺服器——〉客戶端 跳轉到第2步給定的返回地址,直接附帶token
適用於己方app、單頁應用直接和授權伺服器互動,通過賬號密碼獲取授權
1、客戶端 ——》 授權伺服器 直接附帶上使用者賬號密碼請求授權 2、授權伺服器 ——〉客戶端 直接返回token值
適用於 伺服器之間通訊,不經過使用者確認,只需要伺服器之間通過最基本的驗證,驗證方式可以自己定義(驗籤、證書等)
1、客戶端 ——》授權伺服器 經過商議好的許可權認證 2、授權伺服器 ——〉客戶端 發放token