使用自适应身份验证 - Amazon Cognito
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

使用自适应身份验证

借助自适应身份验证,可以将用户池配置为阻止可疑登录或增加第二安全要素身份验证以响应增加的风险级别。对于每次登录尝试,Amazon Cognito 都会生成一个风险分数来表示登录请求来自遭盗用源的可能性。此风险分数基于许多因素,包括它是否检测到新设备、用户位置或 IP 地址。自适应身份验证基于风险级别为在用户级别没有启用 MFA 类型的用户添加 MFA。当在用户级别启用 MFA 类型时,无论您如何配置自适应身份验证,这些用户在身份验证过程中将始终收到第二个因素质询。

Amazon Cognito 将向 Amazon CloudWatch 发布登录尝试、其风险级别和失败的质询。有关更多信息,请参阅查看高级安全指标

要向用户池添加自适应身份验证,请参阅向用户池添加高级安全

自适应身份验证概述

高级安全性页面上,您可以选择自适应身份验证的设置,包括在不同风险级别下采取什么操作,以及向用户发送的通知消息的自定义设置。

对于每个风险级别,您可以选择以下选项:

选项

操作

允许 允许登录尝试而无需额外因素。
可选 MFA 如果用户配置了第二个因素(如 SMS 的电话号码 *)或配置了 TOTP 软件令牌),则需要完成第二安全要素质询才能登录。允许未配置第二个因素的用户登录,不需要额外的安全要素。
需要 MFA 如果用户配置了第二个因素(如 SMS 的电话号码 *)或配置了 TOTP 软件令牌),则需要完成第二安全要素质询才能登录。阻止未配置第二因素的用户登录。
Block 阻止该风险级别下的所有登录尝试。
注意

* 手机号码不需要验证即可用于短信作为第二个认证因素。

创建设备指纹

当您调用 Amazon Cognito 身份验证 API(例如AdminInitiateAuth或者AdminRespondToAuthChallenge从服务器发出,则需要在 ContextData 参数中传递用户的源 IP。除此之外,还有通过使用 Amazon Cognito 上下文数据收集库收集的服务器名称、服务器路径和编码的设备指纹数据。

有关从 Web 或移动应用程序启用高级安全的信息,请参阅通过应用程序启用用户池高级安全

当应用程序从服务器调用 Amazon Cognito 时,从客户端收集用户上下文数据。以下是使用 JavaScript 开发工具包方法 getData 的示例。

var encodedData = AmazonCognitoAdvancedSecurityData.getData(username, userPoolId, clientId);

建议在应用程序中包含最新的 Amazon Cognito 开发工具包。这使自适应身份验证能够收集设备指纹信息 — 如设备 ID、模型和时区。有关 Amazon Cognito SDK 的更多信息,请参阅。安装用户池开发工具包

查看用户事件历史记录

您可以在 Amazon Cognito 控制台中从用户和组来查看该用户的登录历史记录。Amazon Cognito 会将用户事件历史记录保留两年。


            用户事件历史记录

每个登录事件都有一个事件 ID、上下文数据 (例如位置)、设备详细信息以及与其关联的风险检测结果。


            用户登录事件

您也可以将事件 ID 与颁发的令牌关联。颁发的令牌(如 ID 令牌和访问令牌)将在其负载中包含此事件 ID。使用刷新令牌的事件将保留原始事件 ID。原始事件 ID 可追溯到导致颁发 Amazon Cognito 令牌的登录事件的事件 ID。这使您能够跟踪系统中的令牌在特定身份验证事件中的使用。

提供事件反馈

事件反馈实时影响风险评估,并随着时间的推移改进风险评估算法。您可以通过 Amazon Cognito 控制台和 API 操作提供有关登录尝试有效性的反馈。

在控制台中的用户和组选项卡上,将列出登录历史记录,如果您单击某个条目,则可以将事件标记为有效或无效。还可以通过用户池 API 方法 AdminUpdateAuthEventFeedback、Amazon CLI 命令 admin-update-auth-event-feedback 提供反馈。

发送通知消息

借助高级安全保护,Amazon Cognito 可以通知用户发现了登录尝试,提示他们单击链接以指示登录有效还是无效,并使用用户的反馈来提升用户池的风险检测准确性。

当登录尝试被评为低、中和高风险时,您希望如何使用自适应身份验证?部分中,选择将低、中和高风险案例通知用户


            通知用户

可以自定义通知电子邮件并同时提供明文和 HTML 版本。选择自定义from适应身份验证通知消息可自定义电子邮件通知。要了解有关电子邮件模板的更多信息,请参阅消息模板