华为云成长中心接口为什么 Cookie 直调会 403:一次 SSO 链路逆向实录(2026-11-03)
【摘要】 把每日签到搬进定时脚本时遇到一个反直觉的现象:浏览器里明明是登录态,用同一份 Cookie 直调 devdata 接口却
把每日签到搬进定时脚本时遇到一个反直觉的现象:浏览器里明明是登录态,用同一份 Cookie 直调 devdata 接口却返回 not login。排查一圈才发现,devdata 的 API 域和登录态根本不在一个域上。
## 三个域的分工
developer.huaweicloud.com 是门户,devdata.huaweicloud.com 是数据接口,auth.huaweicloud.com 是统一登录。门户域的 Cookie(masked_user 那批)只证明"门户认识你",devdata 每次收到请求时走的是自己的 CAS 校验:无会话就 302 到 auth 登录页,auth 侧有 SSO 会话(SSOTGC/SSOJTC)时自动签发 ST 票据回跳,票据兑换后 devdata 才有自己的会话。
## 三个试错结论
一是 validateUser 并不是万能换票口:空表单提交在已登录状态下会返回 427(设备已登录语义),它只在登录页 JS 的完整上下文里可用。二是票据兑换路径有讲究,devdata 对外广告的 service 是根路径,但网关上根路径没有注册路由,票落地就是 no Route matched。三是网关侧对非浏览器客户端有指纹判定,同样的链路换掉 TLS 指纹就走不通。
## 最终可行解
让真实浏览器自己完成这套 SSO:注入 Cookie 打开业务页,页面 JS 按它自己的节奏完成登录态建立,之后所有接口调用都在页面上下文内 fetch,天然带上正确的 Cookie、Referer 和 csrf 头。无头浏览器环境里这套流程完全可复现,单次全程十几秒。
结论:面对多域 SSO 站点,逆向接口要先逆向"会话在哪个域建立",而不是急着抄接口路径。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)