IT源码网

SSO单点登录流程记录

lxf 2021年04月03日 程序员 433 0

单点登录流程

  1. 向W1发送请求验证页面,重定向到SSO

  2. 向SSO发送请求,如果存在cookie,则返回token

  3. 浏览器将token发送给W1,W1到SSO验证token

  4. 通过后跳转响应验证页面

  5. 向W1发送请求验证页面,重定向到SSO

  6. 向SSO发送请求,若不存在cookie,重定向到W1登录页

  7. 提交登录信息,W1将登录信息发送给SSO验证身份信息

  8. SSO验证成功并生成token,返回给W1,W1将token返回给浏览器

  9. 浏览器将token发送到SSO,SSO创建cookie并将重定向W1的信息返回给浏览器

  10. 浏览器将token发送给W1,W1发送到SSO进行验证(4,5,6也可以是返回令牌,W1将令牌再发送到SSO进行验证)

  11. 验证通过进行响应

  12. 向W2发送请求验证页面,重定向到SSO,带cookie

  13. 返回重定向W2的token

  14. 浏览器将token发给W2,W2发送到SSO进行验证

  15. 验证通过并响应

分布式session共享

  1. session复制到所有机器
  2. session绑定,利用hash使得同一个ip总是请求到同一台服务器。无法实现高可用,机器挂了就不存在了
  3. 利用cookie
  4. 利用独立部署的session服务器(集群)
    这种解决方案事实上是应用服务器的状态分离,分为无状态的应用服务器和有状态的session服务器,然后针对这两种服务器的不同特性分别设计架构。
    对于有状态的session服务器,一种比较简单的方法是利用分布式缓存(memcached), 数据库等。在这些产品的基础上进行包装,使其符合session的存储和访问要求。
    如果业务场景对session管理有比较高的要求,比如利用session服务基层单点登录(sso),用户服务器等功能,需要开发专门的session服务管理平台。
评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!