前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >单点登录 SSO 的前世今生

单点登录 SSO 的前世今生

作者头像
业余草
发布2020-04-24 14:22:41
5500
发布2020-04-24 14:22:41
举报
文章被收录于专栏:业余草业余草

编辑:业余草

HTTP无状态协议

HTTP是无状态协议,浏览器的每一次请求,服务器都会独立处理,不与之前或之后的请求产生关联,所以,任何用户都可以通过浏览器访问服务器资源。

session和cookie机制

session是服务器级别的,cookie是浏览器级别的。

session:浏览器第一次请求服务器,服务器创建一个会话,并将会话的id作为响应的一部分发送给浏览器,浏览器存储会话id,之后浏览器的每一次访问服务器都会带上会话id,服务器根据会话id就知道是不是同一个用户了。

cookie:session机制每一次浏览器访问服务器,服务器都要判断一次会话id,显然不太合适。于是浏览器来维护会话id就是cookie机制。浏览器每次访问服务器都会自动附带cookie信息。

cookie和session机制就可以确保一个用户登录到一个系统后,之后的操作在一定时间内就不需要再次登录系统。

多系统解决方案1--顶级域名

以上的session和cookie都只适用于单系统,但是系统数量变多成为多系统时,我们总不能访问一个分支系统就登录一次吧,于是将这些子系统的域名统一到一个顶级域名中,然后将cookie域设置成顶级域名,于是各个子系统之间就可以共享cookie。

单点登录

从哪来

由于共享cookie有很多局限性。例如:域名难以统一,子系统技术难以统一。所以,需要一种全新的登录方式实现多系统应用群的登录--单点登录。

是什么

单点登录全称single sign on,简称SSO,指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录和单点注销两部分。

如何实现

登录

sso需要一个独立的认证中心,只有认证中心能接受用户的用户名密码等安全信息,其他系统不提供登录入口,只接受认证中心的间接授权。间接授权通过令牌实现,sso认证中心验证用户的用户名密码没问题,创建授权令牌,在接下来的跳转过程中,授权令牌作为参数发送给各个子系统,子系统拿到令牌,即得到了授权,可以借此创建局部会话,局部会话登录方式与单系统的登录方式相同。具体过程如图所示:

操作步骤如下:

1.用户访问系统1的受保护资源,系统1发现用户未登录,跳转至sso认证中心,并将自己的地址作为参数 2.sso认证中心发现用户未登录,将用户引导至登录页面 3.用户输入用户名密码提交登录申请 4.sso认证中心校验用户信息,创建用户与sso认证中心之间的会话,称为全局会话,同时创建授权令牌 5.sso认证中心带着令牌跳转会最初的请求地址(系统1) 6.系统1拿到令牌,去sso认证中心校验令牌是否有效 7.sso认证中心校验令牌,返回有效,注册系统1 8.系统1使用该令牌创建与用户的会话,称为局部会话,返回受保护资源 9.用户访问系统2的受保护资源 10.系统2发现用户未登录,跳转至sso认证中心,并将自己的地址作为参数 11.sso认证中心发现用户已登录,跳转回系统2的地址,并附上令牌 12.系统2拿到令牌,去sso认证中心校验令牌是否有效 13.sso认证中心校验令牌,返回有效,注册系统2

14.系统2使用该令牌创建与用户的局部会话,返回受保护资源骤

注销

在一个子系统中注销,所有的子系统都会注销。如下图所示:

具体操作步骤

1.用户向系统1发起注销请求 2.系统1根据用户与系统1建立的会话id拿到令牌,向sso认证中心发起注销请求 3.sso认证中心校验令牌有效,销毁全局会话,同时取出所有用此令牌注册的系统地址 4.sso认证中心向所有注册系统发起注销请求 5.各注册系统接收sso认证中心的注销请求,销毁局部会话 6.sso认证中心引导用户至登录页面

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 编辑:业余草
  • HTTP无状态协议
  • session和cookie机制
  • 多系统解决方案1--顶级域名
  • 单点登录
    • 从哪来
      • 是什么
        • 如何实现
          • 登录
          • 注销
      相关产品与服务
      访问管理
      访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档