OAuth和Kerbose

OAuth是一套認證、授權體系,主要用來提供給第三方授權訪問,單點登錄、微信登錄這些都是屬于Oauth認證,跟Kerbose有一些類似。Kerbose主要就是做認證的,不涉及授權。 OAuth和kerbose的整個認證體系比較類似,都有授權服務器、應用服務器和客戶端幾個角色,步驟也基本上差不多,比較容易混淆,這里做一個簡單的比較。里面會有涉及到幾個概念:

AS: 認證服務器,主要是對用戶的身份進行認證(其中OAuth需要輸入用戶名和密碼,Kerbose只需要用戶名即可),然后返回總票據,不涉及任何業(yè)務。 用戶憑這個總票據可以去進一步獲取具體業(yè)務的票據。
TGS: 票據授權服務器,用戶通過上一步拿到的票據加上一些其他的信息去訪問,在這里可以拿到具體業(yè)務的票據。
Client或Http Service : 應用服務器,用戶要實際訪問的服務器,通過上一步獲取到的業(yè)務票據來訪問,獲取到實際的資源。

TGT或Authorization Code: 用戶身份的憑證或總票據,在OAuth中是保存在應用服務器的后端的,在Kerbose中則保存在客戶端??偲睋ǔS行跒?-7天。
ST 或accessToken: 具體業(yè)務的票據,都是保存在客戶端。通常有效期在幾分鐘到幾小時以內。

優(yōu)缺點對比:

Kerbose跟OAuth相比不用在網絡上傳輸密碼, 只需要用戶本地通過密碼解密TGT驗證即可,如果解密失敗則無法進行下一步驗證,相當于HTTPS建立連接過程中里面客戶端對服務端證書的認證,這一步相對安全性會更高一點。而服務端對客戶端的認證則主要是依賴于用戶名/ID、時間戳對比以及對TGT/ST的解密來保證憑證的安全性。但如果被第三方通過客戶端本地拷貝的方式竊取了TGT或者ST,并且在較短的時間內用這個票據去請求服務器,則能通過校驗而具有安全隱患。

而OAuth 相對于Kerbose來說,在AS認證這一步需要輸入用戶名、密碼,存在被第三方截獲密碼或憑證的可能性,需要對密碼本身做二次加密來保證安全性,而后續(xù)由于code保存在服務器,accessToken的有效期也較短(一般在一分鐘以內),反倒安全性還好。

參考:
https://blog.csdn.net/SkyChaserYu/article/details/104891996/
https://blog.csdn.net/Stephen_mu/article/details/122308029

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容