通过智能锁定在 Azure AD B2C 中缓解凭据攻击
凭据攻击会导致未经授权的资源访问。 要求用户所设密码的复杂性合理。 Azure AD B2C 针对凭据攻击实施了缓解技术。 缓解技术包括检测暴力凭据攻击和字典凭据攻击。 Azure Active Directory B2C (Azure AD B2C) 使用各种信号分析请求的完整性。 Azure AD B2C 旨在智能地将目标用户与黑客和僵尸网络区分开来。
智能锁定的工作原理
Azure AD B2C 使用复杂策略来锁定帐户。 将根据请求的 IP 和输入的密码锁定帐户。 锁定的持续时间也会根据存在攻击的可能性而延长。 密码尝试 10 次失败后(默认尝试阈值),会进行一分钟锁定。 在帐户解锁后(即在锁定期限到期后由服务自动解锁帐户后)下一次登录失败时,将再次进行一分钟锁定,每次登录失败都将继续锁定。 重复输入相同或类似的密码不会计为多次不成功登录。
解锁帐户
前 10 个锁定期限的长度为一分钟。 接下来的 10 个锁定期限时间稍长,并且每 10 个锁定期限后都会增加持续时间。 当帐户未锁定时,锁定计数器在成功登录后重置为零。 锁定期限可以持续长达五个小时。 用户必须等到锁定持续时间到期。 但是,用户可以使用自助 密码用户流 解锁。
管理智能锁定设置
管理智能锁定设置,包括锁定阈值:
登录 Azure 门户。
如果有权访问多个租户,请选择顶部菜单中的“设置”图标,切换到“目录 + 订阅”菜单中的 Azure AD B2C 租户。
在左侧菜单中,选择“Azure AD B2C”。 或者,选择“所有服务”并搜索并选择“Azure AD B2C”。
在“安全性”下,选择“身份验证方法(预览版)”,然后选择“密码保护”。
在“自定义智能锁定”下,输入所需的智能锁定设置:
“锁定阈值”:帐户首次锁定之前允许的失败登录尝试次数。如果锁定后的首次登录也失败了,则帐户再次锁定。
“锁定持续时间(以秒计)”:每次锁定的最短持续时间(以秒计)。 如果帐户重复锁定,则此持续时间增加。
在“密码保护”设置中,将锁定阈值设置为 5。
选择“保存”。
测试智能锁定
智能锁定功能使用许多因素来确定何时应锁定帐户,但主要因素是密码模式。 智能锁定功能将密码的细微变化视为一个集,并计为单次尝试。 例如:
- 密码,比如 12456! 和 1234567! (或 newAccount1234 和 newaccount1234)非常相似,因此算法将其解释为人为错误,并计为单次尝试。
- 模式中较大的变化,例如 12456! 和 ABCD2! 被视为单独的尝试。
测试智能锁定功能时,对输入的每个密码使用一种独特的模式。 考虑使用密码生成 web 应用,例如 https://password-gen.com/
。
当帐户处于锁定状态时达到智能锁定阈值,将收到以下消息:“帐户暂时锁定以防止未经授权的使用。请稍后重试。” 可以将错误消息本地化。
注意
测试智能锁定时,由于 Microsoft Entra 身份验证服务的地理分布和负载均衡特性,登录请求可能由不同的数据中心处理。 在这种情况下,由于每个 Microsoft Entra 数据中心独立地跟踪锁定,因此可能需要比所定义的锁定阈值更多的尝试次数才会导致锁定。 在完全锁定之前,用户最多有 (threshold_limit * datacenter_count) 次错误尝试机会。有关详细信息,请参阅 Azure 全局基础结构。
查看锁定的帐户
若要获取有关已锁定帐户的信息,可以检查 Active Directory 登录活动报表。 在“状态”下,选择“失败”。 登录尝试失败,“登录错误代码”为 50053
,表示帐户已锁定:
若要了解如何在 Microsoft Entra ID 中查看登录活动报表,请参阅登录活动报表错误代码。