OIDC / SSO——通过身份提供方登录
PremiumOpenID 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
- Google Cloud控制台 > APIs & Services > Credentials。
- 创建OAuth 2.0凭据,类型选择 Web应用。
- 将Omniscol提供的重定向URL粘贴到 Authorized redirect URIs 中。
- 获取 Client ID 和 Client secret,并粘贴到Omniscol中。
Microsoft Entra ID
- Azure门户 > Entra ID > App registrations。
- New registration,类型选择 Web,填入Omniscol的重定向URL。
- Certificates & secrets > 创建一个client secret。
- API permissions > 添加
openid、profile、email。 - 获取 Application (client) ID 和密钥。
Keycloak
- Realm > Clients > Create client,类型选择 OpenID Connect。
- Valid redirect URIs:填入Omniscol提供的URL。
- Credentials > 获取client secret。
与Omniscol账户关联
用户点击SSO按钮后,Omniscol会:
- 将用户重定向到提供方,
- 在认证后获取其电子邮箱地址,
- 查找具有相同电子邮箱地址的Omniscol账户。
如果该账户存在且处于启用状态,用户即可登录;否则访问被拒绝。因此,要使SSO正常工作,用户必须以正确的电子邮箱地址存在于Omniscol中——默认情况下,Omniscol不会自动创建账户。
账户自动创建
在首次SSO登录时自动创建账户(just-in-time provisioning)不是配置界面的默认行为。如果需要此模式,应与Omniscol团队商定。
操作步骤
配置OIDC / SSO提供方
-
OIDC / SSO 让您的用户可以用企业账户(Google Workspace、Microsoft Entra ID、Keycloak、Okta……)登录。提供方一侧的操作取决于具体的提供方。
-
在提供方一侧,先创建一个OIDC Web应用:获取 Client ID 和 Client secret,并将Omniscol提供的重定向URL 复制到提供方的 Authorized redirect URIs 中。
-
在Omniscol一侧,打开设置,进入OIDC配置。填写显示名称(登录按钮上的文字)、提供方类型、issuer或tenant(视情况而定)、Client ID、Client secret和 scope(默认:
openid profile email)。 -
**点击测试。**检查配置是否可用。Omniscol会完成一次OIDC往返;如果discovery、密钥或重定向出错,错误信息会给出明确提示。
-
**保存。**配置生效后,SSO登录按钮会出现在登录页面上。
-
重要:账户必须已存在于Omniscol中,且电子邮箱地址正确。SSO登录按电子邮箱匹配;默认不会自动创建账户。