跳转到内容

配置 OIDC 外部连接

查看 Markdown

本教程把企业身份提供方配置为 OIDC 外部连接。Sudomimus 是接入方(relying party):浏览器会被重定向到你的 IdP;IdP 返回后,Sudomimus 验证 ID Token,再进入正常的第一层、第二层和签发流程。

你需要:

  • With 门户中拥有一个组织;
  • 有权在 IdP 中创建应用;
  • IdP 支持 OpenID Connect Discovery、Authorization Code、机密客户端、PKCE S256 和 RS256 签名的 ID Token;
  • IdP 签发的 client secret。

先决定该连接是作为某个应用的「使用……登录」按钮、用于已验证域名的强制 SSO,还是两者都用。同一个连接支持这两种模式。

在 IdP 中创建 Web机密 OIDC 应用。不同提供方使用的名称可能不同,请按下表配置:

IdP 设置
应用类型Web / confidential client
Grant 或流程Authorization Code
Redirect URIhttps://federation.sudomimus.com/oidc/callback
PKCE启用;必须接受 S256
客户端认证Client secret
Scopes至少包含 openid;通常使用 openid email profile

Redirect URI 必须精确匹配。不要注册 Core UI 的地址:提供方响应会终止于 Auth API。

离开 IdP 前记录以下值:

  • 精确的 Issuer URL
  • Client ID
  • Client Secret

每个 ID Token 都必须包含稳定且非空的 sub。Sudomimus 还会验证 issaudexpiat、每次登录的 nonce、RS256 签名,以及签名 kid 是否存在于 Discovery 得到的 JWKS 中。

以下标准 claims 可选,但通常很有用:

Claim用途
email + email_verified: true用于账户匹配和邮箱所有权判断的候选邮箱
given_name名字资料值
family_name姓氏资料值

IdP 验证过的邮箱不会自动获得 Sudomimus 信任。只有当该连接所属组织当前持有相应邮箱域名的已验证声明时,它才能用于邮箱所有权和账户匹配。

在 With 门户中:

  1. 打开你的组织。
  2. 打开外部连接并选择新建连接
  3. 选择 OpenID Connect
  4. 输入显示名称、Issuer URL、Client ID 和 Client Secret。
  5. 输入由空格或换行分隔的 scopes。必须包含 openid,通常从 openid email profile 开始。
  6. 创建连接。

Sudomimus 会立即验证 issuer 和 Discovery 文档。无法访问或验证时会返回 FederationConnectorDiscoveryFailed

Client secret 是只写信息:保存时会被加密,之后不会通过连接 API 或门户返回。请把原始值保存在 secret manager 中;只有轮换时才输入新值。

选择其中一种或同时使用:

协议已经由连接固定,两种第一层规则都不需要额外的 OIDC/SAML 开关。

使用一个非管理员测试用户,并确保它拥有你刚刚配置的 claims。

应用级模式下,为应用开启一个 Inquiry,然后选择该连接对应的「使用……登录」按钮。域级模式下,输入已验证 SSO_ONLY 域名中的邮箱,然后通过要求的连接继续。

确认:

  • 浏览器到达预期的 IdP tenant;
  • IdP 返回固定的 Auth API callback;
  • 登录进入应用正常的完成路径;
  • 第二层允许该测试身份。协议冒烟测试可以先用 EVERYONE;若使用 EMAIL,要确保它匹配 Sudomimus 可以信任的邮箱。

如果连接保存成功但登录失败,先检查注册的 Redirect URI、ID Token 的 nonce、audience 与 issuer、RS256 签名、JWKS kid,以及配置的 scopes 是否真正释放了预期 claims。浏览器看到的联合登录错误会被刻意保持为通用信息。