GSoC 学生太强了!印度开发者为 DolphinScheduler 做出的 OIDC 升级内幕


                                                                                                                                                <p>此前,我们发布了文章 <strong>《<a href="https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fmp.weixin.qq.com%2Fs%2Fwz_u4tHhOZhJdA4AWjQF6A" target="_blank">GSoC 成果公布!印度开发者为 DolphinScheduler 引入通用 OIDC 认证,实现无缝安全访问</a>》</strong>,引起了社区内外的强烈关注。文中介绍了 2025 年 Google Summer of Code 的一项亮眼成果——来自印度旁遮普工程学院的学生 <strong>Aryan Kumar</strong> 为 Apache DolphinScheduler 实现了全新的通用 OpenID Connect(OIDC)认证机制。</p> 

这一功能不仅简化了用户访问 DolphinScheduler 的整个流程,也显著提升了系统的安全能力,让 DolphinScheduler 更加契合企业级场景的多样化需求。值得一提的是,Aryan 的实现巧妙运用了 Nimbus SDK,并提前考虑了数据库兼容性,确保新老用户都能 零阻力升级

如今,距离项目成果发布已有一段时间,我们带来了对这位开发者的首次深度专访。远在印度的 Aryan Kumar 是如何与 Apache DolphinScheduler 结缘的?在设计并实现 OIDC 认证机制的过程中,他遇到了哪些挑战,又是如何解决的?他如何看待 DolphinScheduler 项目和社区?而在他眼中,“开源”究竟意味着什么?

这次采访内容相当丰富,既有技术细节,又不乏个人成长故事。现在,就让我们一起走近这位年轻的开发者,看他如何在全球开源舞台上绽放光芒吧!

个人简介

印度封面

  • 姓名:Aryan Kumar
  • 位置:印度昌迪加尔(Chandigarh, India)
  • 职位:软件工程师求职者 & 开源开发者
  • 研究领域与学术方向:我对计算机科学、人工智能以及开源开发非常感兴趣,专注于多智能体系统、分布式架构以及开源开发。
  • 当前状态:我是一名有志成为软件工程师的学生,目前正在旁遮普工程学院攻读冶金与材料工程学士学位,同时辅修数据科学,将于 2027 年 5 月毕业,目前正在积极寻找软件开发、全栈开发和 DevOps 方向的全职机会或实习岗位。
  • 兴趣爱好:园艺、游泳、踢足球、徒步、旅行,以及每天努力学习新事物。
  • GitHub 账号tusaryan
  • LinkedIn 账号tusaryan
  • 联系方式aryankumartus@gmail.com

以下为采访实录:

  • 您是否为 Apache DolphinScheduler 社区做过贡献?能否介绍一下具体方案?

