密碼政策 (Password Policy)
Logto 會根據密碼的建立或更新方式,以不同方式套用密碼政策:
- 端使用者流程,例如 預設登入體驗、使用體驗 API (Experience API) 以及 Account API 都會強制執行目前的 密碼政策。
- 透過 Management API
patch /api/users/{userId}/password進行的管理員操作則不受限制,讓你在需要時可不經政策檢查配置或重設憑證。 - 若要依現行規則稽核現有密碼,請呼叫
POST /api/sign-in-exp/default/check-password並依回傳的驗證結果進行處理。詳情請參閱 密碼合規性檢查。
設定密碼政策 (Set up password policy)
針對新使用者或更新密碼的使用者,你可以設定密碼政策以強制密碼強度要求。請前往 控制台 > 安全性 > 密碼政策 (Password policy) 設定密碼政策。
- 最小密碼長度:設定密碼所需的最少字元數。(NIST 建議至少 8 個 字元)
- 最少需包含的字元類型數:設定密碼需包含的最少字元類型數。可用的字元類型有:
- 大寫字母:(A-Z)
- 小寫字母:(a-z)
- 數字:(0-9)
- 特殊字元:
(!"#$%&'()\*+,-./:;<>=?@[]^\_`|{}~ )
- 資料外洩歷史檢查:啟用此設定可拒絕曾在資料外洩事件中出現過的密碼。(由 Have I Been Pwned 提供支援)
- 重複字元檢查:啟用此設定可拒絕包含重複字元的密碼。(例如 "11111111" 或 "password123")
- 使用者資訊檢查:啟用此設定可拒絕包含使用者資訊(如使用者名稱、電子郵件地址或電話號碼)的密碼。
- 自訂關鍵字:提供一組自訂(不區分大小寫)關鍵字,密碼中若包含這些字詞將被拒絕。
密碼合規性檢查 (Password compliance check)
當你在 Logto 更新密碼政策後,現有使用者仍可使用原有密碼登入。只有新建立的帳號才會被要求遵循最新政策。
為加強安全性,你可以使用 POST /api/sign-in-exp/default/check-password API 檢查使用者密碼是否符合預設登入體驗下的現行政策。若不符合,可透過自訂流程搭配 Account API 提示使用者更新密碼。