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

AWS CDK中Cognito应用客户端ALLOW_ADMIN_USER_PASSWORD_AUTH未生效

问题分析与解决

你的问题出在两个核心点上:

  1. 无效的L1构造配置:你定义了CfnUserPoolClientProps但未将其用于创建客户端实例,这段代码完全没有生效,实际起作用的是self.user_pool.add_client()的配置逻辑。
  2. auth_flows参数配置错误:你注释掉了auth_flows参数,且即使启用,原代码中的user_password=True对应的是ALLOW_USER_PASSWORD_AUTH,并非你需要的ALLOW_ADMIN_USER_PASSWORD_AUTH。

正确配置方案

在add_client()方法中,通过auth_flows参数明确配置所有需要的认证流,每个选项与Cognito的认证流一一对应:

self.user_pool.add_client('cognito-app-client',
                          user_pool_client_name='cognito-app-client',
                          access_token_validity=Duration.minutes(60),
                          id_token_validity=Duration.minutes(60),
                          refresh_token_validity=Duration.days(1),
                          auth_flows=cognito.AuthFlow(
                              admin_user_password=True,  # 对应ALLOW_ADMIN_USER_PASSWORD_AUTH
                              custom=True,               # 对应ALLOW_CUSTOM_AUTH
                              refresh_token=True,        # 对应ALLOW_REFRESH_TOKEN_AUTH
                              user_srp=True              # 对应ALLOW_USER_SRP_AUTH
                          ),
                          o_auth=cognito.OAuthSettings(
                              flows=cognito.OAuthFlows(
                                  implicit_code_grant=True,
                              )
                          ),
                          prevent_user_existence_errors=True,
                          generate_secret=True,
                          enable_token_revocation=True)

关键对应关系说明

AuthFlow类的参数与Cognito认证流的映射:

  • admin_user_password=True → 启用ALLOW_ADMIN_USER_PASSWORD_AUTH
  • custom=True → 启用ALLOW_CUSTOM_AUTH
  • refresh_token=True → 启用ALLOW_REFRESH_TOKEN_AUTH
  • user_srp=True → 启用ALLOW_USER_SRP_AUTH

如果坚持使用L1的CfnUserPoolClient构造,需修正explicit_auth_flows的格式(每个流作为数组独立元素,而非逗号分隔的字符串),并创建实例:

cognito.CfnUserPoolClient(self, 'cognito-app-client',
                          user_pool_id=self.user_pool.user_pool_id,
                          explicit_auth_flows=[
                              "ALLOW_ADMIN_USER_PASSWORD_AUTH",
                              "ALLOW_CUSTOM_AUTH",
                              "ALLOW_REFRESH_TOKEN_AUTH",
                              "ALLOW_USER_SRP_AUTH"
                          ],
                          # 补充其他必要配置参数
                          )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 05:42:52