總覽
使用同步處理的密碼金鑰時,使用者會透過密碼金鑰供應商進行驗證。
如要建立密碼金鑰並進行驗證,請使用網頁版的 WebAuthn API;Android 應用程式需使用 Credential Manager API。這些 API 負責處理用戶端與密碼金鑰提供者之間的通訊。
雖然這些 API 是從網頁或 Android 應用程式等用戶端呼叫,但您需要在伺服器上實作其餘功能才能完成驗證。
密碼金鑰實作程序包含兩項功能:
- 密碼金鑰註冊。使用 WebAuthn API 或 Credential Manager API,讓使用者建立密碼金鑰。將相關聯的公開金鑰儲存在伺服器上。
- 使用密碼金鑰進行驗證。從伺服器取得驗證資訊,並使用 WebAuthn API 或 Credential Manager API,讓使用者以自己的密碼金鑰簽署這項驗證問題。在伺服器上驗證簽章。如果簽章有效,請驗證使用者。
伺服器端程式庫
雖然您可以從頭開始實作伺服器端密碼金鑰,但我們建議您改用程式庫。
支援建立和驗證密碼金鑰的伺服器稱為「FIDO2 伺服器」,簡稱「FIDO 伺服器」。我們在此進一步介紹伺服器端程式庫,這些程式庫的實作密碼金鑰支援功能為 FIDO 伺服器端程式庫。
為什麼要使用程式庫?
使用 FIDO 伺服器端程式庫有許多優點:
- 時間和開發人員體驗。WebAuthn 規格複雜。FIDO 伺服器端程式庫可提供簡單的 API,讓您實作密碼金鑰,節省您的時間和開發資源。
- 可維護性。WebAuthn 規格仍有可能隨時變更。使用主動維護的程式庫最新版本,有助於讓實作內容保持在最新狀態。
- 保障安全和法規遵循。您希望密碼金鑰實作方式符合 WebAuthn 規格和安全性要求。FIDO 伺服器端程式庫可協助您確保導入作業安全無虞且符合規範。視產品和產業而定,你的導入作業可能也需要遵循特定安全性標準規定。
如果可以的話,建議您提供財務支援,提供產品所需的開放原始碼專案。
程式庫
- awesome-webauthn GitHub 存放區包含伺服器端系統收錄的伺服器端程式庫清單。您會看到 JavaScript、TypeScript、Go 和 Python 等適用的程式庫。
- passkeys.dev 提供一系列程式庫。此功能是由 W3C WebAuthn 採用社群群組維護。
- FIDO 聯盟參照了 FIDO2 伺服器集合。