SSO

有状态的会话:用户登录后,在server端保存用户信息,用户每次登录后使用用户登录的信息,和server端的信息进行对比校验;

无状态会话:用户登录后,server端不保存用户信息,而是在用户第一次登录的时候生成tocken,下发给用户,用户每次访问server端都要带上tocken,server端对tocken进行校验;生成tocken的时候可以使用私钥,私钥在网络中不传输只有server端有保存,每次用私钥对用户传过来的tocken进行校验;

无状态会话方案:

 

 

有状态方案:session共享方案-1:

 

 

有状态方案:session共享方案-2:

第一个方案的主要问题在于session共享需要时间,无法保证各个server的session同步,针对这个问题可以将session拿出来统一存放

 

 有状态方案:session共享方案-3:流量定向分发

        这个方案的核心就是将用一个用户的访问下发到同一个server,这样就不存在server端session共享的问题,但是缺点是有可能会造成流量倾斜,出现用户的请求都下发到相同的server上

 

 

无状态JWT方案:

这个方案的关键是server端的密文不能泄露,具体的做法:

1 通过配置管理服务统一管理密文配置,开发环境和生产环境使用不同的密文,生产环境的配置禁止开发和测试人员拉取;

2 对代码进行统一的检查,定义好规则,禁止在日志中打印密文;

 

      

 

posted @ 2021-11-17 14:10  奋斗吧🚗少年  阅读(319)  评论(0)    收藏  举报