单点登录是什么,具体流程是什么
SSO 一般都需要一个独立的认证中心(passport),子系统的登录均得通过passport,子系统本身将不参与登录操作,当一个系统登录成功以后, passport将会办法一个令牌给各个子系统,子系统可以拿着令牌会获取各自手保护资源,为了减少频繁认证,各个子系统在被passport授权以后, 会建立一个局部会话,在一定时间内可以无需再次向 passport 发起认证
具体流程是
- 用户访问系统1的受保护资源,系统1发现用户未登录,跳转至sso认证中心,并将自己的地址作为参数
- sso认证中心发现用户未登录,将用户引导至登录页面
- 用户输入用户名密码提交登录申请
- sso认证中心校验用户信息,创建用户与sso认证中心之间的会话,称为全局会话,同时创建授权令牌
- sso认证中心带着令牌跳转回最初的请求地址(系统1)
- 系统1拿到令牌,去SSO认证中心校验令牌是否有效果
- SSO认证中心校验令牌,返回有效,注册系统1
- 系统1使用该令牌创建与用户会话,称为局部会话,返回受保护资源
- 用户访问系统2的受保护资源
- 系统2发现用户未登录,跳转至sso认证中心,并将自己的地址作为参数
- sso认证中心发现用户已登录,跳转回系统2的地址,并附上令牌
- 系统2拿到令牌,去sso认证中心校验令牌是否有效、
- sso认证中心校验令牌,返回有效,注册系统2
- 系统2使用该令牌创建与用户的局部会话,返回受保护资源