中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

GSoC 成果(guo)公布!印度(du)開發者(zhe)為 DolphinScheduler 引入(ru)通用 OIDC 認(ren)證,實(shi)現無縫安(an)全(quan)訪問

導(dao)語:今(jin)年的(de) GSoC 已近尾聲,在(zai)(zai)這(zhe)場代(dai)碼(ma)開(kai)發(fa)(fa)盛宴(yan)中(zhong),Apache DolphinScheduler 的(de)開(kai)發(fa)(fa)者(zhe)們積極參與,取得了一(yi)項(xiang)(xiang)對用(yong)戶意義重大的(de)成果——引入通用(yong) OIDC 認證,實現無縫安全訪問。令人(ren)欣喜的(de)是,該(gai)成果出自一(yi)位印度開(kai)發(fa)(fa)者(zhe)之手(shou)。在(zai)(zai)項(xiang)(xiang)目(mu)導(dao)師 Gallardot 與向梓豪(SbloodyS)的(de)精(jing)心指導(dao)下,這(zhe)一(yi)成果成功在(zai)(zai) Apache DolphinScheduler 中(zhong)落地。今(jin)天,就讓我們一(yi)同深入了解通用(yong) OIDC 認證的(de)開(kai)發(fa)(fa)歷(li)程,以及它將(jiang)給用(yong)戶帶(dai)來哪(na)些積極影(ying)響。

在大型企(qi)業里,管(guan)理(li)用戶身份始終是(shi)個難題,得在安全與用戶便捷(jie)之間找(zhao)到平衡(heng)。對于(yu)像 Apache DolphinScheduler 這(zhe)樣(yang)的(de)企(qi)業級工作流編排平臺,強大且靈活的(de)認(ren)證機制可(ke)不是(shi)錦上添花,而是(shi)剛需。

以前(qian),Apache DolphinScheduler 提(ti)供了幾種(zhong)登(deng)錄方式,像密碼登(deng)錄、LDAP,還有(you) Casdoor SSO。但這些(xie)方法(fa)都有(you)短板,比(bi)如說過度依賴 Casdoor 項(xiang)目,或者(zhe) OAuth 的(de)實現不夠靈(ling)活(huo),跟各種(zhong)企業身份系(xi)統集成的(de)時候特別(bie)麻煩。

作為我 2025 年谷歌暑期代碼計劃(Google Summer of Code)的項目成果,我很高興給大家介紹一個解決方案:全新的通用 OpenID Connect(OIDC)認證機制。它簡(jian)化并升級了訪問 DolphinScheduler 的(de)方式,讓 DolphinScheduler 真正契合企業需(xu)求(qiu)。這個(ge)實現巧妙地運用了現有的(de) Nimbus SDK,還精心設計成(cheng)能與當(dang)前(qian)數據庫架(jia)構無縫(feng)銜接(jie),保證所有用戶都能輕松完(wan)成(cheng)升級。

1d7f44f5-cbd4-44f5-abf9-fc2a26f69802
認證架構前后對比

?? 什么是 OIDC?打個比方

不妨把 OIDC 想象成通用的數字護照。就好比你(ni)不(bu)用為每個要用的(de)(de)服務(比如 DolphinScheduler)單獨創建賬戶,只要拿出(chu)身份提供商(像谷歌、Keycloak,或者公司(si)內部(bu)的(de)(de)登錄(lu)系統)給的(de)(de)可信護(hu)照,就能證(zheng)明自己的(de)(de)身份。

從技(ji)術角度(du)講(jiang),OIDC 是(shi)(shi)現代安全(quan)標(biao)準,在(zai) OAuth 2.0 協議基礎上構建(jian)了(le)身(shen)份驗(yan)證層。OAuth 2.0 解決(jue)的(de)是(shi)(shi)授權問題(ti)(你(ni)能(neng)做什么),而 OIDC 解決(jue)的(de)是(shi)(shi)身(shen)份驗(yan)證問題(ti)(你(ni)是(shi)(shi)誰)。

這個機制對 Apache DolphinScheduler 來說特別(bie)合適,原(yuan)因(yin)如(ru)下:

  • 通用性強 ??:它能跟各種合規的身份提供商配合,像 Keycloak、Okta、Azure AD、Dexidp,甚至飛書和企業微信這類社交/企業登錄方式都能用。
  • 安全性高 ???:它用數字簽名的 ID 令牌(JWT)來保證用戶身份真實有效,沒被篡改過。
  • 靈活度高 ??:即插即用,企業能輕松把 Apache DolphinScheduler 接入現有的身份基礎設施。

01efc6fe-a859-4cb0-bf8b-44e0243786d7
OIDC 數(shu)字護照(zhao)

? DolphinScheduler 中 OIDC 的關鍵特性

