1.认证与授权-概述
一个应用需要先认证用户身份,然后依据用户身份再授权,二者需要联合使用。
下面介绍两个业界的标准协议与一个解决方案
-
openID : 认证标准 (认证意味着证实某个用户是他所声明的哪个人)
代表企业 :[微信,谷歌,雅虎] -
oauth : 授权标准 (授权意味决定一个身份确定的用户能够访问那些资源,)
代表企业 :[淘宝,爱奇艺,斗鱼TV,新浪微博 ] -
SSO : 单点登录 (是一种多系统之间解决方案,指在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。)
2.openID是什么?
你在一家支持openID的网站上注册了账号, 该网站会给你一个ID,你可以用这个ID在其他网站做身份认证(前提其他网站要支持),不需要在其他网站重复注册账号。
协议标准的演进 openID1.0, openID2.0
注意点 : 如果回调地址没有任何限制,极易遭黑客利用
3.oauth是什么?
你在支付宝上设置了地铁免密支付, 那么你每次刷地铁卡就不需要每次在支付宝输入密码支付, 因为你已经设置了支付宝支付模块对易通行的授权
协议标准的演进 oauth1.0, oauth2.0
oauth2.0 完全不兼容 oauth1.0
注意点 : 如果回调地址没有任何限制,极易遭黑客利用
4.SSO是什么?
你在ERP系统上登录后, 那么你再次进入MES系统则不需要再次登录
要实现SSO,需要以下主要的功能:
- 所有应用系统共享一个身份认证系统。
- 所有应用系统能够识别和提取ticket信息
注 : 单点登录与是否允许一个账户多地登录是两码事
5.扩展
oauth2的access_token是一个唯一标识字符串, 字符串本身可以具有意义也可以没有意义。
例如:JWT(json-web-token) 就是将access_token变成了一串存储用户信息并加密后的字符串