You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Uptime-kuma绕过SSO页面获取正确站点监控状态?

Uptime Kuma监控SSO认证站点的配置方案

默认的HTTP(s)监控探针不会执行页面交互逻辑,碰到需要手动跳转、点授权、输凭证的SSO场景时,只会拿到SSO登录页的响应,根本访问不到实际业务站点,自然返回的状态不准。根据你的SSO管控权限,选下面对应方案就行:

方案1:预填认证Cookie(零额外依赖,适合SSO会话有效期长的场景)

  • 本地浏览器正常走完SSO流程,登录到要监控的目标站点
  • 按F12打开开发者工具,切到「应用/Application」面板,复制目标站点下所有和认证相关的Cookie(一般命名带session、token、sso字样)
  • 编辑Uptime Kuma里的对应监控项,类型选「HTTP(s)」,展开高级设置,找到「请求头」配置,新增Cookie头,值填你复制的Cookie串,格式为key1=value1; key2=value2
  • 打开「跟随重定向」开关,最大重定向次数设为5及以上,在「有效状态码」配置里加上业务站点正常返回的状态值(比如200、304),不要只认默认的200
  • 额外加一条关键字匹配规则,填只有登录后业务站点才会显示的专属文案,避免把SSO登录页误判成正常
  • 注意:如果SSO会话定期过期,需要手动更新Cookie;嫌麻烦可以写个定时脚本自动调用SSO登录接口拿新Cookie,再通过Uptime Kuma的API更新监控配置,不用手动维护。

方案2:浏览器仿真监控(适配所有交互式SSO,无需担心会话过期)

这个方案用无头Chrome真实加载页面,能模拟人工点击、输入的操作过SSO,适配所有类型的交互式认证场景。

  • 部署要求:如果是Docker部署Uptime Kuma,直接用带-browser标签的官方镜像;裸机部署的话提前在服务器上装个Chromium/Chrome就行
  • 新建/编辑监控项,类型选「HTTP(s) - 浏览器仿真」,填入目标站点地址
  • 找到「自定义脚本」配置区,写SSO自动交互逻辑,参考示例:
// 等待SSO登录页加载完成,账号输入框出现
await page.waitForSelector('#username', { timeout: 10000 });
// 填入专门给监控用的SSO账号(建议单独建最小权限的只读账号,别用个人账号)
await page.type('#username', 'sso_monitor_xxx');
await page.type('#password', '对应账号密码');
// 点击登录按钮
await page.click('#login-submit');
// 等待跳转到业务站点,检测专属元素出现,代表登录成功
await page.waitForSelector('#dashboard-container', { timeout: 15000 });
  • 如果SSO开了MFA二次验证,可以在脚本里加TOTP自动生成验证码的逻辑,全程不用人工干预
  • 注意:浏览器仿真的资源占用比普通HTTP监控高不少,低配置服务器不要开太多同类型监控。

方案3:SSO侧配置白名单(最稳定,零长期维护成本)

如果SSO系统是你们内部可管控的,优先用这个方案:

  • 找SSO管理员配置规则,把Uptime Kuma的出口IP加到白名单,针对监控的目标站点路径设置免认证策略,Uptime Kuma发请求时直接跳过SSO校验
  • 这种方式用最基础的HTTP(s)监控就能拿到准确状态,不存在Cookie过期、脚本失效的问题,生产环境最推荐。

避坑:别尝试给普通HTTP监控配Basic Auth传SSO账号密码,90%以上的企业SSO都不支持这种认证方式,配了也只会一直拿到登录页响应。

内容的提问来源于stack exchange,提问作者Laster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 04:54:18