跳至主要內容

電子郵件驗證於多重要素驗證 (MFA)

Logto 支援以電子郵件為基礎的多重要素驗證 (MFA, Multi-factor authentication) 功能,透過向使用者註冊的電子郵件地址發送一次性驗證碼來提升帳號安全性。電子郵件 MFA 作為第二驗證因素,可與其他 MFA 因素(如 TOTP、通行密鑰、備用代碼)結合,為使用者提供靈活的雙重驗證選項。

概念

電子郵件驗證是最普及的 MFA 方法之一。它利用電子郵件帳號的廣泛可用性,將臨時的一次性驗證碼直接發送到使用者的電子郵件信箱。與需要額外安裝軟體的應用程式型驗證器不同,電子郵件 MFA 利用現有的電子郵件基礎設施,幾乎所有網際網路使用者都能透過瀏覽器、郵件客戶端或行動應用程式存取。因此,除了擁有電子郵件帳號外,使用者無需額外硬體或特殊設定即可立即啟用。

設定電子郵件作為 MFA 驗證方式

步驟 1:設定電子郵件連接器與範本

  1. 前往 主控台 > 連接器 > 電子郵件與簡訊連接器

  2. 選擇合適的電子郵件連接器(SendGrid、Mailgun 等)

  3. 設定連線參數

  4. 針對 MFA 設定 電子郵件範本 與專用用途類型:

    • MfaVerification usageType 用於 MFA 驗證
    • BindMFA usageType 用於綁定 MFA
    • 小提示:Logto 內建郵件服務 提供預設電子郵件範本
  5. 參考 電子郵件連接器 取得各供應商的詳細設定說明

步驟 2:啟用電子郵件作為 MFA

  1. 前往 主控台 > 多重要素驗證
  2. 啟用「電子郵件驗證碼」因素。建議將電子郵件 MFA 與其他 MFA 因素(TOTP、通行密鑰、簡訊、備用代碼)結合使用,以降低單一因素依賴。
  3. 設定你偏好的 MFA 政策(強制或選用)
  4. 儲存設定變更
重要使用注意事項:
  1. 登入方式限制:電子郵件驗證碼不可同時作為 登入方式 (1FA) 與 MFA 因素 (2FA) 使用。每個電子郵件實作請選擇一種驗證流程。

  2. 註冊方式相容性:電子郵件驗證碼可同時用於註冊方式與 MFA。Logto 會根據你選擇的 MFA 政策最佳化終端使用者註冊流程,避免對同一電子郵件地址重複驗證。

  3. 密碼重設相容性:雖然電子郵件驗證碼可同時用於 忘記密碼 與 MFA,但不建議這樣配置。此組合會降低 MFA 安全性,因為使用者可能透過忘記密碼郵件驗證重設密碼,然後用新密碼進行主驗證 (1FA),再用相同電子郵件方式進行 MFA 驗證。

電子郵件 MFA 設定流程

MFA 設定提示可能出現在使用者註冊時或登入後,具體取決於你設定的 MFA 政策。使用者也可在 帳號設定頁 啟用電子郵件 MFA。

電子郵件 MFA 設定流程會受到以下因素影響:

  • MFA 主要因素數量:若有多個主要因素,使用者需選擇一種進行設定。主要因素指備用代碼以外的 MFA 方法。
  • 啟用備用代碼:啟用時,備用代碼會在主要 MFA 因素設定完成後自動產生,並提示使用者儲存。
  • 註冊識別子設定:若電子郵件地址作為 註冊識別子 並於註冊時已通過郵件驗證碼驗證,系統會自動將該郵件綁定為 MFA 因素,無需再次驗證。若有其他主要因素,UI 會顯示「新增另一個兩步驟驗證」選項(可略過),並明確標示 MFA 已啟用。
  • 現有使用者資料:現有使用者登入後設定 MFA 時,需先完成主驗證,再進行 MFA 設定。若帳號已包含驗證過的主要電子郵件,設定流程與上述註冊識別子情境相同。

以下為三種常見電子郵件 MFA 綁定情境。

情境 1:電子郵件僅用於 MFA(典型流程)

當電子郵件地址不是註冊識別子,僅用於 MFA 時,請依標準設定流程操作:

  • 若僅有一個電子郵件 MFA 因素,直接顯示該因素設定 UI。
  • 若有多個主要 MFA 因素,顯示「設定 MFA」列表頁,讓使用者選擇要設定的因素。

範例:

註冊:手機號碼 + 簡訊驗證碼 + 密碼 | MFA:電子郵件驗證碼 + 備用代碼
Email MFA setup flow 1-1

註冊:手機號碼 + 簡訊驗證碼 + 密碼 | MFA:電子郵件驗證碼 + 通行密鑰 + 驗證器應用程式 OTP + 備用代碼

Email MFA setup flow 1-2

情境 2:電子郵件作為註冊識別子且已驗證

若電子郵件地址為註冊識別子,且使用者於註冊時已用郵件驗證碼驗證,系統會自動將該郵件綁定為 MFA 因素,無需額外驗證。

範例:

註冊:電子郵件地址 + 電子郵件驗證碼 + 密碼 | MFA:電子郵件驗證碼 + 備用代碼
Email MFA setup flow 2

情境 3:電子郵件已驗證但有多個主要因素

若電子郵件於註冊時已驗證(作為註冊識別子),但帳號有多個主要 MFA 因素(如電子郵件加通行密鑰或驗證器應用程式),UI 會提示「新增另一個兩步驟驗證」。使用者可選擇新增其他因素或略過;提示同時說明 MFA 已啟用。

範例:

註冊:電子郵件地址 + 電子郵件驗證碼 + 密碼 | MFA:電子郵件驗證碼 + 通行密鑰 + 驗證器應用程式 OTP + 備用代碼

Email MFA setup flow 3

電子郵件 MFA 驗證流程

啟用電子郵件 MFA 的使用者登入時,完成主驗證 (1FA) 後,系統會提示其以電子郵件驗證碼作為第二驗證因素 (2FA) 驗證身分。

若有多個 MFA 因素,使用者可從已設定的因素中選擇。系統會根據 MFA 設定 中指定的優先順序決定先提示哪個 MFA 因素。

範例:

登入:手機號碼 + 密碼 | MFA:電子郵件驗證碼(上次使用) / 驗證器應用程式 OTP / 備用代碼

Email MFA verification flow

錯誤處理

  1. 電子郵件地址未綁定

    • 錯誤代碼:session.mfa.mfa_factor_not_enabled
    • 處理方式:引導使用者先綁定電子郵件地址
  2. 驗證碼錯誤

    • 錯誤代碼:verification_code.code_mismatch
    • 處理方式:提示使用者重新輸入,限制重試次數
  3. 驗證碼過期

    • 錯誤代碼:verification_code.expired
    • 處理方式:提示使用者重新取得驗證碼
  4. 發送頻率超限

    • 錯誤代碼:connector.rate_limit_exceeded
    • 處理方式:顯示等待時間,限制重發次數