OIDC / SSO——通过身份提供方登录

Premium

SSO登录(OIDC / OAuth2):您的用户用企业账户登录Omniscol,而不必使用专用密码——只需记住一个账号,随着人员入职和离职集中启用与停用,并由您的信息系统统一落实安全策略(MFA、过期等)。Omniscol支持Google Workspace、Microsoft Entra ID、Keycloak以及任何符合OIDC的提供方。

OpenID Connect(OIDC)建立在OAuth2之上,让您的用户可以用企业账户登录Omniscol,而不必使用Omniscol专用密码。它有三个好处:只需记住一个密码;人员入职或离职时集中停用账户;由信息系统一侧管理的安全策略(MFA、密码长度、过期等)自动生效。

本页介绍的是用户SSO:用户通过您的身份提供方登录Omniscol。与之相反的情形——Omniscol作为OAuth2 / OIDC 服务器供第三方服务连接,并带有客户端管理界面——请参见OAuth2 / OIDC(提供方)。

支持的提供方

Omniscol支持:

  • Google Workspace,
  • Microsoft Entra ID(原Azure AD),
  • Keycloak,
  • 通过issuer / discovery URL接入的通用OIDC 提供方(任何符合OIDC的提供方)。

在Omniscol端配置

在**管理** → **设置的安全部分,点击配置**按钮,打开OIDC配置界面,在其中声明提供方:

  • 显示名称——显示在登录按钮上的文字(例如 使用 Google 继续)。
  • 提供方类型——Google、Microsoft Entra ID(Azure AD)、Keycloak或通用OIDC。
  • Tenant / issuer——Entra ID填写Microsoft tenant;Keycloak和通用OIDC提供方填写issuer URL。应用程序随后会自动发现OIDC元数据。
  • Client ID 和 Client secret——在提供方一侧创建应用后获得(参见提供方的文档)。
  • Scope——默认为 openid profile email。如有需要,可添加提供方特有的scope。
  • 允许的域名——SSO登录时接受的邮箱域名列表,可选;留空则不按域名过滤。
  • 重定向URL——Omniscol会给出需要复制到提供方配置中的准确值(如果提供方要求,还会给出登出后的重定向URL)。
  • 仅允许通过 SSO 登录——SSO验证通过后,此选项会拒绝使用Omniscol密码登录,下文所述的应急账户除外。

当前的SSO配置在学校账户层面定义。

应急访问(break-glass)

在**仅允许通过 SSO 登录**模式下,使用Omniscol密码登录会被拒绝:所有人都必须通过身份提供方登录。如果该提供方不可用——故障、密钥过期或配置错误——所有人都将无法访问Omniscol。

应急账户(“break-glass”)就是防范这种锁死的保险措施:一个管理员账户,即使在仅限SSO的模式下也被允许使用Omniscol密码登录。

  • 在管理员账户的详情中,当选项**仅允许通过 SSO 登录处于启用状态时,会出现一个应急访问(仅 SSO)**复选框。勾选后,当身份提供方不可用时,允许该账户使用密码登录。只有管理员账户可以被设为应急账户。
  • 此外,Omniscol支持团队保留独立的应急访问方式。

请在启用仅限SSO的模式之前,至少指定一个应急账户,并妥善保管其密码:身份提供方出现故障时,它就是您的保险。

在提供方一侧配置(示例)

Google Workspace

  1. Google Cloud控制台 > APIs & Services > Credentials。
  2. 创建OAuth 2.0凭据,类型选择 Web应用。
  3. 将Omniscol提供的重定向URL粘贴到 Authorized redirect URIs 中。
  4. 获取 Client ID 和 Client secret,并粘贴到Omniscol中。

Microsoft Entra ID

  1. Azure门户 > Entra ID > App registrations。
  2. New registration,类型选择 Web,填入Omniscol的重定向URL。
  3. Certificates & secrets > 创建一个client secret。
  4. API permissions > 添加 openid、profile、email。
  5. 获取 Application (client) ID 和密钥。

Keycloak

  1. Realm > Clients > Create client,类型选择 OpenID Connect。
  2. Valid redirect URIs:填入Omniscol提供的URL。
  3. Credentials > 获取client secret。

与Omniscol账户关联

用户点击SSO按钮后,Omniscol会:

  1. 将用户重定向到提供方,
  2. 在认证后获取其电子邮箱地址,
  3. 查找具有相同电子邮箱地址的Omniscol账户。

如果该账户存在且处于启用状态,用户即可登录;否则访问被拒绝。因此,要使SSO正常工作,用户必须以正确的电子邮箱地址存在于Omniscol中——默认情况下,Omniscol不会自动创建账户。

账户自动创建

在首次SSO登录时自动创建账户(just-in-time provisioning)不是配置界面的默认行为。如果需要此模式,应与Omniscol团队商定。

操作步骤

配置OIDC / SSO提供方

  1. OIDC / SSO 让您的用户可以用企业账户(Google Workspace、Microsoft Entra ID、Keycloak、Okta……)登录。提供方一侧的操作取决于具体的提供方。

  2. 在提供方一侧,先创建一个OIDC Web应用:获取 Client ID 和 Client secret,并将Omniscol提供的重定向URL 复制到提供方的 Authorized redirect URIs 中。

  3. 在Omniscol一侧,打开设置,进入OIDC配置。填写显示名称(登录按钮上的文字)、提供方类型、issuer或tenant(视情况而定)、Client ID、Client secret和 scope(默认:openid profile email)。

  4. **点击测试。**检查配置是否可用。Omniscol会完成一次OIDC往返;如果discovery、密钥或重定向出错,错误信息会给出明确提示。

  5. **保存。**配置生效后,SSO登录按钮会出现在登录页面上。

  6. 重要:账户必须已存在于Omniscol中,且电子邮箱地址正确。SSO登录按电子邮箱匹配;默认不会自动创建账户。

另请参阅