OpenId,Oauth 小窥
之前关注过Openid 和 Oauth,关于两者的区别有很多论述
直说个人的理解,OPenId提供隔个人互联网统一的访问入口,将权限认证放到一个固定的认证中心,通过统一的OPenId认证中心,支持用户访问所有已接入的OpenId Provider的网站,
OpenId的好处 :
免去记忆相关网站个性化用户名和密码,毕竟随着上网历史的增加,各种账号密码繁多,能记所有的信息真的是个艰巨的任务,或者一些懒人直接使用万能密码和账户,安全性差的十万八千里,
重要的一点: OpenId 只提供认证过程,不提供其他隐私资料和操作权限
Oauth 提供的是权限分配, oauth的使用方成为第三方,第三方接入Oauth来获取提供方的用户资料和权限。提供方控制用户的操作权限。例如新浪微博的应用。
也就是OpenId 是验证, Oauth是授权 。
但是似乎当前各种网站合作案例并不会严格去区分OpenId和Oauth 。很多两项功能合二为一了,安全性还是要注意。
今天关注到京东商城合作方登陆的方式让我有些费解, 正常来说这种就是OpenId的方式,作为合作方的QQ和新浪微博应该属于OpenIdProvider
步骤如下:
1 用户访问京东
2 点击登陆,可以选择使用QQ登陆
3 当使用QQ认证登陆是,输入QQ账号密码,然后直接跳转到京东首页登陆成功
这个过程看似水到渠成,是标准的OpenId, 但实际是存在安全隐患的,这个时候QQ账号实际也登陆了。用户可以直接在详情页面上,分享当前页面到 tx微博 , 无需再次输入密码, 但是当你离开京东退出的时候, QQ账户并不退出。这就会造成QQ账号信息泄露,用户却丝毫未察觉,安全性大打折扣
其实这个过程只要认证通过就好了,没有必要写腾讯的登陆session的。
所以你使用这种方式登陆京东一类网站时,要打开OpenIdProvider提供者,退出相关的网站。
新浪微博则是另外一种方式,其实就是Oauth,或许是新浪没有提供相应的OpenIDService。不过也没关系,没有腾讯类似的安全问题
1 访问京东
2 使用微博账号登陆
3 确认微博授权(典型的Oauth 策略),但是出现在OpenId的过程中。
授权页面很明确: 但其实京东没有这些相关功能的。
获得你的个人信息,好友关系
分享内容到你的微博
获得你的评论
所以现在OpenId和oauth似乎被混淆和滥用了,安全性有时容易忽略,用户还是要要注意个人信息安全。