文档

单点登录

成员通过您的身份提供商登录组织,访问权限的授予和撤销都在一处完成。

单点登录的作用

启用单点登录(SSO)后,组织成员通过公司的身份提供商登录 ModelRiver 控制台,而不是使用 ModelRiver 密码。当有人离职、您在身份提供商处停用其账户后,对方就无法再进入您的组织。

SSO 覆盖的是控制台,也就是配置项目、工作流、供应商密钥和 API 密钥的人。它不会改变您的应用调用 API 的方式,应用仍然使用 API 密钥。

ModelRiver 支持 OpenID Connect(OIDC)。Okta、Microsoft Entra ID、Google Workspace、Auth0 以及大多数身份提供商都提供该协议。

SSO 在 Scale 和 Custom 套餐中提供。所有者和管理员可以查看设置,只有所有者可以修改。

设置步骤

打开组织菜单,选择 Organization settings,再选择 Single sign-on。设置分为三步,在全部完成之前,成员的登录方式不会有任何变化。

1. 连接身份提供商

  1. 选择您的提供商:Google Workspace、Okta、Microsoft Entra ID 或 Other。
  2. 在身份提供商处创建一个 OpenID Connect Web 应用。
  3. 登记 Single sign-on 页面上显示的 Redirect URI。有些提供商称之为登录重定向 URI 或回调 URL。
  4. 回到 ModelRiver,填入页面要求的信息,以及该应用的 Client ID 和 Client secret,然后保存。

页面要求填写的内容取决于提供商:

提供商需要填写
Google Workspace无需额外填写
Okta您的 Okta 域名,例如 acme.okta.com
Microsoft Entra ID您的目录(租户)ID
Other提供商的 issuer URL

其他任何 OpenID Connect 提供商,以及 Okta 自定义授权服务器,请选择 Other。

保存时,ModelRiver 会访问该提供商,确认它是可用的 OpenID Connect 提供商。Issuer URL 必须使用 HTTPS,并且必须与提供商自己报告的值完全一致。如果不一致,错误信息会显示应填写的值。

Client secret 以加密方式存储,之后不会再显示。如需更换,填入新的值并保存。

2. 验证邮箱域名

添加公司使用的邮箱域名,例如 company.com。ModelRiver 会显示一条 DNS TXT 记录:

字段示例
类型TXT
名称_modelriver-challenge.company.com
值modelriver-verify=...

在 DNS 服务商处添加该记录,然后选择 Verify。DNS 变更可能需要几分钟才会生效。

只有邮箱地址属于已验证域名的人才能通过 SSO 登录。这可以防止身份提供商以不属于贵公司的地址为某人登录。一个域名同一时间只能由一个组织验证,gmail.com 等公共邮箱服务商不能添加。最多可添加 20 个域名。

3. 试用

在 Single sign-on 页面选择 Sign in with SSO,通过身份提供商登录一次。这样可以在要求所有人使用之前,先确认连接对您本人可用。

此后,成员可以在登录页选择 Continue with SSO 并输入工作邮箱。

各提供商设置指南

Okta

  1. 在 Okta Admin Console 中打开 Applications,选择 Create App Integration,然后选择 OIDC - OpenID Connect 和 Web Application。
  2. 在 Sign-in redirect URIs 下添加 ModelRiver 提供的 Redirect URI。
  3. 分配应当拥有访问权限的人员或群组。
  4. 在 ModelRiver 中选择 Okta,填入您的 Okta 域名,例如 your-company.okta.com,并填入应用 General 选项卡中的 Client ID 和 Client secret。

Microsoft Entra ID

  1. 在 Entra 管理中心打开 App registrations,选择 New registration。
  2. 在 Redirect URI 下选择 Web,添加 ModelRiver 提供的 Redirect URI。
  3. 在 Certificates & secrets 下创建客户端密码并复制其值。
  4. 在 Token configuration 下为 ID 令牌添加可选声明 email,以便 ModelRiver 收到每个人的邮箱地址。
  5. Entra ID 通常不会说明邮箱地址是否已验证。如果登录失败并提示 "Your identity provider didn't confirm your email address",请在 Single sign-on 页面关闭 Only accept verified email addresses(参见已验证的邮箱地址)。
  6. 在 ModelRiver 中选择 Microsoft Entra ID,填入您的目录(租户)ID,并将应用程序(客户端)ID 作为 Client ID。共享的 common 和 organizations 端点不能使用,因为它们会接受任何 Microsoft 租户的账户。

Google Workspace

  1. 在 Google Cloud 控制台打开 APIs & Services,再打开 Credentials,创建类型为 Web application 的 OAuth client ID。
  2. 在 Authorized redirect URIs 下添加 ModelRiver 提供的 Redirect URI。
  3. 将 OAuth 同意屏幕的用户类型设为 Internal,这样只有您 Workspace 中的人可以登录。
  4. 在 ModelRiver 中选择 Google Workspace。

