密码策略
Logto 会根据密码的创建或更新方式以不同方式应用密码策略:
- 终端用户流程,如 开箱即用的登录体验、体验 API 和 Account API 总是强制执行当前的密码策略。
- 管理员通过 Management API
patch /api/users/{userId}/password的操作则不受限制,允许你在需要时无需策略检查即可配置或重置凭据。 - 若要根据当前规则审计现有密码,请调用
POST /api/sign-in-exp/default/check-password并根据返回的验证结果采取措施。阅读密码合规性检查以了解更多信息。
设置密码策略
对于新用户或正在更新密码的用户,你可以设置密码策略以强制执行密码强度要求。访问 控制台 > 安全 > 密码策略 配置密码策略设置。
- 最小密码长度:设置密码所需的最小字符数。(NIST 建议至少使用 8 个字符)
- 最少所需字符类型数:设置密码所需的最少字符类型数。可用的字符类型包括:
- 大写字母:
(A-Z) - 小写字母:
(a-z) - 数字:
(0-9) - 特殊字符:
(!"#$%&'()*+,-./:;<>=?@[]^\_`|{}~ )
- 大写字母:
- 泄露历史检查:启用此设置后,将拒绝在数据泄露中曾经暴露过的密码。(由 Have I Been Pwned 提供支持)
- 重复字符检查:启用此设置后,将拒绝包含重复字符的密码。(例如,“11111111”或“password123”)
- 用户信息检查:启用此设置后,将拒绝包含用户名、邮箱地址或手机号等用户信息的密码。
- 自定义词语:提供一个自定义词语列表(不区分大小写),这些词语将被拒绝用于密码中。
密码合规性检查
在你更新 Logto 中的密码策略后,现有用户仍然可以使用当前密码登录。只有新创建的账户才需要遵循更新后的策略。
为了加强安全性,你可以使用 POST /api/sign-in-exp/default/check-password API 检查用户的密码是否符合默认登录体验中定义的当前策略。如果不符合,你可以通过自定义流程,使用 Account API 提示用户更新密码。