Ошибка 500 при аутентификации ALB + AWS Cognito - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь аутентифицировать Lambda через Aws ALB + Cognito. Когда я запускаю DNS-сервер, он перенаправляет меня на страницу входа, я могу зарегистрироваться и проверить пользователя. Кроме того, я мог видеть пользователя, добавленного к пользователям в пуле пользователей. После входа выдает 500 Internal Server Error. Действие по умолчанию для функции выполняется в фоновом режиме, что я видел в журналах.

Не уверен, почему он не перенаправляет / не выполняет лямбду после аутентификации пользователя. Не могли бы вы дать некоторое представление о том, чего бы мне не хватало в этой настройке.

Я настроил лямбду, ALB и Cognito в терраформе.

resource "aws_cognito_user_pool" "pool" {
  name                       = "alb-test-userpool"
  alias_attributes = ["email", "preferred_username"]
  verification_message_template {
  default_email_option = "CONFIRM_WITH_CODE"
  }
  email_verification_subject = "Device Verification Code"
  email_verification_message = "Please use the following code {####}"
  sms_verification_message   = "{####} Baz"
  auto_verified_attributes   = ["email"]

  password_policy {
      minimum_length    = 8
      require_lowercase = false
      require_numbers   = false
      require_symbols   = false
      require_uppercase = false
    }
  tags {
    "Name"   = "alb pool"
    }
 schema {
  name                = "email"
  attribute_data_type = "String"
  mutable             = false
  required            = true
}
}

resource "aws_cognito_user_pool_client" "client" {
  name = "alb-test-user-client"
  user_pool_id = "${aws_cognito_user_pool.pool.id}"
  generate_secret = true
  allowed_oauth_flows_user_pool_client = true
  supported_identity_providers = ["COGNITO"]
  callback_urls = ["https://internal-****-****.us-west-2.elb.amazonaws.com/oauth2/idpresponse"]
  allowed_oauth_flows  = ["code"]
  allowed_oauth_scopes = ["openid"]
  explicit_auth_flows = ["ADMIN_NO_SRP_AUTH"]
  allowed_oauth_flows_user_pool_client = true
}

resource "aws_cognito_user_pool_domain" "pool_domain" {
  domain          = "${var.domain}"
  user_pool_id    = "${aws_cognito_user_pool.pool.id}"
}

1 Ответ

0 голосов
/ 26 мая 2019

Балансировщик нагрузки не может связаться с конечной точкой токена IdP или конечной точкой информации о пользователе IdP. Убедитесь, что группы безопасности для вашего балансировщика нагрузки и сетевые ACL для вашего VPC разрешают исходящий доступ к этим конечным точкам. Убедитесь, что ваш VPC имеет доступ к Интернету. Если у вас есть внутренний балансировщик нагрузки, используйте шлюз NAT для включения доступа в Интернет.

Документы AWS о 500 выпусках

...