Amazon Cognito
开发人员指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

自适应身份验证

自适应身份验证通过 Amazon Cognito 用户池 增加用户登录的安全性,而不会给您的用户增添不必要的麻烦。对于每个登录尝试,Amazon Cognito 会计算出一个风险分数来判断该尝试是否来自一个攻击者。风险分数基于多种因素,包括设备是否无法识别,用户位置是否为新的,以及 IP 地址是否为新的等。您可以配置您的用户池来阻止登录,或在不同的风险级别下需要第二个因素。

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

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

选项

操作

允许 允许登录尝试而无需额外因素。
可选 MFA 配置了 MFA 的用户必须完成第二个因素质询才能登录;没有配置 MFA 的用户无需额外因素即可登录。
需要 MFA 配置了 MFA 的用户必须完成第二个因素质询才能登录;没有配置 MFA 的用户将被阻止登录。
Block 该风险级别下的所有登录尝试都将被阻止。

您还可以选择是否通过电子邮件通知用户有关在每个风险级别的登录尝试。有关更多信息,请参阅 通知消息和反馈

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

您应将最新的 Amazon Cognito 软件开发工具包纳入您的应用程序中,使自适应身份验证能够收集设备指纹识别信息,如设备 ID、型号、时区以及其他上下文功能。

注意

如果您从服务器调用 Amazon Cognito API,如 AdminInitiateAuthAdminRespondToAuthChallenge,则除了传递服务器名称、服务器路径和使用 Amazon Cognito 上下文数据收集库收集的编码设备指纹数据外,您还需要传递 ContextData 中用户的源 IP。

通知消息和反馈

Amazon Cognito 高级安全保护可以通知您的用户发现了登录尝试,提示他们单击链接以指示该登录是有效还是无效的,并使用他们的反馈来改进您的用户池风险检测准确性。您可以自定义电子邮件并同时提供纯文本和 HTML 版本。

此外,您可以通过 Amazon Cognito 控制台和 API 提供有关对于登录尝试有效性的反馈。在控制台中的 Users and groups 选项卡上,将列出登录历史记录,如果您单击某个条目,则可以将事件标记为有效或无效。您还可以通过 AdminUpdateEventFeedback API 提供反馈。 事件反馈实时影响风险评估,随着时间的推移,它还能改进风险评估算法。

事件用户历史记录

在 Amazon Cognito 控制台的 Users and groups 选项卡中,选择一个用户来查看其最近的登录事件。每个登录事件都有一个事件 ID、上下文数据 (例如位置)、设备详细信息以及与其关联的风险检测结果。

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