ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

ToolJet 单点登录(SSO)配置全指南:GitHub、Google、OIDC、LDAP 与 SAML 的实例级与工作区级接入

ToolJet 单点登录(SSO)配置全指南:GitHub、Google、OIDC、LDAP 与 SAML 的实例级与工作区级接入 ToolJet 单点登录SSO配置全指南GitHub、Google、OIDC、LDAP 与 SAML 的实例级与工作区级接入【免费下载链接】ToolJetOpen-source foundation of ToolJet AI - the enterprise app generation platform for internal tools, dashboards, business applications, workflows and AI agents. Build visually, from a prompt, or from Claude Code, Codex and Cursor over MCP 项目地址: https://gitcode.com/GitHub_Trending/to/ToolJetSingle Sign-OnSSO单点登录允许用户使用一组凭据访问多个应用与服务的认证方式通过消除重复登录来同时改善用户体验与安全性。本文以 ToolJet 的 SSO 体系为主线系统讲解 SSO 在 ToolJet 中的两种配置层级实例级与工作区级、五类受支持的认证协议GitHub、Google、OpenID Connect、LDAP、SAML的完整接入步骤并结合仓库源码说明其底层数据模型与配置存储方式。读完本文你将能够在自托管的 ToolJet 环境中独立完成任意一种 SSO 的启用、IdP身份提供商侧应用注册、回调地址对接与登录验证。SSO 在 ToolJet 中的价值与适用场景SSO 的核心收益在于企业只需维护一套身份凭据用户即可在多个应用间无缝切换。对 ToolJet 而言SSO 直接作用于登录链路帮助企业简化认证、提升安全性、改善用户体验降低密码疲劳用户无需为每个应用记忆不同的密码简化 IT 管理账号生命周期开通、禁用、权限调整可在身份目录中统一完成提升生产力与合规性集中认证便于审计满足企业对安全合规的要求。ToolJet 支持通过以下方式接入 SSOGitHub使用 GitHub OAuth 凭据登录Google使用 Google OAuth 凭据登录OpenID ConnectOIDC对接 Azure AD、Google、Okta 等 IdPLDAP对接企业目录服务SAML对接 Okta、AD FS、Auth0、Azure AD 等 IdP。从源码结构看上述 SSO 类型在服务端被建模为统一的配置实体详见 server/src/entities/sso_config.entity.ts 中的SSOType枚举export enum SSOType { GOOGLE google, GIT git, FORM form, OPENID openid, LDAP ldap, SAML saml, }每一条 SSO 配置都归属于某个作用域ConfigScope这正是「实例级」与「工作区级」两种配置入口的底层来源export enum ConfigScope { ORGANIZATION organization, INSTANCE instance, }配置前的准备两种配置层级与所需角色ToolJet 的 SSO 配置入口分为两个层级二者的区别在于配置生效范围配置层级入口路径所需角色示例 URL实例级Instance Level左下角设置图标⚙️Settings Instance loginSuper Admin超级管理员https://app.corp.com/instance-settings/instance-login工作区级Workspace Level左下角设置图标⚙️Workspace Settings Workspace loginAdmin工作区管理员https://app.corp.com/nexus/workspace-settings/workspace-login实例级 SSO 由超级管理员配置影响整个实例工作区级 SSO 由工作区管理员配置仅影响该工作区LDAP 与 SAML 仅支持工作区级配置详见后文Google、GitHub 与 OIDC 则两级均可配置。进入登录设置页后页面右侧会列出各 SSO 客户端的启用开关所有开关默认关闭启用某个开关后会弹出配置模态框。模态框左上角同样有一个启用开关先打开它再不填写任何参数直接点击 Save changesToolJet 便会为当前实例/工作区生成一个Redirect URL这个 URL 是后续在身份提供商IdP侧注册 OAuth 应用时必须使用的回调地址。从实现层面看这一「先生成回调地址」的机制与 SSO 配置的存储方式有关。ToolJet 将各 SSO 的配置以 JSON 形式保存在sso_configs表实体SSOConfigs中字段包括sso类型、configScope实例/工作区、configsJSON 配置体与enabled启用状态见 server/src/entities/sso_config.entity.ts。客户端密钥等敏感字段在服务端会经过加密处理对外接口返回时会隐藏敏感数据相关逻辑位于 server/src/modules/login-configs/util.service.ts 的hideSSOSensitiveData。配置 GitHub SSOToolJet 通过 GitHub OAuth 应用实现 GitHub SSO适合以 GitHub 作为团队身份源、希望简化开发者协作登录的场景。在 ToolJet 中启用 GitHub SSO点击仪表盘左下角的设置图标⚙️按层级进入Settings Instance login实例级或Workspace Settings Workspace login工作区级打开GitHub对应的开关在弹出的模态框中先打开左上角的启用开关不填写参数直接点击Save changesToolJet 会生成 Redirect URL。模态框中的字段包括Host name仅 GitHub Enterprise 自托管时需要填写必须是 URL 且不能以/结尾例如https://github.tooljet.com非自托管可跳过Client IDGitHub OAuth 应用的应用 IDClient secretGitHub OAuth 应用的客户端密钥Redirect URL由 ToolJet 自动生成需填入 GitHub OAuth 应用的回调地址。在 GitHub 侧创建 OAuth 应用登录 GitHub 后进入Settings Developer settings导航到OAuth Apps并点击创建新的 OAuth App填写App Name应用名称、Homepage URLToolJet 部署域名、Authorization callback URL必须填写 ToolJet 生成的 Redirect URL点击Register application完成创建GitHub 会自动生成Client ID点击Generate a new client secret生成客户端密钥回到 ToolJet 的 GitHub SSO 设置页将Client ID与Client Secret填入对应字段点击Save changes保存。此后 ToolJet 登录页会出现 GitHub 登录按钮从 Instance/Workspace 登录页获取Login URL分发给用户即可。底层实现说明从 server/src/entities/sso_config.entity.ts 可以看到GitHub SSO 的配置体结构为type Git { clientId: string; clientSecret: string; hostName?: string; };其中hostName为可选字段与服务端通过环境变量SSO_GIT_OAUTH2_CLIENT_ID、SSO_GIT_OAUTH2_CLIENT_SECRET、SSO_GIT_OAUTH2_HOST注入实例级 GitHub SSO 的逻辑一致见 server/src/modules/login-configs/util.service.ts 与 server/src/modules/login-configs/util.service.ts。这解释了「自托管才需要 Host name」的原因该字段对应 GitHub Enterprise 的实例地址普通 GitHub 用户无需该值。配置 Google SSOGoogle SSO 同样支持实例级与工作区级两级配置流程上与 GitHub SSO 对称。在 ToolJet 中启用 Google SSO点击左下角设置图标⚙️进入Settings Instance login或Workspace Settings Workspace login打开Google对应的开关在模态框中先打开启用开关并直接保存获取生成的 Redirect URL模态框中的Client ID需要填入 Google Cloud Console 中创建的 OAuth 客户端凭据。在 Google Cloud Console 中创建 OAuth 凭据进入 Google Cloud console创建一个项目进入APIs Services Credentials创建OAuth client ID在同意屏幕consent screen选择用户类型若只允许工作区内的用户登录选择Internal否则选择External填写应用注册信息并点击SAVE AND CONTINUE在 OAuth scopes 页面点击ADD OR REMOVE SCOPES添加userinfo.email与userinfo.profile两个 scope——这允许 ToolJet 存储登录用户的邮箱与姓名在Credentials标签页点击 CREATE CREDENTIAL OAuth client ID选择应用类型并命名。在Authorised JavaScript origins中填写 ToolJet 的部署域名在Authorized redirect URIs中填写 ToolJet 生成的 Redirect URL点击Create复制生成的Client ID如需要服务端校验还需复制Client secret将Client ID填入 ToolJet 的 Google SSO 设置点击Save changes完成配置。底层实现说明Google SSO 的配置体在 server/src/entities/sso_config.entity.ts 中定义为type Google { clientId: string; };实例级 Google SSO 同样可通过环境变量SSO_GOOGLE_OAUTH2_CLIENT_ID注入server/src/modules/login-configs/util.service.ts。值得注意的是Google SSO 的配置体仅含clientId不含clientSecret这是 ToolJet 对 Google 登录链路的既定设计配置时以界面提示为准。配置 OpenID ConnectOIDCOpenID Connect 是一种基于 OAuth 2.0 的身份认证协议用于让应用通过受信任的身份提供商IdP验证用户身份。ToolJet 支持将Azure AD、Google、Okta等配置为 OIDC 的 IdP。OIDC 是付费功能界面中标注为 Paid feature。通用配置步骤点击左下角设置图标⚙️进入Settings Instance login或Workspace Settings Workspace login打开OpenID Connect对应的开关在弹出的模态框中先打开启用开关并直接保存ToolJet 会生成 Redirect URL用于在 IdP 侧获取凭据从 IdP 获取以下参数并填入模态框NameSSO 名称Client IDIdP 分配的客户端 IDClient secretIdP 分配的客户端密钥Well known URLIdP 的 OIDC 发现端点Discovery Endpoint用于自动获取授权端点、令牌端点等信息。点击Save changesOIDC SSO 即配置完成用户即可通过该 IdP 无缝登录。从源码看OIDC 的配置体在 server/src/entities/sso_config.entity.ts 中定义字段除上述四项外还包括customScopes自定义 scope、claimName、groupMapping组映射、enableGroupSync组同步开关与enableShortSession短会话开关等可选能力type OpenId { clientId: string; clientSecret: string; name: string; customScopes: string; wellKnownUrl: string; claimName: string; groupMapping: { [key: string]: string }; enableGroupSync: boolean; enableShortSession: boolean; };IdP 侧准备GoogleOIDC在 Google Cloud console 创建项目进入Credentials页面创建OAuth client ID在同意屏幕选择Internal仅工作区内用户或External填写注册信息并继续添加userinfo.email与userinfo.profile两个 scope在Authorised JavaScript origins填写 ToolJet 部署域名在Authorized redirect URIs填入 ToolJet 生成的 Redirect URL创建后复制Client ID与Client secret使用https://accounts.google.com/.well-known/openid-configuration作为Well Known URL。IdP 侧准备Azure AD打开组织页面选择App registrations然后选择New registration填写名称、选择支持的账户类型并将从Manage SSO Open Id Redirect URL复制的回调地址填入重定向 URL点击注册注册完成后将Application (Client) ID作为client id填入 ToolJet 的 Open ID 配置页点击Certificates secrets旁的Add certificate or secret再点击 New Client Secret填写描述、设置有效期并点击Add复制生成的 Secret 值填入 ToolJet 的client secret字段可通过Branding and properties选项自定义重定向页面品牌。Well Known URL 的构造可参考微软官方 OIDC v2 协议文档docs.microsoft.com。IdP 侧准备OktaOIDC登录 Okta Developer Console进入Applications点击Create App Integration选择OIDC - OpenID Connect作为登录方式Web Application作为应用类型点击Next填写App integration name将 ToolJet 生成的 Redirect URL 填入Sign-in redirect URIs创建应用复制 Client CredentialClient ID 与 Client Secret并填入 ToolJet参照 Okta Auth Servers 文档找到 Well Known URL。配置 LDAP SSOLDAP轻量目录访问协议用于访问和管理目录信息实现集中式认证与用户管理。ToolJet 通过配置 LDAP 目录服务可为企业用户提供统一认证与访问控制。注意LDAP 仅支持工作区级配置不支持实例级。用户通过 LDAP 登录后将定向到所选工作区。配置步骤点击左下角设置图标⚙️进入Workspace settings Workspace login打开 LDAP 开关填写以下配置字段说明Name该 SSO 的名称将显示在登录页的「Sign in with 名称」按钮上HostnameLDAP 服务器的主机名或 IP 地址PortLDAP 服务器端口号Base DN基础 Distinguished Name基准 DNSSL是否启用 SSL启用后可在None与Certificates之间选择。选择 Certificates 时需提供Client Key客户端私钥、Client Certificate客户端证书与Server Certificate服务器证书点击Save Changes保存进入Workspace login复制Login URL用于访问工作区用户点击Sign in withLDAP Name按钮输入用户名与密码即可登录。ToolJet 使用 LDAP 用户的common namecn作为Username首次登录时用户会被重定向到Workspace Invite页面后续登录将直接进入 ToolJet 仪表盘。首次登录时ToolJet 会执行额外的校验检查 LDAP 服务器中的用户组若对应组已存在于 ToolJet 工作区中用户会被自动加入该组同时ToolJet 会查找 LDAP 服务器中的用户头像并同步更新 ToolJet 账户。底层实现说明LDAP 的配置体在 server/src/entities/sso_config.entity.ts 中定义type LDAP { name: string; host: string; port: number; ssl: boolean; sslOptions: { clientKey: string; clientCert: string; serverCert: string; }; basedn: string; basedns?: string[]; bindAttribute?: cn | upn; enableGroupSync: boolean; };其中bindAttribute的可选值为cn或upn与文档所述「使用 common namecn作为用户名」的登录行为对应sslOptions则与界面中 Certificates 模式下的三类证书字段一一对应。LDAP 的登录与组同步逻辑可进一步参考 server/src/modules/auth/oauth/util-services/ldap.service.ts。配置 SAML SSOSAML安全断言标记语言通过在身份提供商与服务提供商之间交换用户身份数据来实现安全的 SSO 认证。ToolJet 支持对接 Okta、Active Directory Federation ServicesAD FS、Auth0、Azure AD 等 SAML IdP。注意SAML 仅支持工作区级配置。用户通过 SAML 登录后将定向到所选工作区。配置步骤点击左下角设置图标⚙️进入Workspace settings Workspace loginSAML 默认关闭将其开关打开填写以下配置字段说明SAML Provider NameSAML 提供商名称将显示在登录页Identity provider metadata上传 SAML 提供商提供的元数据含 SAML 配置细节的 XML 文件内容Group Attribute包含用户组信息的属性名用于将用户映射到对应组Redirect URL复制提供的重定向 URL粘贴到 SAML 提供商的配置页面提示如何获取 IdP 元数据元数据通常以 XML 文件形式从 IdP 控制台下载。将 XML 中的元数据复制并粘贴到 ToolJet 的 SAML SSO 配置中注意保持格式正确——其中包含认证所必需的 IdP 关键配置信息。此外常见 IdP 可通过https://your-identity-provider/federationmetadata/2007-06/federationmetadata.xml获取该数据。点击Save Changes完成配置。使用 SAML 登录进入Workspace login标签页复制Login URL。SSO 认证时会检查用户是否已存在已存在则直接登录否则显示错误使用 Login URL 访问工作区登录页会显著展示工作区设置中配置的 SAML 提供商名称点击Sign in withSAML Name按钮将被重定向到 SAML 提供商的登录页输入凭据并点击Login。首次登录的用户将被重定向到 ToolJet 的引导onboarding页面。底层实现说明SAML 的配置体在 server/src/entities/sso_config.entity.ts 中定义type SAML { name: string; idpMetadata: string; groupAttribute: string; groupSyncEnabled: boolean; };字段与界面上的 SAML Provider Name、Identity provider metadata、Group Attribute 一一对应groupSyncEnabled则控制基于groupAttribute的组同步能力。IdP 侧准备OktaSAML登录 Okta Developer Console进入Applications点击Create App Integration选择SAML 2.0作为登录方式点击Next配置General Settings填写App Name将显示在登录页的应用名可选上传App Logo在Configure SAML标签页配置以下字段GeneralSingle sign-on URLToolJet SAML 配置页复制的 Redirect URLAudience URI (SP Entity ID)XML 文件中的 entityIDDefault RelayState留空Name ID formatEmailAddressApplication usernameEmailUpdate application username onCreate and updateAttribute StatementsNameName formatValueemailUnspecifieduser.emailnameUnspecifieduser.firstNameGroup Attribute StatementsNameName formatFilterValuegroupsUnspecifiedMatches regex*检查无误后点击Next再点击Finish完成应用配置进入Sign On标签页确认Application username format为Email否则点击 Edit 修改复制Metadata URL该 URL 可获取 Okta 应用的 XML 元数据文件将元数据 URL 粘贴到 ToolJet SAML 配置的Identity provider metadata字段确保 XML 中的 Audience URISP Entity ID已添加到 Okta 应用配置的 Configure SAML 标签页使用 Login URL 登录 ToolJet 验证 SAML 配置。总结不同 SSO 的选型与配置要点SSO 类型支持层级配置核心要素典型 IdPGitHub实例级 工作区级Client ID、Client Secret、Host name自托管可选GitHub / GitHub EnterpriseGoogle实例级 工作区级Client ID及 OAuth scopeuserinfo.email、userinfo.profileGoogle Cloud ConsoleOpenID Connect实例级 工作区级付费功能Name、Client ID、Client secret、Well Known URLAzure AD、Google、OktaLDAP仅工作区级Name、Hostname、Port、Base DN、SSLCertificates 需三份证书企业 LDAP 目录SAML仅工作区级SAML Provider Name、IdP metadata、Group Attribute、Redirect URLOkta、AD FS、Auth0、Azure AD所有 SSO 的配置入口统一为左下角设置图标 → Instance login / Workspace login配置完成后均可从对应登录页获取Login URL分发给用户。启用某个 SSO 后ToolJet 登录页会显示对应的登录按钮用户即可通过统一的身份源完成认证从而享受 SSO 带来的免重复登录、集中管理与合规审计收益。如需深入理解各协议的底层实现可继续阅读 server/src/entities/sso_config.entity.ts配置数据模型、server/src/modules/login-configs/util.service.ts配置构造与敏感数据隐藏以及 server/src/modules/auth/oauth/util-services/ldap.service.tsLDAP 登录实现。【免费下载链接】ToolJetOpen-source foundation of ToolJet AI - the enterprise app generation platform for internal tools, dashboards, business applications, workflows and AI agents. Build visually, from a prompt, or from Claude Code, Codex and Cursor over MCP 项目地址: https://gitcode.com/GitHub_Trending/to/ToolJet创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表