

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

# 使用凭证遭泄露检测功能
<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 可以在登录、注册和密码更改期间检查是否有已泄露的凭证。

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

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

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

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

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

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