# 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 - 使用自適應身分驗證