雲計算引出了大量的開放平台,各種第三方應用建立在開放平台之上,出於安全性的要求便出現了oauth協議,2007年發布了Oauth1.0協議,2.0的草案與2011年發布。
1、2.0的用戶授權過程(過程可參考流程圖)
- 引導用戶到授權服務器,請求用戶授權,用戶授權后返回 授權碼(Authorization Code)
- 客戶端由授權碼到授權服務器換取訪問令牌(Access Token)
- 用訪問令牌去訪問得到授權的資源
(Client指第三方應用,Resource Owner指用戶,Authorization Server是我們的授權服務器,Resource Server是API服務器。)
2、1.0的用戶授權過程
- 客戶端到授權服務器請求一個授權令牌(Request Token&Secret)
- 引導用戶到授權服務器請求授權
- 用訪問令牌到授權服務器換取訪問令牌(Access Token&Secret)
- 用訪問令牌去訪問得到授權的資源
3、兩者的對比:
OAuth1.0協議每個Token都有一個加密,2.0則不需要。這樣來看1.0似乎更加安全,但是2.0要求使用https協議,安全性也更高一籌。
OAuth2.0充分考慮了客戶端的各種子態,因而提供了多種途徑獲取訪問令牌
a)授權碼
b)客戶端私有證書
c)資源擁有者密碼證書
d)刷新令牌
e)斷言證書
OAuth1.0只有一個用戶授權流程。
OAuth2.0較1.0相比,整個授權驗證流程更簡單更安全,也是未來最主要的用戶身份驗證和授權方式。