zoukankan      html  css  js  c++  java
  • 某次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

  • 相关阅读:
    利用Expression实现DbReader到对象属性的绑定
    致多年后第一次更新
    阿拉伯数字转换成中文大写
    Android程序的入口点是什么,不是Main()吗
    imageButton 和button的区别
    对象和引用的区别
    hdu 4455 Substrings
    Running Rabbits
    ZOJ Problem Set
    几乎就是并查集 (Almost Union-Find,UVa 11987)
  • 原文地址:https://www.cnblogs.com/handsomehuo/p/12650508.html
Copyright © 2011-2022 走看看