認證與授權協議對比:OAuth2、OpenID、SMAL


認證授權是目前大多數系統都必須要實現都功能,認證就是驗證用戶都身份,授權就是驗證身份后對受限資源的訪問控制。最開始是單個平台要做,后來在互聯網時代到來,一個賬戶可登陸多個平台,然后是各種開放平台賬戶共享,認證授權變的越來越重要。關於驗證授權方面的規范協議也相對成熟通用。

最早出現的認證授權協議是SMAL,一般用在企業級單點登陸場景。平時接觸到的不多。

OAutho是看到的用的比較多的認證協議,尤其是在API認證授權時用,最開始是1.0版本,后來因為有回話攻擊、會話劫持的漏洞,出了1.0a版本,講回調鏈接前置、增加安全驗證簽名等,但編程實現較麻煩,后來出現OAuth2版本,但不兼容之前的版本。一般見到大多數時用OAutho2或OAutho1.0a。

OpenId一開始出現是為了解決認證的問題,后來出現了OpenId Connect,在OAutho的基礎上也可以實現授權的功能。

 

對比點 OAuth2 OpenID SMAL
票據格式 JSON or SAML2 JSON XML
支持授權 Yes No Yes
支持認證 “偽認證” Yes Yes
創建年份 2005 2006 2001
最新版本 OAuth2 OpenID Connect SAML 2.0
傳輸方式 HTTP HTTP GET and HTTP POST HTTP重定向,SAML SOAP綁定,HTTP POST綁定等
安全弱點 不能抵抗網絡釣魚,OAuth沒有使用數據簽名和加密等措施,數據安全完全依賴TLS 不能抵抗網絡釣魚,一個釣魚的IDP如果惡意記錄下來用戶的OpenID,將會造成很嚴重的隱私安全問題 XML簽名存在漏洞,可能被偽造
使用場景 API 授權 商用應用的單點登錄 企業級單點登錄,但是對於移動端支持不是很好

對比表格來源:http://www.jianshu.com/p/5d535eee0a9b


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM