单点登录是是什么?具体流程是什么?
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使⽤该令牌创建与用户的局部会话,返回受保护资源