OAuth關注的是authorization;而OpenID側重的是authentication。從表面上看,這兩個英文單詞很容易混淆,但實際上,它們的含義有本質的區別:安全
authorization: n. 受權,承認;批准,委任網站
authentication: n. 證實;鑑定;證明spa
OAuth關注的是受權,即:「用戶能作什麼」;而OpenID關注的是證實,即:「用戶是誰」。開發
若是混淆了OAuth和OpenID的含義,後果很嚴重。以國內某網站開發的應用爲例:它的功能是經過OAuth受權讓新浪微博和豆瓣的用戶使用各自的身份發表評論,以下圖所示(錯誤的把OAuth當作OpenID使用):get
此類應用屬於身份證實問題,本應該經過OpenID來實現,但由於錯誤的使用了OAuth,從而帶來安全隱患:設想一下用戶只是在網站上發表了評論而已, 但卻賦予了網站隨意操做本身私有數據的權利!這就比如:快遞員送包裹,爲了證實收件人的身份,本來你只要給他看一下身份證便可,可你卻把防盜門鑰匙都給他 了!Oh,My God!io