

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用凭证遭泄露检测功能
<a name="cognito-user-pool-settings-compromised-credentials"></a>

Amazon Cognito 可以检测用户的用户名和密码是否已在别处遭盗用。这种情况可能出现在用户在多个站点重复使用凭证时或它们使用不安全的密码时。Amazon Cognito 通过托管登录和 Amazon Cognito API 检查使用用户名和密码登录的[本地用户](cognito-terms.md#terms-localuser)。

在 Amazon Cognito 控制台的**威胁防护**菜单中，您可以配置**已泄露的凭证**。配置**事件检测**以选择要监控的用户事件，以查看是否有已泄露的凭证。配置**已泄露凭证的响应**，以选择在检测到已泄露的凭证时是允许还是阻止用户。Amazon Cognito 可以在登录、注册和密码更改期间检查是否有已泄露的凭证。

选择 “**允许登录**” 后，您可以查看 Amazon CloudWatch Logs 以监控 Amazon Cognito 对用户事件所做的评估。有关更多信息，请参阅 [查看威胁防护指标](metrics-for-cognito-user-pools.md#user-pool-settings-viewing-threat-protection-metrics)。当您选择**禁止登录**时，Amazon Cognito 会阻止使用已泄露的凭证的用户登录。当 Amazon Cognito 阻止用户登录时，它将用户的 [https://docs.amazonaws.cn/cognito-user-identity-pools/latest/APIReference/API_UserType.html](https://docs.amazonaws.cn/cognito-user-identity-pools/latest/APIReference/API_UserType.html) 设置为 `RESET_REQUIRED`。具有 `RESET_REQUIRED` 状态的用户必须先更改密码，然后才能再次登录。

已泄露的凭证可针对以下用户活动检查密码。

**注册**  
您的用户池会检查用户在[SignUp](https://docs.amazonaws.cn/cognito-user-identity-pools/latest/APIReference/API_SignUp.html)操作中以及托管登录的注册页面中传输的密码，以确定是否存在泄露迹象。

**登录**  
您的用户池会检查用户在基于密码的登录中提交的密码是否存在泄露迹象。Amazon Cognito 可以在[AdminInitiateAuth](https://docs.amazonaws.cn/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)两者中查看`USER_PASSWORD_AUTH`流[InitiateAuth](https://docs.amazonaws.cn/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)入、流入和`USER_AUTH`流入的`PASSWORD`选项。`ADMIN_USER_PASSWORD_AUTH`  
当前，对于采用安全远程密码（SRP）流程的登录操作，Amazon Cognito 不会检查是否有已泄露的凭证。SRP 在登录期间发送经过哈希处理的密码证明。Amazon Cognito 无法在内部访问密码，因此，它只能评估您的客户端以纯文本形式传递给它的密码。

**密码重置**  
在使用[ConfirmForgotPassword](https://docs.amazonaws.cn/cognito-user-identity-pools/latest/APIReference/API_ConfirmForgotPassword.html)自助密码重置操作设置新用户密码的操作中，您的用户池会检查是否存在泄露迹象。此操作所需的代码由[ForgotPassword](https://docs.amazonaws.cn/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html)和生成[AdminResetUserPassword](https://docs.amazonaws.cn/cognito-user-identity-pools/latest/APIReference/API_AdminResetUserPassword.html)。  
被泄露的凭据无法检查管理员设置的临时或永久密码。[AdminSetUserPassword](https://docs.amazonaws.cn/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html)但是，使用临时密码时，您的用户池会根据[RespondToAuthChallenge](https://docs.amazonaws.cn/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)和中对`NEW_PASSWORD_REQUIRED`质询的响应来检查密码[AdminRespondToAuthChallenge](https://docs.amazonaws.cn/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html)。

要向用户池添加已泄露的凭证保护，请参阅 [具备威胁防护的高级安全功能](cognito-user-pool-settings-threat-protection.md)。