開源 WebAuthn 與 FIDO2 驗證:通行密鑰優先應用中的 Authgear、Keycloak 與 Hanko
比較主流開源 WebAuthn/FIDO2 方案,加速無密碼策略。評估 Authgear、Keycloak 等平台在安全與應用擴展性上的取捨。
驗證的未來是無密碼,而帶頭的技術是 WebAuthn、FIDO2,以及使用者友善的抽象:通行密鑰(passkeys)。對建置現代應用的開發者而言,提供具釣魚抗性、以生物辨識驅動的登入已非加分項,而是競爭必要條件。SaaS 可快速上手,但許多團隊轉向開源平台,以取得更高掌控度、彈性與長期成本可預測性。
本開發者向指南深入開源通行密鑰驗證:為何開源具吸引力、Authgear 與 Keycloak 等主流平台路線差異,以及如何為你的通行密鑰優先應用選對方案。
為何選擇開源實作 WebAuthn 與通行密鑰?
導入通行密鑰不只是呼叫瀏覽器 API。你需要穩固後端:管理公鑰憑證、處理複雜驗證儀式(ceremony)、與既有使用者模型整合。SaaS 代勞這一切,但開源對開發者有不同優勢:
- 完全掌控與透明: 可檢視密碼學挑戰如何產生、憑證如何儲存、安全政策如何執行。
- 深度客製: 不受廠商預設流程限制;從註冊流程到驗證提示 UI 皆可調整。
- 資料主權: 自行託管可完全掌控敏感公鑰憑證資料存放位置,對符合 GDPR 等資料落地法規至關重要。
- 無廠商鎖定: 建立在開源堆疊上,需求演進時可自由修改、擴充或遷移。
- 可預測、免 MAU 式授權費: 開源軟體省去常見的按使用者計價波動,適合預期大規模成長的應用。
核心技術:WebAuthn、FIDO2 與通行密鑰
比較平台前,先釐清術語:
- FIDO2: FIDO 聯盟制定的一套標準,使無密碼驗證成為可能;是整體專案名稱。
- WebAuthn: FIDO2 的 JavaScript API 與瀏覽器元件,讓網頁應用能以公開金鑰驗證。
- 通行密鑰: 消費者向用語,指可探索、並可跨使用者裝置同步的 FIDO 憑證(例如透過 iCloud 鑰匙圈或 Google 密碼管理員)。多裝置特性使其足以取代密碼。
開源身分平台的工作,是提供伺服器端實作以完成 WebAuthn 儀式:註冊憑證、發出挑戰、驗證簽章。
開源通行密鑰平台比較:Authgear 與 Keycloak
選項眾多,但 Authgear 與 Keycloak 最為突出,哲學不同,吸引不同開發團隊。
Authgear:現代、開發者優先
Authgear 是輕量、現代的開源身分平台,適合要在不犧牲安全與彈性前提下快速推進的開發者。
- 通行密鑰原生: 將通行密鑰視為主要驗證方式;內建 WebAuthn 無密碼登入的一流支援。
- 整合容易: 開發者優先,設定精簡;可透過 Docker 快速部署,數分鐘內跑起完整驗證服務。
- 部署彈性: 支援自行託管(地端或私有雲)與代管雲端,團隊可先代管、規模成長後再遷地端。
- 完整 MFA: 除通行密鑰外,內建 TOTP 驗證器 App、簡訊/WhatsApp OTP 等多元因子,安全政策可靈活配置。
最適合: 重視上線速度、現代開發體驗,以及需同時涵蓋簡單與複雜情境的團隊。架構直覺,適合新專案或要在既有 App 加入通行密鑰、又不想扛重型企業方案開銷的團隊。
Keycloak:功能豐富的企業級巨獸
Keycloak 是成熟、極強大的開源 IAM,由 Red Hat 支持。大型企業需要廣泛功能與深度整合舊系統時的首選之一。
- WebAuthn 支援: 提供無密碼驗證的基礎。
- 深度客製: 透過 SPI 幾乎可客製各層行為,適合具 Java 功力的開發者。
- 企業整合: 擅長 LDAP、Active Directory、Kerberos 等既有企業環境。
- 複雜身分情境: 「Realm」概念適合複雜多租戶與繁瑣使用者階層。
最適合: 有專職基礎建設團隊、需求複雜的大型組織。若需與既有 Java 生態深度整合或糾結的身分聯盟情境,Keycloak 的成熟度與能力難以匹敵;但設定與維運複雜度也較高。
Hanko 呢?
本文主要比較對象文件未涵蓋 Hanko,但 Hanko 在開源 FIDO2 領域亦值得注意,常專注於通行密鑰優先,相對 Authgear 或 Keycloak 全套 IAM 更輕量、更專一。若你只想在現有系統加上通行密鑰、而非導入完整 IdP,這類方案很合適。
通行密鑰優先應用的選型要點
選擇開源 WebAuthn 平台時,可思考:
- 上線與維運成本: 多久能跑生產級系統?日常維運負擔?(傾向 Authgear)
- 開發者體驗: API 與文件是否現代、清楚?與你的技術堆疊整合難度?(傾向 Authgear)
- 彈性 vs 複雜度: 你需要 Keycloak 等級的細緻強大,還是較精簡現代的平台即足夠?
- 生態與社群: 活躍社群代表更多資源、教學與第三方整合。(傾向 Keycloak)
- 不止通行密鑰: 是否還需要傳統密碼、社交登入、MFA、企業聯盟等完整 IAM?(Authgear 與 Keycloak 皆涵蓋)
結論
通行密鑰優先的驗證轉型正在發生,開源讓開發者在不依賴單一 SaaS 廠商下擁抱這個未來。
若追求現代、快速、彈性,Authgear 表現突出:在輕量、開發者友善的平台中內建穩固的通行密鑰與 WebAuthn 支援,部署與管理相對容易,在功能與易用性間取得良好平衡。
對具深厚 Java 能力、需與舊系統深度整合的大型企業,Keycloak 仍是 formidable 的全功能選擇。
最終決策取決於團隊資源、應用架構與長期目標。從開放標準與開源出發,你能保留彈性,建置可隨使用者規模成長多年的安全、釣魚抗性驗證。
立即到 GitHub 探索 Authgear,開始使用開源通行密鑰驗證。