单点登录,统一认证

关于单点登录的几点心得:
一、登录流程如下:

假设有系统A、系统B,以及注册中心。
1.访问系统A,未登录,将被重定向至注册中心。
2.注册中心发现未登录,跳转至登录页面,用户输入用户名、密码,登录成功。注册中心生成Token,state字段,然后返回,由浏览器重定向至系统A。

3.系统A获取Token,state后,通过系统A后台,调用注册中心后台,验证Token有效性,以及state值是否正常。state值是为了避免跨站请求伪造:如系统A被植入页面脚本,使用黑客的Token请求注册中心,黑客的Token为登录状态,这时系统A将误认为注册中心验证通过,误将当前session在系统A中置为已登录状态。

4.注册中心验证通过后,系统A的后端将当前会话置为已登录。

5.如果此时跳转至系统B,将重定向至注册中心,注册中心判断用户已登录,生成另一Token、state,重定向至系统B。系统B的处理过程同系统A。

二、系统A、系统B,在公共页面放一隐藏的iframe,套用注册中心的页面,页面隔一段时间,调用注册中心一次,保持注册中心的session不过期。

三、用户在注册中心退出登录时,注册中心分别调用系统A、系统B,使用户在系统A、系统B中的会话设置成未登录状态。可通过之前生成的Token调用系统A,系统A根据Token找到session,将session进行invalidate。系统B的处理过程类似系统A。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值