什么是单点登录

单点登录原理:

单点登录的实现方案,一般就包含:Cookies,Session同步,分布式Session方式,目前的大型网站都是采用分布式Session的方式。我先从cookie的实现谈起,你就能很清楚的知道为什么需要分布式session方式实现单点登录。

先上图:

 其中,Application表示业务系统,每个业务系统都有自己的登陆系统,也就表示每个业务系统都能单独发布、运行、服务权限认证;但是,当在项目当中集成其他的业务系统时,就需要将登陆系统提取出来,这样就形成了SSO系统(单点登录系统)。

实现描述:

  1. 用户访问Application1系统,Application1系统是需要登录的,但用户现在没有登录。
  2. 跳转到SSO登录系统SSO系统也没有登录,弹出用户登录页。
  3. 用户填写用户名、密码,SSO系统进行认证后,将登录状态写入SSO的session,浏览器(Browser)中写入SSO域下的Cookie。
  4. SSO系统登录完成后会生成一个ST(Service Ticket),然后跳转到Application1系统,同时将ST作为参数传递给Application1系统。
  5. Application1系统拿到ST参数后,从后台向SSO发送请求,验证ST参数是否有效。
  6. 验证通过后,Application1系统将登录状态写入session并设置Application1域下的Cookie。

至此,跨域单点登录就完成了。以后我们再访问app系统时,app就是登录的。接下来,我们再看看访问Application2系统时的流程。

  1. 用户携带ST参数访问Application2系统,Application2系统没有登录,跳转到SSO。
  2. 由于SSO已经登录了,不需要重新登录认证。
  3. SSO生成ST参数,浏览器跳转到Application2系统,并将ST参数作为参数传递给Application2系统。
  4. Application2系统拿到ST参数,后台访问SSO,验证ST参数是否有效。
  5. 验证成功后,Application2将登录状态写入session,并在Application2域下写入Cookie。

这样,Application2系统不需要走登录流程,就已经是登录了。SSO,Application1和Application2在不同的域,它们之间的session不共享也是没问题的。

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值