单点登录 (SSO)
尽管 SSO 有诸多好处,但它是一套搭建和维护都很复杂的系统。如果配置不当,可能导致你的实例被未授权访问。在启用 SSO 之前,请务必正确配置并充分测试你的部署。如果你对安全隐患不确定,建议保持 SSO 自动登录处于禁用状态,转而使用其他认证方式。
SSO 允许你在需要保护的站点上通过登录门户来创建用户并保护众多不同的页面。虽然其搭建较为复杂,但它既是学习 SSO 的好途径,也能更好地保护你的 ST 实例在互联网上的安全。
SSO 还可以替代 HTTP 基础认证,作为远程连接的访问控制机制。
之所以推荐这样做,是因为 SSO 比 HTTP 基础认证提供了更好的安全性和功能。
Authelia 和 Authentik 是两款可与 SillyTavern 配合使用的开源 SSO 提供商。
配置可信代理
只有来自被配置为可信代理的 IP 地址的请求,才能通过转发必要的请求头来认证用户。默认情况下,IPv4 和 IPv6 的回环地址均被信任。要允许其他 IP 通过 SSO 请求头进行认证,请将它们添加到你的 config.yaml 文件中的 sso.trustedProxies 列表:
还支持使用 CIDR 和通配符表示法来指定多个 IP 或地址段,例如 192.168.0.* 或 10.0.0.0/24。
sso:
trustedProxies:
- ::1 # IPv6 loopback address - trusted by default
- 127.0.0.1 # IPv4 loopback address - trusted by default
- '192.168.0.1' # Example IP address of a trusted proxy
通过 SSO 登录
如果你的 SSO 提供的用户名与某个 SillyTavern 用户账户的用户标识完全一致,你就可以通过 SSO 以该用户身份登录 SillyTavern。要启用此功能,请在你的 config.yaml 文件中修改以下选项之一:
Authelia
sso:
autheliaAuth: true
Authentik
sso:
authentikAuth: true
这两个选项都会增强或替代多用户模式部署中内置的密码管理组件。