Oauth2.0(五):Authorization Code 受權

  Authorization Code 方式適用於有本身的服務器的應用。之因此叫這個名字,是由於流程中引入了一個叫作 authorization code 的東西。這個東西是一個一次性的臨時憑證,用來換取 access token 和 refresh token。安全

  鑑權服務器提供了一個相似這樣的接口:服務器

  https://www.xxx.com/exchange?code=&client_id=&client_secret=code

  須要傳入 code、client_id 以及 client_secret。驗證經過後,返回 access token 和 refresh token。一旦換取成功,code 當即做廢,不能再使用第二次。blog

  爲何要引入一個一次性的 code?token

  先看流程圖:接口

  這個 code 的做用是保護 token 的安全性。上一節說到,Implicit 方式下,token 是不安全的。這是由於在 4 這一步當中直接把 token 返回給應用。而這一步容易被攔截、竊聽。引入了 code 以後,即便攻擊者可以竊取到 code,可是因爲他沒法得到應用保存在服務器的 client_secret,所以也沒法經過 code 換取 token。而 5 這一步,爲何不容易被攔截、竊聽呢?這是由於,首先,這是一個從服務器到服務器的訪問,黑客比較難捕捉到;其次,這個請求一般要求是 https 的實現。即便能竊聽到數據包也沒法解析出內容。ci

  有了這個 code,token 的安全性大大提升。所以,Oauth2.0 鼓勵使用這種方式進行受權,而 Implicit 方式則是在不得已狀況下才會使用。it

相關文章
相關標籤/搜索