某次web站点单点登录问题排查记录

 

某机构客户单独开发了一套单点登录系统,用来对接云平台的用户登录 console, 通过这套额外的系统来实现单点登录云平台。

问题现象:

正常情况下登录后就能直接跳转到用户使用界面,登录失败后,仍旧弹出 console 页面,需要用户输入 console 端的账户名和密码,单点登陆失效。

问题解决思路:

  • 优先恢复客户使用:提供给客户一个临时账号和密码,让客户验证通过输入console的账号和密码能否实现登陆,进而判断网络端是否有问题(当然从问题本身来看网络应该没有问题)。在征得客户同意的前提下,由后台修改用户的密码,让客户先通过输入用户名和密码的方式登陆,先解决使用上的问题,预留出时间让运维工程师排查问题。
  • 问题分析:
    • 从现象上分析可能是 cookie 验证的问题,出在单点系统和云平台跳转的环节上。
    • 先要了解出现问题的环境,是所有环境还是部分环境(生产 or 测试),还是个别条件下,如果是个别环境或者个别条件下,就排除了云平台 console 自身的问题。
    • 打开 F12 开发者模式,观察 headers:例如 status code,remote address,根据 cookie 信息检查云平台中的日志记录,console 的输出等。
    • 询问开发人员cookie信息是在那个过程加上的,是不是加丢了,最近系统有没有升级

问题过程记录

开发这边答复最近没有升级,cookie 信息确认是加上了。

部分缓存带的 cookie 能够成功访问到云平台的 console,在云平台的日志中也能查到登录记录。

发现浏览器有提示信息:

黄色感叹号提示:

扫描二维码关注公众号,回复: 10576750 查看本文章

This set-cookie didn't specify a 'SameSite' attribute and was defaulted to 'SameSite=lax' and broke the same rules specified in the SameSitelax value. 

对于 chrome 80 后的版本,跨域的时候,set-cookie 默认规则不允许写入 cookie。

同时云平台这一侧的日志,找出 浏览器80 版本的访问记录,发现出现大量 302 重定向到 login 页面的请求。

谷歌官方有这样一条消息:谷歌宣布回滚 samesite cookie 功能。

至此,问题基本告一段落。

 

了解web跨域可以参考阮一峰的链接:http://www.ruanyifeng.com/blog/2019/09/cookie-samesite.html

 

 

 

猜你喜欢

转载自www.cnblogs.com/handsomehuo/p/12650508.html