OAuth关注的是authorization;而OpenID侧重的是authentication。从表面上看,这两个英文单词很容易混淆,但实际上,它们的含义有本质的区别:安全
authorization: n. 受权,承认;批准,委任网站
authentication: n. 证实;鉴定;证明spa
OAuth关注的是受权,即:“用户能作什么”;而OpenID关注的是证实,即:“用户是谁”。开发
若是混淆了OAuth和OpenID的含义,后果很严重。以国内某网站开发的应用为例:它的功能是经过OAuth受权让新浪微博和豆瓣的用户使用各自的身份发表评论,以下图所示(错误的把OAuth当作OpenID使用):get
此类应用属于身份证实问题,本应该经过OpenID来实现,但由于错误的使用了OAuth,从而带来安全隐患:设想一下用户只是在网站上发表了评论而已, 但却赋予了网站随意操做本身私有数据的权利!这就比如:快递员送包裹,为了证实收件人的身份,本来你只要给他看一下身份证便可,可你却把防盗门钥匙都给他 了!Oh,My God!io