Amazon Cognito 功能

什么是 Amazon Cognito?

借助 Amazon Cognito,您可以在几分钟内将用户注册、登录、访问控制和代理的 AWS 服务访问权限添加到您的 Web 应用程序和移动应用程序中。它是一项以开发人员为中心且经济高效的服务,可提供安全、基于租户并能够扩展到数百万用户的身份存储和联合身份验证选项。Amazon Cognito 可以帮助您创建品牌客户体验、提高安全性并适应您客户的需求。例如,它支持通过社交身份提供商进行登录,以及使用 WebAuthn 通行密钥或者短信和电子邮件一次性密码进行无密码登录。Amazon Cognito 支持多种合规性标准,按照开放身份标准运行,并与大量的开发资源和软件开发工具包库集成。

用户身份验证

开发人员可以使用无代码的可视化编辑器调整最终用户屏幕(例如注册、登录和 MFA)的显示方式。配置参数包括颜色、定位、对齐、文本、语言、背景、图像、徽标、字体和布局等等。借助这些配置选项,可以精确匹配消费品牌风格,Cognito 提供的用户体验可以与应用程序的其余部分更加一致、更具凝聚力。

客户可以配置 Amazon Cognito,以使最终用户无需记住密码即可访问应用程序,从而减少摩擦、增强安全性和提高用户转化率。支持的无密码身份验证流程包括使用电子邮件登录、使用电话/短信登录和使用通行密钥登录。这一灵活性增强了用户体验并简化了登录过程。

WebAuthn 通行密钥无需使用密码并降低了网络钓鱼和凭证被盗的风险,因此增强了安全性。它们通过更快速、更便捷的身份验证方法(例如生物识别或硬件令牌)提供无缝的用户体验。此外,通行密钥利用公钥加密来提高整体账户安全性,可确保敏感信息永远不会传输或存储在服务器上。Amazon Cognito 提供了 [托管式登录] 和 API 支持,可以为每个账户创建和存储多达 20 个通行密钥。

可以为用户账户启用 MFA,以便为您的客户增加一层额外的安全性。用户可以使用电子邮件、短信或基于时间的一次性密码(TOTP)生成器(例如 Google Authenticator)来验证他们的身份。Amazon Cognito 还支持在不同的用户池上配置不同的密码规则。

作为一个联合身份验证中心,Amazon Cognito 使用户能够通过社交身份提供商(例如 Apple、Facebook、Google 和 Amazon)以及通过 SAML 和 OIDC 的企业身份提供商登录。Amazon Cognito 支持多种 SAML 配置文件,包括 SAML SP 发起的流程、IdP 发起的流程和 SAML 加密。一旦用户登录到 Amazon Cognito(通过本地身份验证或外部联合身份验证),他们就可以使用 OAuth/OIDC 访问联合资源。

Amazon Cognito 允许您构建自定义身份验证流程,此流程使用 AWS Lambda 函数根据一个或多个质询-响应循环对用户进行身份验证。您可以使用此流程实施基于自定义质询的定制身份验证方案,也可以将自定义质询用作额外的因素。

使用 AWS Lambda 触发器自定义 Cognito 行为,包括用户生命周期阶段,例如身份验证和注册之前和之后或者令牌签发之前。您还可以使用 Lambda 触发器自定义在不同阶段发送给用户的消息,或者与第三方电子邮件和短信提供商集成。

身份管理

客户对您网站的第一次体验通常来自自助注册流程。Amazon Cognito 提供了可自定义、预打包的托管式登录界面以快速打入市场,还提供了一组强大的 API 以构建完全自定义的自助注册解决方案。用户可以使用您的应用程序的电子邮件、电话号码或用户名进行注册。自助注册流程使用户能够查看和更新他们的个人资料数据,包括自定义属性。使用自助服务选项减少帮助中心的呼叫数量,例如通过 SMS 消息或电子邮件重置密码。

Amazon Cognito 提供了基于租户的安全身份存储(用户池),可以扩展到数百万用户。对于直接注册的用户和使用外部身份提供者登录的联合用户,用户池可以安全地存储用户个人资料数据。

Amazon Cognito 身份存储是基于 API 的用户存储库。存储库和 API 支持每个用户最多存储 50 个自定义属性,支持不同的数据类型,并强制执行长度和可变性约束。选择用户在完成注册过程之前必须提供的所需属性

用户可以使用批量导入或即时(JIT)迁移迁移到 Amazon Cognito。利用 CSV 文件导入流程实现批量用户迁移。使用 JIT 迁移流程时,AWS Lambda 触发器会将迁移流程集成到登录工作流中,并且可以保留用户的密码。

Amazon Cognito 通过多租户支持实现 B2B 交互。可以选择重用应用程序集成、访问和密码策略,或者强制实施完全的租户隔离。