我做(zuo)的這個(ge)(ge)谷歌暑期(qi)代碼(ma)計劃項(xiang)目給 DolphinScheduler 帶來了好幾個(ge)(ge)超實用的企(qi)業級特性。

  • 真正的單點登錄(SSO):用戶現在只要用主身份提供商登錄一次,就能直接訪問 DolphinScheduler,不用再記另外的密碼,使用起來超級方便。
  • 集中式身份管理:在企業環境里,管理員能在 Keycloak 或者 Okta 這樣的中央身份提供商(IdP)里統一管理所有用戶的訪問權限。員工入職或者離職的時候,在一處就能給他們開通或者取消 Apache DolphinScheduler 的訪問權限,既提升了安全性,又簡化了用戶生命周期管理。
  • 自動用戶配置與動態角色同步:用戶第一次通過 OIDC 登錄的時候,Apache DolphinScheduler 會自動創建他們的賬戶。通過映射身份提供商里的組聲明(比如 Keycloak 里的 “dolphinscheduler - admins” 組),就能自動給用戶分配管理員權限,新用戶上手特別快。而且每次登錄都會重新檢查角色同步,保證身份提供商始終是權限的唯一權威來源。也就是說,在中央 IdP 里更新角色(升職、降職或者撤銷權限),用戶下次登錄就自動生效。
  • ID 令牌增強安全性:OIDC 提供一種安全的 JSON Web 令牌(JWT),叫 ID 令牌。這個令牌由 IdP 數字簽名,從加密層面保證用戶身份真實可靠。DolphinScheduler 每次登錄都驗證這個令牌,只有認證通過的用戶才能訪問。
  • 廣泛兼容各類 OIDC 提供商:這個項目最大的優勢就是通用性。只要遵循 OIDC 標準,Apache DolphinScheduler 就不局限于特定的提供商,能跟一大波身份解決方案兼容,包括但不限于:
    • 開源 IdP:Keycloak、Dexidp
    • 商業 IdP:Okta、Auth0、Microsoft Entra ID(Azure AD)
    • 云原生代理:OAuthProxy
    • 企業與社交登錄:飛書、企業微信登錄

工作原理:深入剖析

OIDC 集(ji)成采用(yong)標準的(de)授權碼流程(cheng),保證身(shen)份驗證又安全(quan)又靠譜。

2a8e4291-503a-4ded-85ce-e28e279f1403
使用(yong) OIDC 的(de) DolphinScheduler 簡化登錄流(liu)程圖

??? 分步指南:如何用 Keycloak 配置 OIDC

配置 OIDC 很簡單。下(xia)面是(shi)用 Keycloak 和(he) Dex Idp 的快速指南(nan)。

示例 1:使用 Keycloak

下(xia)面(mian)是用(yong)流行的(de)開源身份提供商 Keycloak 的(de)快速指南。

  • 步驟 1:配置身份提供商(Keycloak)
    在 Keycloak 實例里,得把 DolphinScheduler 注冊成新客戶端。
  1. 創建客戶端:給它起個客戶端 ID(比如 dolphinscheduler - client)

c2b90eb9-084c-4030-a359-ea1b76a0b2bd

  1. 設置重定向 URI:這一步很關鍵。要加上 DolphinScheduler API 服務器的回調 URL,格式是 //{api - host:port}/dolphinscheduler/login/oauth2/code/{provider - id}。要是本地搭建的環境,就是 //localhost:12345/dolphinscheduler/login/oauth2/code/keycloak

c3432074-8659-440b-975c-f37b7091bde0

  1. 獲取憑證:到 “Credentials” 標簽頁,復制客戶端密鑰。

edac7733-d60f-4b34-92c2-f95e9f73be3e

?? 快速上手

要是想測試,可以用 dolphinscheduler - api - test/dolphinscheduler - api - test - case/src/test/resources/docker/oidc - login/realm - export.json 這個(ge)預(yu)配置好(hao)的文件,一鍵啟動(dong) Keycloak 實例,所有必要設置都(dou)已經弄好(hao)了!

  • 步驟 2:配置 DolphinScheduler
    接下來,用 Keycloak 的憑證更新 dolphinscheduler - api/src/main/resources/application.yaml 文件。

f3b979e9-a15f-42fd-8681-6e69be71174d

示例 2:使用 Dexidp(展示通用性)

下面看(kan)看(kan)怎么配(pei)置 Dex,另一個很火(huo)的(de) OIDC 身(shen)份提供商(shang),感受一下這個系統的(de)靈活性(xing)。

  • 步驟 1:配置 Dex
    在 Dex 配置文件里,把 DolphinScheduler 加到 staticClients 列表里。

示例 Dex 配置文件 config.yaml

4fce96e1-4c6c-4173-8c27-dbeb07761b0a

  • 步驟 2:配置 DolphinScheduler
    application.yaml 里加一個新的提供商(shang)條目。

  • 步驟 3:登錄!
    重(zhong)啟 DolphinScheduler API 服務器之后,登錄頁面(mian)就會出現(xian) “Login with Keycloak” 和 “Login with Dex” 按鈕。

7ff2952e-28bc-4e9a-b494-962b0e2be951
開啟 OIDC 的(de) DolphinScheduler 登錄頁面

