Cloudflare 為所有客戶推出自行管理的 OAuth

Cloudflare 為所有客戶推出自行管理的 OAuth

Cloudflare 向每位客戶開放 OAuth

Cloudflare 的全新自行管理 OAuth 功能讓任何 Cloudflare 帳號都能建立自己的 OAuth 應用程式,為開發者提供一種標準、可撤銷且基於同意的方式來存取 Cloudflare API,而不必依賴長期有效的 API 令牌。


為何通用 OAuth 重要

  • 提升安全性 – 使用者可看到清晰的同意畫面,能從儀表板撤銷存取,並免於釣魚攻擊的威脅。
  • 更佳的開發者體驗 – 範圍化的存取符合現代 SaaS 與內部平台工作流程,省去脆弱的 API 令牌管理需求。
  • 生態系統成長 – 開放 OAuth 消除了第三方整合、代理工具與自訂自動化管線的障礙。

安全地擴展 OAuth 引擎

Cloudflare 最初的 OAuth 實作使用開源 Hydra 引擎,對於少數手動加入的合作夥伴已足夠。隨著開發者平台擴大,團隊發現了三個關鍵缺口:

  1. 權限模型 – 先前的同意流程未能清楚將應用程式身分與授予的範圍分離。
  2. 撤銷體驗 – 使用者無法輕鬆查看或撤銷應用程式的存取權。
  3. 濫用緩解 – 引擎缺乏對大規模自動化使用的健全防護措施。

為了解決這些問題,Cloudflare 更新了同意 UI,加入儀表板撤銷控制,並讓使用者可見應用程式所有權。


Hydra 1.X → 2.X 升級策略

兩步驟升級計畫

  • 步驟 1 – 1.X 遷移 – 移至最新的 1.X 版,將資料表遷移改寫為使用 CREATE INDEX CONCURRENTLY,並將 SELECT * 查詢改為明確的欄位清單,以避免鎖定爭用。
  • 步驟 2 – 2.X 遷移 – 部署藍綠架構,以避免在處理大量資料表變更時產生停機時間。

藍綠遷移細節

  • 寫入啟用方式 – 不會停用所有寫入,Cloudflare 將令牌 TTL 延長至數小時,使現有令牌在切換期間仍然有效。
  • 撤銷重播佇列 – Cloudflare Queue 在遷移期間捕捉撤銷事件;切換完成後,佇列會被清空以重播任何遺漏的撤銷,防止意外重新授權存取。

執行結果

1.X 升級

  • 遷移完成且未對使用者造成影響。
  • 新的更嚴格的 refresh‑token 作廢機制偶爾導致令牌鏈失效;Cloudflare 透過在 Worker 中加入 refresh‑token 合併層並利用 Hydra 2.X 可設定的寬限期來緩解此問題。

2.X 升級

  • 選擇請求量最低的時段作為遷移窗口;總執行時間約 3 小時。
  • 切換後,一個資料清理工作錯誤地刪除了有效的 OAuth 政策資料,導致 403 回應激增。此問題已透過還原資料並改進授權邏輯得到修復。
  • 在推出後快速套用了其他客戶特定的微調。

升級後的效能提升

指標 升級前 升級後 Δ
API P95 延遲 185 ms 101 ms ‑45 %
RSS 記憶體 888 MB 763 MB ‑14 %
Go 堆配置 449 MB 271 MB ‑40 %
Goroutine 數量 4,015 3,076 ‑23 %
CPU 使用率 1.07 cores 0.67 cores ‑37 %

資料庫遷移統計亦顯示了作業規模:

  • 132.5 M 筆列已更新
  • 114.7 M 筆列已插入
  • 使用 136.97 GB 暫存空間
  • 22.2 k 筆交易提交

開始使用自行管理的 OAuth

開發者現在可以直接從 Cloudflare 儀表板或透過官方文件建立 OAuth 應用程式:

透過允許任何客戶註冊 OAuth 用戶端,Cloudflare 為更豐富的應用生態系統、更緊密的安全性以及更順暢的整合工作流程鋪平了道路。

Sources