開源 Rust 生態系統迎來了一個名為 Torii 的新身份驗證框架,該框架旨在讓開發者完全控制使用者資料。然而,它的推出在開發者中引發了關於自託管身份驗證系統與流行的第三方解決方案(如 Auth0、Cognito 和 WorkOS)孰優孰劣的廣泛討論。
資料主權與便利性之爭
Torii 將自己定位為一種解決方案,適用於那些希望完全擁有使用者身份驗證資料所有權而非依賴雲託管服務的開發者。這種方法引起了一些開發者的共鳴,而其他人則質疑其實用性。社群討論揭示了重視資料主權的開發者與偏好成熟身份驗證提供商便利性的開發者之間存在明顯分歧。
「我不認為主權是很多應用程式對這類危險資料所需要的,這就是為什麼 Cognito 和 Auth0 如此受歡迎。」
這一觀點抓住了辯論核心的緊張關係。雖然 Torii 提供了開發者可以隨意儲存使用者資料的能力,但許多組織刻意將身份驗證外包給專業提供商,以減少安全風險和合規負擔。
Torii 特點:
- 基於外掛的架構
- 資料庫支援:SQLite、PostgreSQL、MySQL
- 認證方法:Passkey、OAuth2/OIDC
- 完全資料主權(使用者資料儲存在您選擇的位置)
安全顧慮與權衡
安全成為社群對 Torii 反應的核心主題。幾位開發者指出,身份驗證是一個特別敏感的領域,錯誤可能會帶來嚴重後果。該專案自己的文件也承認了這一現實,指出它尚未經過安全審計,不應在生產環境中使用。
託管解決方案的批評者強調了最近 Okta(擁有 Auth0)等公司的安全漏洞,表明即使是成熟的提供商也不能免於安全問題。同時,第三方身份驗證服務的支持者則認為,專業提供商通常比個別開發團隊投入更多資源用於安全。
資源分配與重點
對許多開發者來說,在自託管和第三方身份驗證之間的選擇歸根結底是資源分配問題。維護一個強大的身份驗證系統需要持續的關注和專業知識,而小型團隊可能缺乏這些資源。
一些評論者指出,初創公司和小型企業選擇 Auth0 或 Cognito 等服務,並非因為他們無法自己實現身份驗證,而是因為他們更願意將有限資源集中在核心產品功能上。對大多數應用程式而言,身份驗證雖然至關重要,但被視為基礎設施而非差異化因素。
企業需求與整合
企業需求成為討論中的另一個重要考慮因素。B2B應用程式通常需要支援複雜的身份驗證場景,包括SAML、SCIM和各種身份提供商。這些要求可能使內部實現和維護身份驗證變得特別具有挑戰性。
一些開發者分享了支援企業身份驗證需求的困難經歷,特別是圍繞身份提供商配置和故障排除。這些挑戰有助於解釋為什麼許多公司轉向專業提供商,儘管成本更高且可能導致鎖定。
常見身份驗證解決方案:
- Auth0(被 Okta 收購)
- AWS Cognito
- WorkOS
- Keycloak(開源替代方案)
框架成熟度與生態系統
作為一個新專案,Torii 面臨著在其他語言已有成熟身份驗證框架的生態系統中確立自己地位的挑戰。社群成員指出了 Node.js 的 Passport.js 和 Ruby on Rails 的 Devise 等成熟解決方案,並指出 Rust 缺乏類似成熟的身份驗證框架。
Rust 生態系統中的這一空白使 Torii 具有潛在價值,一位評論者指出,他們在一週前就在思考 Rust 中多麼需要這樣的東西。該框架基於外掛的架構支援無密碼登入、社交 OAuth 和通行金鑰等功能,旨在提供開發者所需的靈活性,同時保持資料所有權。
Torii 的推出凸顯了現代應用程式開發中便利性和控制權之間的持續緊張關係。雖然第三方身份驗證提供商繼續主導市場,但像 Torii 這樣的工具為那些優先考慮資料主權並願意承擔相關責任的開發者提供了另一條路徑。
參考:Torii: A Powerful Authentication Framework for Rust Applications