v2 中的新功能¶
簡化部署¶
v1 和 v2 之間的許多變化旨在使 dex 更易於部署和管理,這也許是 dex v1 最大的痛點。 Dex 現在是一個單一的、可擴展的二進製文件,具有唯一的配置源。
許多以前必須通過 API 設置的組件,例如 OAuth2 客戶端和 IDP 連接器,現在可以靜態指定。
所有這些都使部署故事變得更加簡單。編寫配置文件,運行 dex 二進製文件,僅此而已。
更多存儲後端¶
Dex v2 改進了 Dex 的內部存儲接口,通過第三方資源支持包括 Postgres、SQLite3 和 Kubernetes API 在內的多種後備數據庫。這使得 dex 可以滿足更多樣化的用例集,而不是堅持一種特定的部署模式。
例如,Kubernetes API 實現,一個鍵值存儲,允許 dex 在 Kubernetes 集群上以極少的管理開銷本地運行。從對多個存儲後端的支持開始也應該有助於確保 dex 存儲接口實際上是可插拔的,而不是與單個實現緊密耦合。
可以在此處找到對現有存儲選項以及如何添加新存儲選項的更深入討論。
其他改進¶
重寫帶來了多項改進,包括:
- 更強大的連接器。例如,GitHub 連接器現在可以查詢團隊。
- 將這兩個 API 組合成一個沒有復雜授權規則的 gRPC API。
- 擴展了 OAuth2 功能,例如隱式流程 (implicit flow)。
- 簡化的代碼庫和改進的測試。
重新考慮註冊¶
Dex v1 在可以管理用戶的時候表現不錯。它提供了註冊、電子郵件邀請、密碼重置、管理能力等功能。但是,登錄流程和 API 仍然與註冊和管理員用戶等概念緊密結合,即使 v1 聯合到上游身份提供者 (IDP) 時,它可能只對實際用戶數據庫具有唯讀訪問權限。
v2 的許多用例側重於與其他 IPD 的結合,而不是管理用戶本身。因此,與註冊相關的選項(例如 SMTP 憑據)已被刪除。我們希望通過使用 gRPC API 來將註冊和用戶管理重新添加到項目中,但不會影響其他用例。
刪除的功能¶
Dex v2 缺少 v1 中存在的某些功能。在大多數情況下,我們的目標是將這些功能中的大部分添加回 v2,但安裝方式必須選擇加入一項功能,而不是讓每個部署都負擔額外的配置。
值得注意的缺失功能包括:
- 註冊流程。
- 本地用戶管理。
- SMTP 配置和電子郵件驗證。
- 幾個尚未移植的登錄連接器。