兩種方(fang)式的用戶流程(cheng)都很順暢:

  1. 用戶點擊新的登錄按鈕。
  2. 跳轉到 Keycloak / Dex 登錄頁面,輸入憑證。
  3. 登錄成功后,回到 DolphinScheduler 用戶界面,完成認證。

????? 我的谷歌暑期代碼計劃(GSoC)之旅與致謝

這個項目讓我學到了超多,核心目標只有一個:為企業打造一個真正通用的認證解決方案。

我先(xian)深(shen)入研(yan)究了 Apache DolphinScheduler 的(de)架構,還搞(gao)定了本地環(huan)境搭建。在導(dao)師們的(de)悉心(xin)指(zhi)導(dao)下,我采用后端優先(xian)的(de)方法(fa),借助強大的(de) Nimbus SDK 打下堅實基礎,保(bao)證 OIDC 核心(xin)邏輯既(ji)可靠又符合標準。

一個關鍵設計決策是把身份提供商設為唯一的權限數據源。這對實現動態(tai)角色(se)同步功能(neng)至關重要,每次登錄都重新(xin)(xin)評估用戶(hu)權限,不只是第(di)一(yi)次登錄,這樣就能(neng)保證(zheng)訪問控制始終是最(zui)新(xin)(xin)的。這就需要更新(xin)(xin)核心(xin)用戶(hu)服務,保證(zheng)用戶(hu)權限始終跟中(zhong)央身份系統一(yi)致。

驗(yan)證這個特性(xing)(xing)的(de)靈活性(xing)(xing)和可靠性(xing)(xing)是下一個大(da)挑(tiao)戰。質(zhi)量保證是重中(zhong)之(zhi)重,我(wo)用了(le)一套多層(ceng)策略來(lai)解決:

  • 單元測試:我寫了一套全面的單元測試,克服了復雜的模擬場景,驗證了每個組件,新代碼的測試覆蓋率達到了 93.2%。我還趁機提高了一些現有用戶管理組件的測試覆蓋率。
  • 端到端 API 測試:我用 Testcontainers 搭建了一套完整的 API 測試套件,它能啟動一個完整的 Docker 環境(包括 Keycloak 實例),自動驗證整個認證流程。
  • 跨提供商驗證:為了確保 “通用” 不是說說而已,我成功在 Keycloak 和 Dex 上測試了這個實現,證明它不依賴特定廠商。

后端工作做完后,我還開發了完整的前端體驗,實現了 API 調用(yong),創建了響應式(shi) UI 組(zu)件,讓用(yong)戶能用(yong)配置(zhi)好的(de) OIDC 提(ti)供商登錄。

最后,為了方便未來開發和社區推廣,我寫了詳細的文檔。包括用 Keycloak 進(jin)行本(ben)地(di)測試的分(fen)步開發指南(nan),還有企業(ye)集成(cheng)的詳細配置示例(li),這些現(xian)在都已經是官(guan)方 DolphinScheduler 文檔的一部分(fen)了。

這個項目能成功,多虧了我的超棒的導師 Gallardot向梓豪(SbloodyS),整(zheng)個夏天他們給了我特別多寶(bao)貴的(de)指(zhi)導、反饋和支持(chi)。我也特別感謝 Apache DolphinScheduler 社區和谷歌(ge)暑期(qi)代碼計劃給我這個難得的(de)機會(hui)。

?? 結論:帶來的影響

通(tong)用 OIDC 認證的(de)引入對 Apache DolphinScheduler 來說(shuo)是一(yi)大進步,給(gei)各(ge)方(fang)都帶來了實(shi)實(shi)在在的(de)好(hao)處:

  • 對管理員:用戶管理更簡單,訪問控制集中化,安全態勢提升。
  • 對用戶:登錄體驗又順暢又安全,要記的密碼變少了。
  • 對企業:能輕松把 DolphinScheduler 集成到現有的和未來的企業身份生態系統里。

這個特(te)性讓 Apache DolphinScheduler 更(geng)安全(quan)、更(geng)易用(yong),更(geng)能(neng)應對(dui)現代(dai)數據平臺的復(fu)雜需求(qiu)。

?? 參與進來,試試看!

我鼓勵大(da)家去(qu)體(ti)驗新(xin)的(de) OIDC 認證特性!所有工作(zuo)都是公開進(jin)行的(de),大(da)家可以(yi)在官(guan)方拉(la)取請求里查看(kan)完整實(shi)現。

  • ?? 主要拉取請求
  • 谷歌暑期代碼計劃項目存檔
  • ?? 官方文檔:[認證指南]( - us/docs/latest/guide/security/authentication - type.html%2523oidc - openid - connect)
  • ????? 聯系我
    • GitHub:
    • 領英:

歡迎大家(jia)提出反饋,踴躍貢(gong)獻(xian)!感(gan)謝(xie)大家(jia)一同(tong)參與(yu)這段旅程(cheng)。

posted @ 2025-10-23 10:47  海豚調度  閱讀(65)  評論(0)    收藏  舉報