AWS Cognito Auth

Polar Sponsor
爱发电 赞助
.NET 9.0

使用此技能处理任何涉及 AWS Cognito 的任务——用户池、身份池、认证流程、令牌处理、社交/企业联合、MFA、Lambda 等。

AWS 认知技能

功能概述

AWS 认知技能是一项面向实际任务的技能,主要用于此技能帮助您构建、配置、调试和管理 AWS 认知资源 — 用户池、 身份池、 应用客户端、 Lambda 触发器、 联邦和集成。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

核心要点

  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

AWS Cognito 技能

该技能可帮助您构建、配置、调试和管理 AWS Cognito 资源——包括用户池(User Pools)、身份池(Identity Pools)、应用客户端(App Clients)、Lambda 触发器、联合身份认证(Federation),以及与其他 AWS 服务的集成。

快速决策:用户需要什么?

  1. 从零开始新建 Cognito 配置 → 阅读 references/setup-guide.md,然后按设置工作流操作
  2. 使用 CDK / CloudFormation / Terraform 进行基础设施即代码(IaC)管理 → 阅读 references/iac-patterns.md 获取可用于生产环境的模板
  3. 实现认证流程(Authentication Flow) → 阅读 references/auth-flows.md 获取 SDK 示例代码及流程选型建议
  4. 调试与排障 → 阅读 references/troubleshooting.md 了解常见问题及其修复方法
  5. Lambda 触发器 → 阅读 references/lambda-triggers.md 了解触发器模式
  6. 安全加固 → 阅读 references/security.md 了解最佳实践

在生成任何代码或配置前,请务必先阅读相关参考文档。多个文件可能同时适用——例如,新建一个基于 CDK 的配置时,应同时参考 setup-guide.md 和 iac-patterns.md。

核心概念(始终牢记)

用户池 vs 身份池

这是 Cognito 的两个主要组件,用途各不相同:

  • 用户池(User Pool):作为用户目录及 OIDC 身份提供商,负责处理注册、登录、MFA、签发令牌(ID Token、Access Token、Refresh Token),以及与外部身份提供商(IdP)的联合认证。可理解为“这个用户是谁?”
  • 身份池(Identity Pool,即 Federated Identities):将来自用户池、社交登录、SAML 或 OIDC 提供商的令牌,交换为临时 AWS 凭据(通过 STS)。可理解为“该用户可访问哪些 AWS 资源?”

典型架构会同时使用两者:用户池完成用户身份认证并签发令牌 → 身份池将这些令牌交换为 AWS 凭据 → 用户据此访问 S3、DynamoDB 等资源。

功能计划(Feature Plans,定价层级)

截至 2024 年底,Cognito 已采用功能计划(Feature Plans)替代旧版“高级安全”开关:

  • Lite:低成本、基础认证功能,适用于 MAU(月活跃用户)较少的简单应用。
  • Essentials(新创建用户池的默认选项):包含所有最新认证功能,如 Access Token 自定义、托管登录(Managed Login)等。
  • Plus:包含 Essentials 全部功能,并额外提供威胁防护能力(自适应认证、凭证泄露检测)。

务必向用户确认所需的功能计划;若未明确指定,新配置默认采用 Essentials。

令牌类型

  • ID Token:包含用户身份声明(如 email、name、groups、自定义属性),用于后端的身份核验。
  • Access Token:包含权限范围(scopes)与已授权操作,用于 API 授权(例如 API Gateway 中的 Cognito Authorizer)。
  • Refresh Token:长期有效的令牌,用于在无需重新认证的前提下获取新的 ID Token / Access Token,默认有效期为 30 天。

构建 Cognito 解决方案的工作流

步骤 1:明确需求

在编写任何代码前,请先确认以下事项:

  • 认证方式:用户名/密码?仅邮箱?仅手机号?社交登录(Google、Apple、Facebook)?企业级 SAML/OIDC?
  • MFA:是否强制启用?是否可选?是否禁用?验证方式为 SMS、TOTP 认证器 App,还是邮箱?
  • 自助注册:是否允许用户自助注册?还是仅支持管理员创建用户?
  • 令牌用途:仅前端使用(SPA/移动端)?用于后端 API 授权?还是直接访问 AWS 资源?
  • IaC 偏好:CDK(TypeScript/Python)、CloudFormation、Terraform,还是控制台/CLI?
  • 前端框架:React/Amplify、Next.js、Vue、移动端(iOS/Android),还是自定义实现?

