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

关于Terraform配置AWS Cognito身份池Cognito类型认证提供商的咨询

配置Terraform AWS Cognito身份池的Cognito认证提供商

我完全懂你遇到的这个困惑——查文档时第三方登录(比如Google、Facebook)的示例一抓一大把,但要把Cognito用户池作为身份池的认证源,却找不到明确指引。其实核心是你找错了配置参数,咱们一步步来解决:

关键区别:Cognito用户池不用supported_login_providers

supported_login_providers是给OAuth/OIDC类的第三方身份提供商用的,而AWS自己的Cognito用户池作为认证源,需要用专门的cognito_identity_providers块来配置,这是很多人容易踩的坑。

完整配置示例

下面是从创建Cognito用户池、用户池客户端,到关联身份池的完整Terraform代码:

1. 创建Cognito用户池和用户池客户端

# 创建Cognito用户池
resource "aws_cognito_user_pool" "example" {
  name = "example-user-pool"

  # 可选:配置用户池基础设置,比如用户名属性、MFA等
  username_attributes = ["email"]
  auto_verified_attributes = ["email"]
}

# 创建Cognito用户池客户端(身份池需要这个客户端ID关联)
resource "aws_cognito_user_pool_client" "example" {
  name = "example-user-pool-client"
  user_pool_id = aws_cognito_user_pool.example.id

  # 允许身份池访问的必要配置
  generate_secret = false # 身份池客户端不需要密钥
  explicit_auth_flows = [
    "ALLOW_USER_SRP_AUTH",
    "ALLOW_REFRESH_TOKEN_AUTH"
  ]
}

2. 配置Cognito身份池并关联Cognito用户池

resource "aws_cognito_identity_pool" "example" {
  identity_pool_name = "example-identity-pool"
  allow_unauthenticated_identities = false # 根据需求调整是否允许未认证用户

  # 核心:配置Cognito用户池作为认证提供商
  cognito_identity_providers {
    # Provider名称格式:cognito-idp.<区域>.amazonaws.com/<用户池ID>
    provider_name = "cognito-idp.${var.aws_region}.amazonaws.com/${aws_cognito_user_pool.example.id}"
    client_id     = aws_cognito_user_pool_client.example.id
    server_side_token_check = true # 建议开启,验证令牌有效性
  }

  # 如果同时需要第三方登录,可保留supported_login_providers
  # supported_login_providers = {
  #   "graph.facebook.com" = "你的Facebook客户端ID"
  #   "accounts.google.com" = "你的Google客户端ID"
  # }
}

关键参数解释

  • provider_name:必须严格按照cognito-idp.<region>.amazonaws.com/<user_pool_id>格式填写,这个值和AWS控制台里显示的Cognito用户池提供商名称完全一致。
  • client_id:就是我们创建的Cognito用户池客户端ID,身份池通过这个ID关联到对应的用户池。
  • server_side_token_check:开启后AWS会在认证时验证令牌的签名和有效性,提升安全性,建议始终开启。

验证配置

部署完成后,登录AWS控制台进入Cognito身份池的“认证提供商”页面,就能看到已成功关联你的Cognito用户池,和手动在UI里配置的效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 22:07:37