一 OAuth2解決什麼問題
1 開放系統間授權
照片擁有者想要在雲沖印服務上打印照片,雲沖印服務需要訪問雲存儲服務上的資源。
2 圖例
資源擁有者:照片擁有者
客戶應用:雲沖印
受保護的資源:照片
3 方式一:用戶名密碼複製
用戶將自己的"雲存儲"服務的用戶名和密碼,告訴"雲沖印",(即資源服務器的用戶名和密碼存儲在客戶應用服務器上)後者就可以讀取用戶的照片了。這樣的做法有以下幾個嚴重的缺點。
a "雲沖印"爲了後續的服務,會保存用戶的密碼,這樣很不安全。
b Google不得不部署密碼登錄,而我們知道,單純的密碼登錄並不安全。
c "雲沖印"擁有了獲取用戶儲存在Google所有資料的權力,用戶沒法限制"雲沖印"獲得授權的範圍和有效期。
d 用戶只有修改密碼,才能收回賦予"雲沖印"的權力。但是這樣做,會使得其他所有獲得用戶授權的第三方應用程序全部失效。
e 只要有一個第三方應用程序被破解,就會導致用戶密碼泄漏,以及所有被密碼保護的數據泄漏。
總結:
將受保護的資源中的用戶名和密碼存儲在客戶應用的服務器上,使用時直接使用這個用戶名和密碼登錄
適用於同一公司內部的多個系統,不適用於不受信的第三方應用
4 方式二:通用開發者key
key是事先在"雲存儲"服務和"雲沖印"服務間約定好的,適用於合作商或者授信的不同業務部門之間
5 方式三:頒發令牌
需要考慮如何管理令牌、頒發令牌、吊銷令牌,需要統一的申請令牌和頒發令牌的協議。
二 OAuth2簡介
1 OAuth主要角色
2 最簡嚮導
川崎高彥:OAuth2領域專家,開發了一個OAuth2 sass服務,OAuth2 as Service,並且做成了一個公司
在融資的過程中爲了向投資人解釋OAuth2是什麼,於是寫了一篇文章,《OAuth2最簡嚮導》
三 OAuth2的應用
1 微服務安全
現代微服務中系統微服務化以及應用的形態和設備類型增多,不能用傳統的登錄方式
核心的技術不是用戶名和密碼,而是token,由AuthServer頒發token,用戶使用token進行登錄