# AWS - Cognito Adaptive Authentication


# Cognito Adaptive Authentication

Amazon Cognito Adaptive Authentication 是 Cognito User Pool 的進階安全功能之一,屬於 「智慧型登入防護」(Adaptive Risk-based Authentication)。它會依據使用者的登入風險,動態地決定是否需要額外驗證(例如 MFA)。

是一種根據登入行為風險(如地理位置、裝置、IP、登入模式)動態調整驗證強度的安全機制。

若偵測出異常行為,Cognito 會自動要求使用者進行額外驗證(例如多因素驗證 MFA)。


# 啟用前提:Cognito User Pool 必須開啟「Advanced Security」

Amazon Cognito 有三種安全層級設定:

模式 功能
OFF 不使用進階安全功能
AUDIT 只記錄登入風險,不阻擋
ENFORCED 啟用自適應驗證,動態調整登入行為

Adaptive Authentication 只有在 ENFORCED 模式 下啟用。


# 運作流程


# 使用者登入

使用者輸入帳號密碼或社交登入憑證(Facebook / Google 等)。


# Cognito 風險分析引擎(Risk Evaluation)

Cognito 分析以下因素:

  • 登入 IP 位址 / 地理位置
  • 使用的 裝置 / 瀏覽器 fingerprint
  • 登入時間(異常時段)
  • 歷史登入模式(通常登入地點 vs 異常登入)

# Cognito 評估風險等級

Cognito 將此次登入行為標記為:

  • Low risk(低風險)
  • Medium risk(中風險)
  • High risk(高風險)

# 決策行為(Adaptive Action)

依照風險等級,執行不同動作

風險等級 採取動作
Low 允許登入
Medium 要求額外驗證(例如 MFA)
High 阻擋登入或鎖定帳號

# Adaptive Authentication 會使用的額外驗證方式

類型 說明
MFA (Multi-Factor Authentication) 要求使用 OTP 或 TOTP 驗證
SMS / Email 驗證碼 傳送一次性驗證碼
Challenge Response Flow 開發者自定義驗證流程(例如問題驗證)

# Reference

  • AWS - 使用自適應身分驗證