You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Cognito实现AWS API Gateway纯API端点用户名密码认证

适配纯API调用场景的身份认证实现方案

你可以通过以下两种完全基于API调用的方案实现和原有密码授权模式一致的认证逻辑,无需页面跳转:

方案1:直接使用Cognito原生密码认证流

该方案对标原有OAuth2密码授权模式,客户端侧改动量极小:

  • 首先进入Cognito用户池的对应应用客户端配置页,开启ALLOW_USER_PASSWORD_AUTH认证流,无需生成客户端密钥,避免密钥泄露风险。
  • 客户端直接调用Cognito的InitiateAuth服务端API,指定AuthFlow参数为USER_PASSWORD_AUTH,同时传入用户名、密码、应用客户端ID,调用成功后即可直接获取IdToken、AccessToken、RefreshToken三类令牌,流程和你原有获取access_token的逻辑完全一致。
  • API Gateway侧直接配置Cognito授权器,校验请求头中携带的AccessToken/IdToken即可,你可以基于Cognito用户池的用户组、自定义属性实现资源访问权限控制。

方案2:封装自定义/access_token端点兼容原有逻辑

如果需要完全对齐原有API的请求路径、参数格式,避免客户端侧任何改动,可以选择自行封装认证接口:

  • 在AWS API Gateway中新增一个公开访问的/access_token端点,后端集成Lambda函数。
  • Lambda函数接收客户端传入的用户名、密码参数,调用Cognito的AdminInitiateAuth接口完成认证,将Cognito返回的令牌按照原有接口的格式封装后返回给客户端。
  • 为Lambda对应的IAM角色添加cognito-idp:AdminInitiateAuth权限,且限制仅可操作你当前使用的Cognito用户池即可。

通用注意事项

  • 所有涉及用户名、密码、令牌传输的接口必须开启HTTPS,保证传输安全。
  • 可根据业务需要在Cognito中配置密码错误次数锁定、令牌有效期等安全策略,无需额外开发即可覆盖原有认证体系的安全能力。

内容的提问来源于stack exchange,提问作者Crerem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 21:54:01