=8.使用 OpenId Connect 启用 SSO 支持
对应的官方页面地址
‼️ ‼️ ‼️
SSO 目前仅适用于 :testing
标记的镜像!
当前的稳定版 v1.34.3 不包含 SSO 功能。
‼️ ‼️ ‼️
使用 OpenId Connect 的 SSO
要使用外部身份验证源,您的 SSO 需要支持 OpenID Connect:
OpenID Connect 发现端点需要可用
客户端认证将使用 ID 和 Secret 完成
仍然需要主密码,且不由 SSO 控制(根据您的观点,这可能是一个功能)。这引入了另一种控制谁可以使用密码库的方式,而无需使用邀请或使用 LDAP。
配置
以下配置可用:
SSO_ENABLED
:启用 SSOSSO_ONLY
:禁用电子邮箱 + 主密码认证SSO_SIGNUPS_MATCH_EMAIL
:在 SSO 注册时,如果存在具有相同电子邮件地址的用户,则进行关联(默认true
)SSO_ALLOW_UNKNOWN_EMAIL_VERIFICATION
:允许未知电子邮箱验证状态(默认false
)。允许此功能与SSO_SIGNUPS_MATCH_EMAIL
结合使用可能会带来账户接管的风险。SSO_AUTHORITY
:您的 SSO 的 OpenID Connect 发现端点不应包含
/.well-known/openid-configuration
部分,且无/
尾随$SSO_AUTHORITY/.well-known/openid-configuration 应返回一个 JSON 文档:https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfigurationResponse
SSO_SCOPES
:可选,允许在需要时覆盖范围(默认"email profile"
)SSO_AUTHORIZE_EXTRA_PARAMS
:可选,允许在授权重定向时添加额外参数(默认""
)SSO_PKCE
:为授权代码流程激活 PKCE(默认true
)。SSO_AUDIENCE_TRUSTED
:可选,用于信任 ID Token 的额外受众的正则表达式(client_id
始终受信任)。编写正则表达式时使用单引号:'^$'
。SSO_CLIENT_ID
:客户端 IDSSO_CLIENT_SECRET
:客户端机密SSO_MASTER_PASSWORD_POLICY
:可选的主密码策略(不支持enforceOnLogin
)。SSO_AUTH_ONLY_NOT_SESSION
:启用的话表示仅用于身份验证,不用于会话生命周期SSO_CLIENT_CACHE_EXPIRATION
:缓存对发现端点的调用,持续时间(秒),0
禁用(默认0
);SSO_DEBUG_TOKENS
:记录所有令牌以便于调试(默认false
,需要设置LOG_LEVEL=debug
或LOG_LEVEL=info,vaultwarden::sso=debug
)
回调 URL 是: https://your.domain/identity/connect/oidc-signin
账户和电子邮箱处理
对于 SSO_ALLOW_UNKNOWN_EMAIL_VERIFICATION
SSO_ALLOW_UNKNOWN_EMAIL_VERIFICATION
客户端缓存
Google 示例(滚动密钥)
手动滚动密钥
Keycloak
测试
Auth0
Authelia
Authentik
疑难解答
Casdoor
GitLab
Google Auth
Kanidm
Microsoft Entra ID
Rauthy
Slack
Zitadel
会话生命周期
禁用 SSO 会话处理
调试信息
桌面客户端
Chrome
Firefox
最后更新于