使用 Google 时,只有属于您已验证域名的 Google Workspace 账户可以登录。个人 Google 账户即使使用公司邮箱地址,也会被拒绝。

已验证的邮箱地址

默认情况下,ModelRiver 只接受身份提供商标记为已验证的邮箱地址。Okta 和 Google Workspace 都会这样标记。

有些提供商(包括 Microsoft Entra ID)通常不提供这一标记。对于这类提供商,所有者可以关闭 Only accept verified email addresses。关闭后,只要提供商未对地址作出说明,该地址就会被接受。关闭之前,请确认成员无法在身份提供商处自行修改邮箱地址。被提供商标记为未验证的地址始终会被拒绝,并且地址仍须属于您已验证的域名。

谁可以登录

默认情况下,SSO 只为已经是组织成员的人登录。请先在 Team 页面邀请他们。

如果希望新成员无需邀请即可加入,请开启 Let new people join by signing in。此后,凡是身份提供商放行、且邮箱地址属于已验证域名的人,首次登录时就会成为成员。您可以选择他们以 Viewer 还是 Editor 身份加入。新成员不会被设为管理员,如需调整角色,请在 Team 页面修改。加入仍然计入套餐的成员数量上限。

如果某人已有使用相同邮箱地址的 ModelRiver 账户,该账户会保留。其首次 SSO 登录会将账户与您的身份提供商关联。

如果成员为自己的 ModelRiver 账户开启了双重验证,通过 SSO 登录后仍需输入验证码。

要求使用单点登录

SSO 可用之后,所有者可以开启 Require single sign-on。开启后:

  • 成员只能通过以 SSO 登录的会话访问组织的项目、日志和设置。
  • 每 12 小时需要重新通过 SSO 登录一次。因此,在身份提供商处被移除的人会在 12 小时内失去对组织的访问权限。
  • 使用密码、Google 或 GitHub 登录仍可访问成员的其他组织,但不能访问您的组织。
  • 邮箱地址不属于已验证域名的成员将无法再进入。开启该要求时,Single sign-on 页面会列出这些成员。

只有在您本人已通过 SSO 登录之后,才能开启该要求,这样设置上的错误不会把所有人锁在外面;您自己的账户也必须已开启双重验证,这样即使身份提供商无法使用,您仍能登录(见下文)。

在要求使用 SSO 期间,不能更换身份提供商。请先关闭该要求,更换提供商,您本人通过它登录一次,然后再重新开启。Client ID 和 Client secret 仍可更新。更换为其他提供商后,成员在下次登录时会重新按邮箱地址匹配。

身份提供商不可用时

只要组织所有者的账户开启了双重验证,所有者仍可使用密码登录。因此要求使用 SSO 必须先开启双重验证,并请在要求 SSO 期间保持开启。每一次这样的登录都会记录在审计日志中。

如果连接被移除、没有任何已验证域名,或者组织换到了不含 SSO 的套餐,该要求将不再生效,成员恢复原先的登录方式。

会话

每次登录都会创建一个会话,您可以在 Settings 的 Active sessions 中查看,其中包括浏览器、登录方式和最近使用时间。选择会话旁的 Sign out 即可结束该会话。被登出的会话会在下一次请求时失效。

重置密码会让您在所有设备上登出。当成员被移出组织时,其通过该组织 SSO 登录的会话也会随之结束。

审计日志

组织审计日志会记录 SSO 的设置与变更、域名的添加、验证和移除、该要求的开启或关闭,以及每一次登录(包括失败的登录)。

故障排查

  • "Single sign-on isn't set up for this email address":该地址的域名尚未被任何已开启 SSO 的组织验证。请检查拼写,或使用其他方式登录。
  • "You don't have access to this organization yet":您不是成员,且未开启通过登录加入。请让管理员邀请您。
  • "Your email address isn't on a domain this organization has verified":身份提供商报告的地址属于其他域名。请让所有者验证该域名。
  • "Sign in with your company's Google Workspace account":您选择了个人 Google 账户。请在 Google 登录界面选择您的 Workspace 账户。
  • "The TXT record wasn't found yet":DNS 记录尚未生效。请检查名称和值,等待几分钟后再次选择 Verify。
  • "The provider reports its issuer as ...":请将该值原样填入 Issuer URL。
  • "Your identity provider didn't confirm your email address":提供商没有将该地址标记为已验证。参见已验证的邮箱地址。
  • Microsoft Entra ID 登录失败:请确认已为 ID 令牌添加 email 可选声明。