跳转到内容

连接 OpenID Connect 提供方

当你的身份提供方使用 OpenID Connect 而非 SAML 时,请参照本指南。任何通过 OIDC 认证的签发者都适用——Pocket ID、Keycloak、Auth0、Zitadel、Google Workspace 之类 都遵循同样的步骤;区别只在于提供方展示这些值的位置。

  • 一个可以在其中创建客户端的 OIDC 提供方——记下它的客户端 ID 和签发者 URL (即 .well-known/openid-configuration 文档所在的基址),以及当客户端属于机密 类型时所需的客户端密钥(公共 PKCE 客户端没有密钥),
  • 一台由你管理的 Control Center 服务器(即服务器所有者)。
  1. 打开设置 → 服务器 → 单点登录,切换到 OpenID Connect。
  2. 填写签发者 URL、客户端 ID,以及提供方签发了密钥时的客户端密钥 (可选)。Control Center 会从签发者的标准发现文档中发现各个端点——无需针对 不同提供方分别配置。
  3. 在提供方处,为该客户端注册重定向地址 https://<your-server>/oidc/callback。
  4. 如果你的组位于 groups 以外的 claim 下,请设置 组 claim 名称;如有需要,可 把组映射到角色(SSO 永远无法授予所有者角色)。
  5. 选择成员资格策略(自动加入每个工作区,或要求按工作区发送邀请),打开使用 OpenID Connect 登录,然后点击保存连接。
  6. 点击测试连接——服务器会获取签发者的发现文档并确认其各个端点,因此出现绿色 提示意味着除浏览器往返之外的一切都正常。若要同时检查客户端注册情况,请使用 下方的检查器。
  7. 实际登录一次: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.

Needed for the test sign-in.

Client type

Never paste the secret here. The check only needs to know whether one exists.

The address your users open. Adds a reachability check and a test sign-in.

Paste the discovery document instead

For providers that block other sites from reading it.