跳至主要內容

Passkeys(WebAuthn)

Passkey 提供比傳統密碼更安全且更友善的替代方案。透過公開金鑰加密技術,Passkey 將使用者裝置、服務網域與使用者 ID 綁定,有效防範釣魚與密碼攻擊。它相容於各種裝置或瀏覽器,並允許使用者利用生物辨識與硬體安全功能進行便利的驗證 (Authentication)。WebAuthn 則提供 API,讓網站能實作 Passkey。

Logto 現已支援用於多重要素驗證 (MFA, Multi-Factor Authentication) 的 Passkey(WebAuthn)。Passkey 登入功能即將推出,敬請期待後續更新。

概念說明

客戶通常熟悉 Passkeys,而非 WebAuthn,那麼兩者有何關係?又該如何使用?讓我們來釐清這些概念:

  • Passkeys:Passkey 是一種基於 FIDO、具抗釣魚能力的憑證,用來取代密碼。它利用非對稱公開金鑰加密技術提升安全性。Passkey 可以是硬體權杖或安全金鑰,例如 USB 或藍牙裝置。由於「Passkeys」是呈現給使用者的驗證 (Authentication) 方式,建議在產品端使用此名稱。
  • WebAuthn:這是由 W3C 與 FIDO 聯盟制定的 JavaScript API,讓網頁應用程式能以 FIDO2 標準進行驗證 (Authentication)。Passkeys 是 WebAuthn 支援的驗證 (Authentication) 方法之一。在 Logto Console 中,這項整合專業名稱為「WebAuthn」。

WebAuthn 提供多種驗證器(Authenticator)供使用者選擇,分為本地與雲端兩大類型:

  • 平台驗證器(Platform authenticator,內建驗證器):綁定於單一且特定裝置作業系統,例如電腦、筆電、手機或平板,僅能在該裝置上以生物辨識或裝置密碼進行授權,因此驗證 (Authentication) 速度極快。例如 macOS 或 iOS 上以 Touch ID、Face ID 或裝置密碼驗證的 iCloud Keychain;Windows Hello 則以臉部辨識、指紋或 PIN 驗證。
  • 漫遊驗證器(Roaming authenticator,外接驗證器,跨平台驗證器):為獨立的可攜式裝置或軟體應用程式,如硬體安全金鑰或智慧型手機。需透過 USB 連接或開啟 NFC / 藍牙。漫遊驗證器不限於單一裝置或瀏覽器,彈性更高。

想深入了解 WebAuthn 的原理與流程,請參閱我們的部落格文章:WebAuthn 與 Passkeys 101 以及 整合 WebAuthn 前你該知道的事

注意限制事項

實作 WebAuthn 時,請特別留意以下限制:

  1. 平台與瀏覽器限制:Logto 目前尚未支援原生應用程式的 WebAuthn。此外,WebAuthn 驗證器的可用性取決於瀏覽器與裝置功能(查詢支援列表)。因此,WebAuthn 並非實作多重要素驗證 (MFA) 的唯一選項,否則你需自行控管哪些瀏覽器與裝置可存取你的產品。
  2. 網域限制:更換網域會導致使用者無法透過現有 WebAuthn 帳號驗證 (Authentication)。Passkeys 綁定於當前網頁的特定網域,無法跨網域使用。
  3. 裝置限制:遺失裝置可能導致帳號存取權限遺失,特別是僅依賴「此裝置」平台驗證器的情況。建議提供多種驗證 (Authentication) 因子,以提升存取彈性。

驗證 (Authentication) 流程

Passkeys 規範要求使用者必須在當前頁面主動點擊按鈕,才能啟動驗證 (Authentication) 元件。這表示在設定與驗證流程中,使用者都應被導向登入頁面以啟動 WebAuthn。

  • Passkey 設定流程
WebAuthn 設定流程
  • Passkey 驗證流程
WebAuthn 驗證流程 整合 WebAuthn 前你該知道的事 WebAuthn 與 Passkey 101