15 开启目标站点 Passkey 验证
15.1 目标
说明目标站点使用 Passkey、WebAuthn 或安全密钥登录时,在 Sa2web 远程浏览器环境中的准备事项、操作流程、本地测试方式和验证要点。
Passkey 的关键点不是“能不能打开登录页”,而是浏览器看到的域名、HTTPS 可信状态和目标站点的认证交互是否都满足 WebAuthn 要求。
15.2 前置条件
使用 Passkey 登录前,至少确认:
| 条件 | 说明 |
|---|---|
| 目标站点支持 Passkey / WebAuthn / 安全密钥 | 登录页能选择对应认证方式 |
| 用户已在目标站点绑定 Passkey | 未绑定时通常需要先在目标站点账号安全设置中添加 |
| 远程浏览器链路支持认证交互 | 用户能看到浏览器提示,并能完成认证动作 |
| 访问域名正确 | Passkey 与浏览器 origin 强绑定,不能随意换成 IP 或临时域名 |
| HTTPS 被信任 | 浏览器认为页面不安全时,WebAuthn 可能无法正常工作 |
官方文档说明 Passkey 当前仍为 alpha 阶段,部分站点可能会登录失败。生产使用前必须按站点逐一验证。
15.3 基本登录流程
当目标站点已经配置完成,用户按以下流程使用:
- 管理员在站点配置中确认 URL、域名和登录流程正确;
- 用户通过 Sa2web 前端进入目标站点;
- 在目标站点登录页选择 Passkey 登录;
- 按浏览器提示完成认证;
- 登录成功后,确认远程浏览器进入目标业务页面。
验证时不要只看“页面是否打开”,还要确认目标站点是否真正识别了 Passkey 登录方式。
15.4 为什么域名很重要
Passkey 与浏览器看到的域名,也就是 origin,强绑定。测试目标站点 Passkey 登录时,不能只通过服务器 IP 或临时转发地址访问。
例如目标站点实际绑定的是:
login.example.com
如果测试时用下面这些地址访问,就可能触发失败:
https://192.168.1.105/
https://temp-tunnel.example.net/
https://another-domain.example.com/
正确做法是让本地浏览器以目标站点域名发起 HTTPS 访问,并让该域名被 Sa2web 识别为可代理的业务域名。
15.5 目标站点 Passkey 本地测试
本地测试适合在正式授权用户前验证链路。核心目标是让浏览器地址栏里的 origin 等于目标站点域名,并且证书被本地浏览器信任。
15.5.1 添加目标站点域名
进入管理平台:
系统设置 > 域名管理
点击 添加域名,添加目标站点域名,例如:
login.example.com
域名管理用于维护允许系统处理的业务域名。没有添加的域名,即使 hosts 指向了服务器,也不一定能被 Sa2web 按预期处理。
15.5.2 安装并信任 Caddy 根证书
内网或测试环境使用 Caddy 内部证书时,本地浏览器必须信任对应根证书,否则 Passkey / WebAuthn 可能因为 HTTPS 不可信而无法完成认证。
通常需要在测试电脑上安装 Caddy 根证书,并让系统或浏览器信任它。内网证书安装方式见官方“内网证书安装”文档。
如果是公网正式域名,并使用浏览器已信任的公开 CA 证书,通常不需要手动安装根证书。
15.5.3 修改本地 hosts
在本地电脑的 hosts 文件中,把目标站点域名指向 Sa2web 部署服务器 IP。
<SERVER_IP> login.example.com
示例:
192.168.1.105 login.example.com
不同系统的 hosts 文件位置:
| 系统 | hosts 路径 |
|---|---|
| Windows | C:\Windows\System32\drivers\etc\hosts |
| macOS / Linux | /etc/hosts |
修改后建议重新打开浏览器。必要时清理 DNS 缓存,避免浏览器继续使用旧解析结果。
15.5.4 使用目标域名访问测试地址
使用目标站点域名访问 Sa2web 生成或业务场景需要的测试地址:
https://<目标站点域名>/?saas=<...>&_d=<目标站点地址>
参数说明:
| 参数 | 说明 |
|---|---|
<目标站点域名> |
已在“域名管理”中添加,并已在本地 hosts 指向部署服务器 IP 的域名 |
saas |
系统生成或业务场景需要携带的 SaaS 访问参数 |
_d |
目标站点地址,通常为需要实际打开的目标站点 URL |
完成以上准备后,浏览器地址栏中的 origin 会是目标站点域名,并且 HTTPS 证书被本地信任,才具备进行目标站点 Passkey 登录测试的基础条件。
15.6 结果验证
测试时按下面的清单确认:
- 目标站点登录页能识别并展示 Passkey 登录方式;
- 用户能触发浏览器认证提示;
- 用户能完成认证动作;
- 登录成功后进入目标业务页面;
- 认证失败时,目标站点提示和远程浏览器日志可用于排查。
15.7 常见失败原因
| 现象 | 可能原因 | 处理方向 |
|---|---|---|
| 登录页没有 Passkey 入口 | 目标账号未绑定 Passkey,或站点未开放该方式 | 先在目标站点账号安全设置中绑定或启用 |
| 点击 Passkey 后无反应 | 浏览器 origin 不匹配,或页面不是可信 HTTPS | 检查域名、证书和访问地址 |
| 提示当前环境不支持 | 目标站点对 WebAuthn 环境要求更严格 | 换目标站点支持的浏览器配置后再测 |
| 认证后仍回到登录页 | 目标站点会话未建立,或认证回调被拦截 | 查看目标站点提示和远程浏览器日志 |
| 本地测试可以,正式用户失败 | 用户权限、分组、站点配置或网络不同 | 对比测试用户和正式用户的授权与配置 |
15.8 上线建议
Passkey 涉及目标站点自身策略、浏览器环境、域名和证书,建议按站点灰度验证:
- 先用管理员或测试用户完成本地测试;
- 再用普通测试用户通过 Sa2web 前端验证;
- 确认站点配置、域名管理和证书都稳定;
- 小范围授权业务用户;
- 收集失败站点和失败浏览器环境,单独记录兼容性结论。
15.9 验收
官方文档:
- https://www.sa2web.com/docs/zh/appendix/passkey