尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

ToolJet 使用 Okta 作为 OIDC 身份提供商的 SSO 配置实战

ToolJet 使用 Okta 作为 OIDC 身份提供商的 SSO 配置实战 ToolJet 使用 Okta 作为 OIDC 身份提供商的 SSO 配置实战【免费下载链接】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本文以 ToolJet 官方文档Okta指南为主体完整讲解如何把 Okta 配置为 ToolJet 的 OIDC 身份提供商Identity Provider从 Okta Developer Console 中创建应用集成、生成 Client ID / Client Secret、获取 Well-Known URL到在 ToolJet 实例/工作区设置中启用并保存 OIDC 登录配置。结合 ToolJet 服务端源码文章还会深入解析 OIDC 配置在数据库中的存储结构sso_configs表与登录回调处理链路帮助读者不仅会配还能理解其背后的实现机制。一、Okta 在 ToolJet 中的角色OIDC 身份提供商OpenID ConnectOIDC是一种在 OAuth 2.0 之上构建的认证协议应用可以借助受信任的身份提供商来安全地验证用户身份。ToolJet 允许把 Okta、Azure AD、Google 等作为 OIDC 身份提供商接入对应 OpenID Connect 总配置指南用户在登录 ToolJet 时会被重定向到 Okta 完成认证认证结果再回传给 ToolJet 换取会话。从源码结构看ToolJet 后端的 SSO 体系以统一实体建模SSOConfigs 实体 定义了SSOType枚举google、git、form、openid、ldap、samlOkta 走的就是其中的OPENID openid分支同时通过ConfigScopeinstance/organization区分 SSO 配置是实例级还是工作区组织级这与文档中Instance Level / Workspace Level两种配置入口完全对应。需要注意的适用前提OIDC SSO 在 ToolJet 中标注为付费功能setup.md 开头带有 Paid feature 徽标且不同层级配置需要对应权限配置层级所需角色入口路径实例级Instance LevelSuper Admin设置 Instance login示例 URLhttps://app.corp.com/instance-settings/instance-login工作区级Workspace LevelAdmin工作区设置 Workspace login示例 URLhttps://app.corp.com/nexus/workspace-settings/workspace-login二、在 Okta Developer Console 中生成 Client ID 与 Client Secret这是本指南的主体操作流程全程在 Okta Developer Console 中完成登录 Okta Developer Console。进入Applications区域点击Create App Integration。在创建表单中选择OIDC - OpenID Connect作为Sign-in method选择Web Application作为Application type然后点击Next按钮。填写App integration name并将Sign-in redirect URIs设置为 ToolJet 提供的 Redirect URL如何从 ToolJet 获取见第三节第 4 步。点击创建完成应用创建。复制生成的客户端凭证Client Credential稍后在 ToolJet 中配置。依据 Okta 官方 Auth Servers 文档说明找到自己的Well-Known URL组织级授权服务器的/.well-known/openid-configuration端点。该 URL 是 OIDC 发现Discovery机制的入口ToolJet 会用它自动拉取 token 端点、jwks 端点等配置信息。操作完成后你手上应有三样东西Client ID、Client Secret和Well-Known URL——它们正是 ToolJet OIDC 配置弹窗中要求的三个核心参数。三、在 ToolJet 中启用并保存 OIDC 配置拿到凭证后按 OpenID Connect Setup 的步骤在 ToolJet 中落地点击 ToolJet 页面左下角的设置图标⚙️。根据目标层级进入对应入口实例级Settings Instance login工作区级Workspace Settings Workspace login。页面右侧有一组按客户端划分的 SSO 开关默认全部关闭打开OpenID Connect对应的开关。开关打开后会弹出一个配置弹窗包含Name、Client ID、Client secret、Well known URL等输入项弹窗左上角有一个启用开关先打开它然后不填写任何参数直接点击 Save changes。这一步会先生成 ToolJet 侧的Redirect URL——你正是把它填入上一步 Okta 的 Sign-in redirect URIs 中形成先要 URL、再生成凭证的闭环。回到弹窗把 Okta 的Client ID、Client Secret、Well Known URL逐一填入并再次点击Save changes。保存成功后OIDC SSO 即启用用户即可通过 Okta 完成 ToolJet 登录。四、源码级解析OIDC 配置如何存储与生效4.1 配置结构OpenId 类型字段全集SSOConfigs 实体 中定义了OpenId配置类型除文档中出现的三个必填项外还包含若干进阶字段完整清单如下字段说明对应文档操作clientIdOkta 应用生成的 Client ID第二节第 6 步复制的凭证clientSecretOkta 应用生成的 Client Secret同上name该 SSO 配置的展示名称弹窗中的 Name 字段wellKnownUrlOkta 授权服务器的 Well-Known 发现端点第二节第 7 步获取customScopes自定义的 OAuth 作用域进阶配置默认留空即可claimName/groupMapping/enableGroupSync用于 OIDC 组同步指定 IdP 返回的组 claim 及到 ToolJet 用户组的映射参见 OIDC 组同步文档进阶功能非登录必需enableShortSession短会话开关进阶配置这些字段以 JSON 形式持久化在sso_configs表的configs列中见 sso_config.entity.ts并通过enabled布尔列控制开关状态configScope列则区分instance与organization两个作用域与前端两级设置入口一一对应。实例级 SSO 能力由数据迁移 1706024347284-AddInstanceLevelSSOInSSOConfigs.ts 引入。4.2 登录链路从回调到会话用户经 Okta 认证成功后ToolJet 收到回调并进入 OAuth 统一登录服务 OauthService.signIn其处理逻辑包括配置定位优先按configId取工作区级配置否则按 SSO 类型分别查询实例级配置getInstanceSSOConfigsOfType或组织级配置用户校验与开通校验 IdP 返回的用户是否具备有效的userSSOId与email再通过isValidDomain(userResponse.email, domain)做邮箱域名白名单校验自动建号与角色授予若该用户不存在且组织开启了注册enableSignUp系统会自动创建用户、初始化其个人工作区并把该用户挂到ADMIN用户组随后生成登录会话载荷generateLoginResultPayload完成登录邀请流程衔接如果用户是通过邀请链接进入的还会走邀请激活分支processOrganizationSignup把 SSO 身份与组织邀请绑定。具体到 OIDC 协议交互用 code 换 token、校验 JWT 等由 OidcOAuthService 抽象承接其接口约定了signIncode 换用户信息与getConfigs生成授权 URL 并处理 PKCE code verifier两个核心方法。从开源仓库的源码结构看该文件当前是接口骨架方法抛出未实现错误完整的协议实现随企业版EE模块提供这也与文档将其标记为付费功能相印证。五、配置核对清单上线前建议按以下清单逐项核对Okta 应用类型为Web Application OIDCSign-in method 为 OIDCOkta 的Sign-in redirect URIs与 ToolJet 弹窗首次保存生成的Redirect URL完全一致协议与主机需严格匹配ToolJet 中Client ID / Client Secret / Well Known URL三项均已填写且开关处于启用状态权限达标实例级配置者为 Super Admin工作区级配置者为 Admin若组织开启了域名限制确认 Okta 侧用户邮箱域名在允许范围内否则登录会被Domain verification failed拦截见 OauthService.signIn 中的校验逻辑。按以上流程完成配置后ToolJet 的登录页将支持通过 Okta 进行 OpenID Connect 单点登录如需进一步用 Okta 的组属性自动同步 ToolJet 用户组可继续参考 OIDC 组同步文档 中claimName与groupMapping的用法。【免费下载链接】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),仅供参考
返回列表