连接 OpenID Connect 提供方
当你的身份提供方使用 OpenID Connect 而非 SAML 时,请参照本指南。任何通过 OIDC 认证的签发者都适用——Pocket ID、Keycloak、Auth0、Zitadel、Google Workspace 之类 都遵循同样的步骤;区别只在于提供方展示这些值的位置。
前提条件
标题为“前提条件”的部分- 一个可以在其中创建客户端的 OIDC 提供方——记下它的客户端 ID 和签发者 URL
(即
.well-known/openid-configuration文档所在的基址),以及当客户端属于机密 类型时所需的客户端密钥(公共 PKCE 客户端没有密钥), - 一台由你管理的 Control Center 服务器(即服务器所有者)。
- 打开设置 → 服务器 → 单点登录,切换到 OpenID Connect。
- 填写签发者 URL、客户端 ID,以及提供方签发了密钥时的客户端密钥 (可选)。Control Center 会从签发者的标准发现文档中发现各个端点——无需针对 不同提供方分别配置。
- 在提供方处,为该客户端注册重定向地址
https://<your-server>/oidc/callback。 - 如果你的组位于
groups以外的 claim 下,请设置 组 claim 名称;如有需要,可 把组映射到角色(SSO 永远无法授予所有者角色)。 - 选择成员资格策略(自动加入每个工作区,或要求按工作区发送邀请),打开使用 OpenID Connect 登录,然后点击保存连接。
- 点击测试连接——服务器会获取签发者的发现文档并确认其各个端点,因此出现绿色 提示意味着除浏览器往返之外的一切都正常。若要同时检查客户端注册情况,请使用 下方的检查器。
- 实际登录一次:Web 连接界面会显示使用 OpenID Connect 登录,也可以直接打开
https://<your-server>/oidc/login。
Claim(电子邮件、姓名、组)由你的服务器通过 TLS 从签发者的令牌端点读取——浏览器
从不提供它们,因此不涉及本地 JWT 签名校验。应允许该客户端请求
openid profile email 作用域,这正是 Control Center 所请求的内容。
由于该 TLS 通道是认证 claim 的唯一依据,签发者 URL 必须为 https——明文签发者
会让任何路径上的攻击者随意伪造身份。仅在本地开发时,回环签发者(localhost、
127.0.0.1、::1)才接受 http。
从本页检查你的配置
标题为“从本页检查你的配置”的部分下面的检查器在你的浏览器中运行。它直接获取你签发者的发现文档,因此本站永远看不到 该文档,并按服务器的规则进行检查:https 签发者与文档一致、端点位于签发者自己的源 上、PKCE S256,以及你的客户端类型所需的令牌认证方式。提供客户端 ID 和服务器地址 后,它还可以打开一次测试登录,以显示该客户端及其重定向 URI 是否已注册。它绝不会 索取客户端密钥。
Runs in your browserYour browser fetches the discovery document straight from your issuer. Add a server address and it also asks that server which sign-in methods it offers. This site never receives what you type.
Test sign-in at your provider
- Your provider's sign-in or consent page: the client ID and redirect URI are registered. You can close the tab.
- An error at your provider: it names what to fix, usually a redirect URI that is not registered or an unknown client ID.
- Your server's "Sign-in failed" page: also a pass. The provider accepted the request and sent you back; your server refuses it only because this page started the sign-in, not your server.