外部账号登录(OIDC / OAuth)
外部账号登录把 Google、Microsoft、GitHub 或兼容 OIDC 的身份提供商绑定到一个 TOTP 凭据。它只在 TOTP 登录模式 下可用;第三方登录成功后仍使用 fn-knock 的会话和服务范围。
配置流程
- 确认认证 Host 已配置为可从公网访问的 HTTPS 地址。
- 在
认证配置 → 外部账号登录添加提供商。 - 将 fn-knock 显示的 Callback URL 原样填入提供商的回调地址列表。
- 填入 Client ID、Client Secret;自定义 OIDC 还需要 Issuer。
- 完成一次授权,并把外部账号绑定到目标 TOTP 凭据。
- 用无痕窗口从登录页验证,再检查该 TOTP 的服务范围。
Callback URL 必须使用访问者实际可见的认证 Host。localhost、容器名、内网 IP 或错误端口会导致第三方提供商拒绝回调。
访问范围
OIDC 不是独立管理员身份。它继承所绑定 TOTP 的子域范围;撤销绑定后,第三方账号不能再登录,但不会删除该 TOTP 本身。
常见问题
| 现象 | 检查项 |
|---|---|
| 登录页没有外部账号按钮 | 当前必须是 TOTP 登录模式,且提供商已启用 |
| 提供商拒绝回调 | Callback URL、HTTPS、允许的 redirect URI、域名和端口 |
| 回调后显示未绑定 | 先在 fn-knock 中完成外部账号与 TOTP 的绑定 |
| 登录后仍被拒绝 | 检查关联 TOTP 的服务范围和目标 Host 策略 |