步骤 2:设计架构

根据需求确定以下设计要点:

  • 用户池配置(登录别名、用户属性、密码策略、MFA 设置等)
  • 应用客户端(App Client)类型 —— 公开型(无密钥,适用于 SPA/移动端) vs 机密型(含密钥,适用于服务端)
  • OAuth 流程 —— 授权码模式(Authorization Code,公开客户端需配合 PKCE)、隐式模式(Implicit,已过时,应避免)、客户端凭据模式(Client Credentials,适用于 M2M 场景)
  • 是否需要身份池(仅当用户需直接访问 AWS 资源时才需要)
  • 所需的 Lambda 触发器(如 pre-sign-up、post-confirmation、pre-token-generation、custom auth 等)
  • 域名 —— 使用 Cognito 托管的前缀域名,还是自定义域名?

步骤 3:实施

阅读对应参考文档并生成代码。请始终遵循以下原则:

  • 使用最新版 CDK v2 构建模块(aws-cdk-lib/aws-cognito),切勿使用 CDK v1
  • SDK 代码使用 AWS SDK v3(@aws-sdk/client-cognito-identity-provider),切勿使用 v2
  • 前端优先采用 Amplify v6(aws-amplify)模式
  • 包含完善的错误处理逻辑与令牌刷新机制
  • 生产环境中,用户池资源需设置 RemovalPolicy.RETAIN(防止数据丢失)
  • 切勿硬编码密钥 —— 应使用环境变量或 AWS Secrets Manager

步骤 4:安全审查

在宣布完成前,请依据 references/security.md 进行核验:

  • 生产环境至少启用可选 MFA
  • 密码策略符合要求(如最少 8 位字符、满足复杂度规则)
  • 令牌有效期设置合理
  • 面向公网的认证端点应考虑部署 WAF
  • 身份池关联的 IAM 角色须遵循最小权限原则
  • 机密型客户端(confidential clients)必须使用客户端密钥(client secret)
  • 回调 URL 必须仅支持 HTTPS

常用模式速查

Cognito + API Gateway

在 API Gateway 上配置 Cognito 用户池授权方(Cognito User Pool Authorizer),Access Token 将被自动校验;Token 中的权限范围(scopes)决定用户可访问的 API 方法。

Cognito + AppSync

在 GraphQL API 上配置 AMAZON_COGNITO_USER_POOLS 授权类型,并在 Schema 中使用 @auth 指令实现细粒度访问控制。

Cognito + S3(通过 Identity Pool)

用户池 → 身份池 → 绑定具备 S3 权限的 IAM 角色,且权限范围限制为 ${cognito-identity.amazonaws.com:sub}/*,以实现按用户隔离的存储路径。

Cognito + Lambda(自定义认证)

采用 CUSTOM_AUTH 流程,配合 Define Auth Challenge、Create Auth Challenge 和 Verify Auth Challenge 触发器,实现无密码(Magic Link、OTP)或多步骤认证。

机器对机器(M2M)

使用 Client Credentials 授权模式,配合资源服务器(Resource Server)与自定义 scopes,实现应用到应用的认证(无需用户交互)。

重要提醒

  • 用户池创建时标记为“必需”的属性,在创建后无法修改,请谨慎规划属性结构。
  • 自定义属性名称必须以 custom: 为前缀(例如 custom:company)。
  • sub 属性是唯一且不可变的用户标识符,应作为主键使用,而非 email 或 username。
  • 邮箱/手机号验证与登录别名(sign-in aliases)是两个独立配置项;若将其设为登录别名,请同步启用自动验证(auto-verify)。
  • Cognito 存在服务配额限制(例如 API 请求速率限制)。对于高并发应用,请提前申请提升配额。
  • Lambda 触发器为同步执行,超时时间为 5 秒,请确保逻辑高效简洁。

相关专题

更多
Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

0

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

0

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

0

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习