總覽
使用同步處理的密碼金鑰時,使用者會透過密碼金鑰提供者進行驗證。
如要建立密碼金鑰並進行驗證,請將 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 伺服器集合。