某次web站点登录重定向问题排查记录

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

问题现象:

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

问题解决思路:

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

问题过程记录

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

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

发现浏览器有提示信息:

黄色感叹号提示:

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. 

samesite 是chrome 为了限制第三方 cookie 问题而加的功能,对于 chrome 80 后的版本,跨域的时候,Lax 在大多数情况下不发送第三方 cookie。

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

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

至此,问题基本告一段落,原来是浏览器版本的锅。

 

了解《Cookie 的 SameSite 属性》可以参考阮一峰的链接:http://www.ruanyifeng.com/blog/2019/09/cookie-samesite.html

posted @ 2020-04-07 22:17  Loach_inSH  阅读(423)  评论(0编辑  收藏  举报