本指引将展示 Amazon Cognito 的自定义身份验证流程。使用分散式 Web 应用程序(dApp),您可以通过 Amazon Cognito 向您的数字钱包进行身份验证,以获得临时 AWS 凭证。随后,这些凭证允许您访问 AWS 服务,使您能够安全地将 API 调用代理到第三方 API。本指引提供了两种不同的授权方法,您可以从中选择最方便的方法。

请注意:[免责声明]

架构图

[架构图描述]

下载架构图 PDF 

Well-Architected 支柱

当您在云中构建系统时,AWS Well-Architected Framework 可以帮助您了解所做决策的利弊。框架的六大支柱使您能够学习设计和操作可靠、安全、高效、经济高效且可持续的系统的架构最佳实践。使用 AWS 管理控制台中免费提供的 AWS Well-Architected Tool,您可以通过回答每个支柱的一组问题,根据这些最佳实践来检查您的工作负载。

上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。

  • 本指引使用 AWS Serverless Application Model(SAM)定义、构建和部署架构资源。如果 Lambda 函数和 API Gateway 遇到故障或错误,您可以设置 Amazon CloudWatch 警报以解决意外的问题。请查看此博客文章,以了解更多信息:如何使用 CloudWatch 获得有关特定 Lambda 函数错误模式的通知

    阅读《卓越运营》白皮书 
  • 本指引采用自定义身份验证流程,在此流程中,用户需要使用他们的数字钱包(加密钱包)为生成的消息签名,以回答 Amazon Cognito 自定义质询,并在用户池中创建身份。此外,本指引还展示了 API Gateway 的两种授权方法:使用 Amazon Cognito 用户池身份令牌,或者对经过身份验证和未经身份验证的用户使用 Amazon Cognito 身份池AWS Identity and Access Management(IAM)角色。

    您可以安全地将 API 调用代理到第三方 Web3 提供程序 API,这一原则适用于任何第三方 API。API Gateway 提供不同的授权机制,以保护对后端的访问。当来自第三方 Web3 API 的数据通过 API Gateway 传输到客户端的分散式 Web dApp 时,对它们进行传输中加密。

    阅读《安全性》白皮书 
  • 本指引使用 Amazon CognitoAPI Gateway 这两项极具可用性的托管式服务。这两项服务都会生成可以调用警报的 CloudWatch 指标,而详细的 API Gateway 日志提供了对收到的 HTTP 请求的可见性。这些可观测性功能可以帮助您监控 AWS 区域的运行状况,您可以在这些区域中部署本指引,以帮助提高工作负载的整体可靠性。

    阅读《可靠性》白皮书 
  • 您可以将 GitHub 上提供的源代码和后端文件夹中提供的 SAM 模板用作您自己的项目的样板。随后,您可以配置 API Gateway,以指向所需的后端 API 或者运行您选择的 Lambda 函数。

    阅读《性能效率》白皮书 
  • 本指引使用 Amazon CognitoAPI Gateway,这两项无服务器服务提供了可以帮助您入门的免费套餐。Amazon Cognito 根据您的用户池中的每月活跃用户(MAU)数量收费,而 API Gateway 根据收到的 API 调用次数和传出的数据量收费。

    阅读《成本优化》白皮书 
  • 本指引尽可能将 API 请求直接代理到后端集成,而不是启动 Lambda 函数,因此减少了资源消耗。所涉及的 Lambda 函数只在所需的持续时间内运行。这种方法可以实现可持续、经济高效的解决方案,而且只在必要时消耗资源。

    阅读《可持续性》白皮书 

实施资源

提供了在 AWS 账户中进行实验和使用的详细指南。构建指南的每个阶段(包括部署、使用和清理)都将被检查,以便为部署做好准备。

示例代码为起点。它经过行业验证,是规范性但不是决定性的,可以帮助您开始。

[内容类型]

[标题]

此[博客文章/电子书/指南/示例代码]演示了如何 [插入简短描述]。

免责声明

示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。

本指南中提及第三方服务或组织并不意味着 Amazon 或 AWS 与第三方之间存在认可、赞助或从属关系。AWS 的指导是一个技术起点,您可以在部署架构时自定义与第三方服务的集成。

此页内容对您是否有帮助?