GSoC 学生大显身手!Apache DolphinScheduler OIDC 升级背后的内部故事
Source: Dev.to
个人简介
- 姓名: Aryan Kumar
- 地点: 印度昌迪加尔
- 当前状态: 旁遮普工程学院冶金与材料工程(辅修数据科学)本科,预计2027年5月毕业。立志成为软件工程师,兴趣在 AI 与开源开发。积极寻找全职或实习的软体开发、全栈、DevOps 机会。
- GitHub: tusaryan
- LinkedIn: tusaryan
- 联系方式: aryankumartus@gmail.com
- 爱好: 园艺、游泳、足球、徒步、旅行以及持续学习。
面试记录
对 Apache DolphinScheduler 的贡献
问题: 您是否为 Apache DolphinScheduler 社区做出过贡献?能描述具体的方案吗?
回答: 是的,我很幸运做出了多项贡献,其中最重要的是我的 2025 年 Google Summer of Code 项目。
-
Kyuubi 数据源连接修复 (
#17081) – 我在 DolphinScheduler 的首次开源贡献(2025 年 2 月)。通过纠正 JDBC URL 的构建并更新单元测试,修复了在使用 Kyuubi 的高可用环境中导致 JDBC 连接失败的 bug。 -
Master Server 负载保护 (
#17159) – 实现了新的配置项max.concurrent.workflow.instances,用于在故障转移场景下防止 Master Server 过载。重构了服务器保护机制,加入了 CPU、内存和磁盘使用阈值的监控。 -
通用 OIDC 认证模块 (
#17340, GSoC’25 项目) – 设计并实现了一个通用的 OpenID Connect(OIDC)认证系统。问题: DolphinScheduler 的单点登录(SSO)功能仅限于特定实现(例如 Casdoor),导致企业集成困难。
解决方案: 使用 Nimbus SDK 开发了可扩展的 SSO 机制,支持任何符合 OIDC 标准的提供者(Keycloak、Okta、Azure AD 等)。新增了稳健的认证流程、令牌校验、CSRF 与注入防护,以及在每次登录时重新评估权限的动态角色同步。实现了全面的单元测试(约 94% 覆盖率)和 API 测试,以确保可靠性。
影响: 提升了安全性,简化了用户管理,缩短了集成时间,并保持了对现有登录方式的向后兼容。
背景与首次接触 DolphinScheduler
问题: 您第一次了解 DolphinScheduler 是在什么背景下?有什么有趣的故事吗?
回答: 我一直对技术能够解决问题并在全球范围内连接人们感到着迷。中学时我第一次听说 Google Summer of Code(GSoC),随后在大学里进一步了解。凭借扎实的 Java 基础,我扩展了在 Spring Boot、微服务、安全和 DevOps 方面的技能。
当 GSoC 时间表公布时,我在寻找一个对分布式系统和安全性有高影响力的开源项目。在探索潜在项目时,我发现了 Apache DolphinScheduler。作为一名 Java 开发者,我熟悉许多 ASF 项目(HTTP Server、Tomcat、Kafka、Spark、Hadoop、Maven 等),因此为一个被广泛使用的工作流编排平台做贡献感觉非常契合。
在正式贡献之前,我仔细阅读了文档,以了解现有架构并找出可以增值的领域。这一准备工作帮助我提出了 OIDC 认证模块的方案,最终成为我的 GSoC 项目。