访问控制

Amazon Cognito 可确保与应用程序的最终集成。AWS AppSync、Amazon 应用程序负载均衡器(ALB)和 Amazon API Gateway 具有内置的策略执行点,可提供基于 Amazon Cognito 令牌和范围的访问。

使用 Amazon Verified Permissions 快速入门,客户可以自动生成权限策略、根据 Cognito 群组成员资格分配基于角色的访问控制,并实施精细授权。Amazon Verified Permissions 具有内置的令牌授权方,支持 Amazon Cognito ID 和访问令牌,包括复杂的令牌套令牌结构。

Amazon Cognito 的凭证代理(也称为 Amazon Cognito 身份池)提供对 AWS 资源的单点登录访问,例如 Amazon DynamoDB、Amazon S3 存储桶、AWS Lambda 无服务器组件和其他 Amazon 服务。用户可以动态映射到不同的角色,以支持对服务的最低权限访问。

Amazon Cognito 使用 OAuth 客户端凭证流提供机器对机器身份验证,确保应用程序组件之间的安全体验。

使用自定义属性,以符合 OAuth 2.0 范围和声明的形式,丰富 ID 和访问令牌。您可以使用访问令牌中的自定义属性做出特定于应用程序的高级授权决策。此功能还允许您个性化最终用户体验并提高客户参与度。

客户体验

使用数据驱动的方法来推动客户获取和保留。启动客户外联活动并跟踪与 Amazon Pinpoint 的互动。Amazon Pinpoint 为基于 Amazon Cognito 的用户活动提供分析,而 Amazon Cognito 则丰富了 Pinpoint 活动的用户数据。

AWS Amplify 是一组专门构建的工具和功能,使前端 Web 和移动开发人员可以快速、轻松地在 AWS 上构建全堆栈应用程序,随着使用案例的发展,可以灵活地利用广泛的 AWS 服务。借助 Amplify,您可以使用 Amazon Cognito 配置 Web 或移动应用程序后端,并在几分钟内连接您的应用程序,直观地构建 Web 前端 UI,并在 AWS 管理控制台之外轻松管理应用程序内容。无需云专业知识,就可更快发布和扩展。

CIAM 解决方案是自定义解决方案。Amazon Cognito 提供了一组强大的钩子和扩展程序,以完全自定义身份验证、注册和用户迁移流程。例如,可以通过自定义身份证明和账户验证检查来增强自助注册流程,并且可以扩展登录流程以创建自定义身份验证流程或在生成令牌之前对其进行修改。

Amazon Cognito 开发工具包可使用 Java、C++、PHP、Python、Golang、Ruby、.NET 和 JavaScript。

高级安全功能

通过与 AWS Web Application Firewall(AWS WAF)进行内置集成,Amazon Cognito 提供了先进的机器人检测功能,可以帮助您的组织避免为自动化账户付费,并减小机器人攻击的影响。

Amazon Cognito 可以实时检测和防止在用户注册、登录或更改密码时重复使用受损凭证。Amazon Cognito 检测到用户输入了已在其他地方遭泄露的凭据时,会提示他们更改密码。

通过自适应身份验证保护您的用户账户并增强他们的登录体验。当 Amazon Cognito 检测到异常的登录活动,例如有人尝试从新位置和新设备登录或者从 IP 地理位置角度来看属于无法实现的旅行时,它将为此活动分配一个风险分数,并让您选择是提示用户进行额外验证还是拦截登录请求。

审计与合规性

Amazon Cognito 支持使用 AWS CloudTrail、Amazon CloudWatch 指标和 Amazon CloudWatch Logs Insights 进行监控。使用 CloudTrail,您可以捕获来自 Amazon Cognito 控制台的 API 调用以及 Amazon Cognito API 操作的代码调用。借助 CloudWatch 指标,您可以近乎实时地监控、报告事件并在发生事件时自动采取措施。借助 CloudWatch Logs Insights,您可以将 CloudTrail 配置为将事件发送至 CloudWatch,以监控 Amazon Cognito CloudTrail 日志文件。

Amazon Cognito 为登录、注册和密码更改等用户事件提供了高级日志记录,可捕获风险级别、位置、来源 IP 和用户代理等详细请求数据。客户可以通过 Amazon Kinesis Data Firehose 将这些事件日志数据流式传输到 Amazon CloudWatch、Amazon S3 或第三方日志聚合解决方案。这样可以对用户活动进行全面的监控和分析。

Amazon Cognito 可满足多种安全性与合规性要求,包括医疗保健公司和企业等受高度管制的组织的相关要求。Amazon Cognito 符合 HIPAA 要求,并满足 PCI DSS、SOC、ISO/IEC 27001、ISO/IEC 27017、ISO/IEC 27018 和 ISO 9001 标准。