单点登录和统一登录认证

单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

一般来说单点登录实现原理为,首次访问一个站点时会被引导至登录页,用户登录验证通过,浏览器会存储一个关键key(一般采用cookie),用户访问其他系统时会带着这个key,服务器系统发现具有key标志后,会对其进行验证,如果通过便不需要再次登录了。

第一是key,其二为系统统一的认证机制,这当中key会有一系列规则保证登录的安全性,而统一的认证机制是单点登录的前提,key是由他提供出去,每次用户以这个给出的key来这里验证,判断其有效性,这里的统一的验证平台便是passport,他负责着制作通行令牌,并且对其进行验证。

所有的passport系统(统一登录认证系统)核心功能就两个:

1.登录或注册2.授权或鉴权

一般的实现方案是这样的:

1.子系统(a.domain.com)访问需要登录的接口,未登录则跳到统一登录页面(passport.domain.com)

2.用户完成登录后,server端向主域(.domain.com)中cookie写入ticket,跳回子系统a.domain.com

3.子系统a.domain.com访问接口,server端发现带有ticket,便去passport服务器校验,成功则返回给子系统server用户id

4.子系统往自己域名写入cookie,有效时间内不再走passport鉴权

同理,如果子系统b.domain.com进行访问,因为主域上已经有ticket,便会直接进入a的业务系统,获取和该业务系统相关的权限控制等信息了