是的,我很幸运能够为社区做出多项贡献,其中最重要的是我参与的 Google Summer of Code 2025 项目。

  1. Kyuubi 数据源连接修复(#17081:这是我在今年 2 月开始接触 DolphinScheduler 时的第一次开源贡献,修复了在使用 Kyuubi 的高可用(HA)环境中导致 JDBC 连接失败的一个 Bug。这次修复涉及优化 JDBC URL 构建方式,并更新了相关的单元测试,以确保修复的可靠性。

  2. Master Server 负载保护(#17159:我实现了一个新的配置项 max.concurrent.workflow.instances,用于在发生故障转移(failover)时防止 Master Server 过载。同时,我重构了服务器的保护机制,通过引入 CPU、内存和磁盘使用率等系统资源阈值,使其更加健壮。

  3. 通用 OIDC 认证模块(#17340,GSoC 2025 项目):我的主要贡献是架构并实现了一个通用的 OpenID Connect(OIDC)认证系统。

    • 问题:在此之前,DolphinScheduler 的 SSO 能力较为有限,且常常与特定实现(如 Casdoor)绑定,使企业难以集成自身的身份系统。
    • 解决方案:我使用 Nimbus SDK 开发了一个可扩展的 SSO 机制,支持所有兼容 OIDC 的产品(如 Keycloak、Okta、Azure AD 等)。我通过实现安全的认证流程、令牌校验,以及针对 CSRF 与注入攻击的防护,显著增强了系统安全性。一个关键特性是“动态角色同步”,系统会在每次登录时重新评估用户权限,确保外部 IdP 始终作为访问控制的唯一可信来源。为确保可靠性,我编写了覆盖率约 94% 的单元测试,以及完整的 API 测试来验证整个功能流程。
    • 影响:该功能显著提升了企业用户的安全性与管理效率,减少了集成成本,同时确保与现有登录方式的完全兼容,不会产生任何回归。
  • 您第一次接触 DolphinScheduler 是出于什么契机?过程中有没有什么有趣的故事?

在我学习的早期阶段,我对技术非常感兴趣,比如技术能解决什么问题、如何将全世界的人连接在一起,以及互联网是如何大范围地让资源变得触手可及。这些都深深吸引着我,促使我不断深入学习。

我第一次听说 Google Summer of Code(GSoC)是在中学时期。进入大学后,我从同学和学长那里了解到 GSoC 在全球享有盛誉,竞争非常激烈,并且能给人带来宝贵的体验。我进一步研究了这个项目的流程以及如何成功入选的方法。由于我已经具备扎实的 Java 基础,我决定学习一下 Spring Boot、微服务、安全和 DevOps 来提高我的技术水平。当 GSoC 时间表发布时,我已经用这些技术构建了多个项目。

为了进一步精进技术,获得实际解决问题的经验,当时我希望找到一个能够让我处理分布式系统与安全领域真实问题的,具有高影响力的开源项目。就在这个过程中,我发现了 Apache DolphinScheduler。

对于 Java 开发者来说,几乎没有人不知道 Apache 软件基金会(ASF)。我们每天都在使用由 ASF 打造的顶级技术,包括 Apache HTTP Server、Tomcat、Kafka、Spark、Hadoop、Maven 等等。当我看到 DolphinScheduler 是一个强大的工作流编排平台时,我意识到这是一个让我深入参与真正企业级技术项目的绝佳机会。

在开始贡献之前,我仔细阅读了项目文档,深入了解架构、使用的技术以及贡献流程。我可以非常肯定地说,DolphinScheduler 的文档非常完善,用户几乎可以从中找到所有需要的信息,包括架构设计、实现策略、API 设计、前端开发、单元/接口/E2E 测试指南、环境安装与部署等内容,非常结构化、详细、易读。

虽然一开始对我来说有些挑战,因为当时我对开源贡献几乎一无所知,但我从教程与 YouTube 视频入手,从修小 Bug 到优化细节,最终逐步迈向集成一个大型功能。最有意思的部分,是我深入学习 DolphinScheduler 的架构设计。这段经历让我掌握了许多架构理念、工程规范,以及 DolphinScheduler 如何做到高可用、可扩展与高性能。

为了构建“通用 OIDC 认证”方案,我必须证明这一方案完全可靠,因此我基于 Testcontainers 构建了一套完整的 API 测试体系,它会自动启动一个包含 DolphinScheduler 和 Keycloak 的 Docker 环境。要让这些复杂的交互与 Mock 流程正确运行非常有有难度,但克服这些障碍的过程让我对系统架构和高标准 CI/CD 的重要性有了更深的理解。

在整个 GSoC 期间,我的导师 Xiang ZiHao(向梓豪) 和 Gallardot(谭恒亮)给了我非常多的指导与帮助。我遇到任何问题,他们都会及时回复。由于一些我个人还在适应流程的问题导致项目稍有延迟,但导师始终鼓励我、支持我,让我最终成功完成了 GSoC。

  • 您喜欢开源吗?您从什么时候开始参与开源?为什么开源对您有吸引力?

当然,非常喜欢。我对技术的热情不仅体现在使用工具上,更体现在通过贡献去推动技术进步。

我的开源之路真正开始于今年二月。在此之前,我只是一个开源工具的使用者,例如 Spring Boot 和各种 Apache 库。但当我修复了人生第一个开源 Bug 时,那就是我在开源世界的“Hello World”。从那之后,我从修小 Bug 逐步成长到设计并实现核心安全功能,在短短几个月内经历了相当于数年行业积累的实践。

基于最近在 DolphinScheduler 社区的经历,开源对我有三点特别吸引力:

  1. 能够解决真实问题 在闭源世界里,遇到 Bug 时,你只能等待厂商修复;但在开源里,我们可以自己修复,而这种“掌控感”会让人上瘾。

  2. 开放带来的质量与潜力 开源就像自然选择,最好的想法才能留下来。导师们不断推动我写出安全、可扩展、可维护的代码,因此这些代码往往比专有软件更加健壮。

  3. 全球协作带来的学习机会 对我来说,开源是“全球最大的课堂”。我作为印度学生,却能与世界各地的专家协作交流,这让我学到的工程实践、系统设计、资源管理等专业知识远超课本。

  • 您对 Apache DolphinScheduler 社区的第一印象是什么?您在社区中有哪些收获?

我的第一印象是社区非常活跃、友好且对新人极为支持。

我与社区联系的第一位成员是 Gallardot,他在 GSoC 选拔前审阅了我的 proposal,给了我非常有价值的反馈,也激励我进一步完善思路。在整个 GSoC 中,导师们提供了大量指导,这对项目成功至关重要。

最大的收获来自两方面:导师制带来的专业成长,以及 快速适应新技术的能力。GSoC 帮助我突破了舒适区,让我掌握了原本不熟悉的技术,例如 Vue.js、Nimbus SDK 和 Testcontainers。参与代码审查与架构讨论也让我学会如何构建高可用、可扩展、安全的企业级系统,以符合 Apache 软件基金会的高质量标准。

  • 您在贡献 DolphinScheduler 的过程中感觉如何?是否感到困难或让您不适应?

整体来说,这是一个非常积极且令人满足的体验。和所有大型项目一样,最开始理解架构、搭建本地环境需要时间,但我从未感到不适,因为社区文档非常完善,而且导师和社区成员一直非常愿意提供帮助。

  • 您是否在工作或个人研究中使用 DolphinScheduler?有哪些应用场景?

作为学生,我更多从开发者和贡献者的角度使用 DolphinScheduler,而非生产环境用户。我的主要应用场景是扩展平台能力。为了完成 GSoC 项目,我几乎每天都会使用 DolphinScheduler 的后端和前端组件进行开发、测试与集成。

  • — 您认为 DolphinScheduler 未来可以加入哪些新功能或可优化的地方?

基于我在认证模块上的工作经验,我认为有三个关键方向可进一步增强 DolphinScheduler 的企业级能力:

  1. 更先进的身份生命周期管理与细粒度权限控制 在 OIDC 基础上,应支持更细粒度的“组-角色映射”,例如根据 IdP 中的组自动分配 PROJECT_USERPROJECT_ADMIN 等角色,而不仅仅是 ADMIN。 未来还可以加入 SCIM 自动用户同步自动 Token 续期,实现完整的身份生命周期闭环。

  2. 安全增强与合规性能力 为提高企业级安全性,可以加入:

    • PKCE 支持(提升客户端安全)
    • 单点注销(SLO)
    • OIDC 认证全流程审计日志(用于合规与排错)
  3. 更强的可用性与测试体系 管理员可通过图形化 UI 管理 OIDC 配置,无需重启服务。 同时扩展 Testcontainers 测试体系,让其能够模拟来自 Okta、Azure AD、Keycloak 等多个 IdP 的 E2E 登录流程,保证生产级稳定性。

  • 您对 DolphinScheduler 社区的建设有没有什么建议?

社区已经做得非常好了。如果一定要提建议的话,我认为可以增加更多适合新贡献者的“上手引导”,例如短视频或逐步式 PR 提交教程,以进一步降低开源入门门槛。

  • 未来您是否愿意继续以代码或非代码方式为 DolphinScheduler 社区做贡献?

当然愿意。我将 GSoC 期间的这个项目视为长期贡献的起点,而非终点。我会持续维护 OIDC 模块,确保其在项目演进过程中的稳定性,同时继续为未来功能与 Bug 修复做出贡献。

除了代码,我也非常重视知识分享。我希望撰写技术文章、完善文档,帮助更多新开发者轻松上手,并通过审查 PR 的方式参与社区建设。

                                                                                </div>



Source link

未经允许不得转载:紫竹林-程序员中文网 » GSoC 学生太强了!印度开发者为 DolphinScheduler 做出的 OIDC 升级内幕

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
关于我们 免责申明 意见反馈 隐私政策
程序员中文网:公益在线网站,帮助学习者快速成长!
关注微信 技术交流
推荐文章
每天精选资源文章推送
推荐文章
随时随地碎片化学习
推荐文章
发现有趣的