Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

489
Visualizações
El flujo USER_PASSWORD_AUTH de autenticación de AWS Cognito no está habilitado para este cliente

Tengo una aplicación móvil con grupo de usuarios (nombre de usuario y contraseña). La aplicación funciona bien con aws-amplify sdk. Pero quería trasladar el código a Lambdas. Entonces, he escrito el siguiente Lambda usando Boto3.

Aquí está Lambda:

 import boto3 def lambda_handler(event, context): client = boto3.client('cognito-idp') response = client.initiate_auth( ClientId='xxxxxxxxxxxxxx', AuthFlow='USER_PASSWORD_AUTH', AuthParameters={ 'USERNAME': 'xxxxxx', 'PASSWORD': 'xxxxxx' } ) return response

Probé admin_initiate_auth también.

 import boto3 def lambda_handler(event, context): client = boto3.client('cognito-idp') response = client.initiate_auth( UserPoolId='xxxxxxxxx', ClientId='xxxxxxxxxxxxxx', AuthFlow='USER_PASSWORD_AUTH', AuthParameters={ 'USERNAME': 'xxxxxx', 'PASSWORD': 'xxxxxx' } ) return response

Aquí está el error que obtengo.

Se produjo un error (InvalidParameterException) al llamar a la operación InitiateAuth: USER_PASSWORD_AUTH flujo no habilitado para este cliente: InvalidParameterException Rastreo (última llamada más reciente):
Archivo "/var/task/lambda_function.py", línea 12, en lambda_handler 'PASSWORD': 'xxxxx' Archivo "/var/runtime/botocore/client.py", línea 317, en _api_call return self._make_api_call(operation_name, kwargs) Archivo "/var/runtime/botocore/client.py", línea 615, en _make_api_call raise error_class(parsed_response, operation_name) InvalidParameterException: Se produjo un error (InvalidParameterException) al llamar a la operación InitiateAuth: flujo USER_PASSWORD_AUTH no habilitado para este cliente

¿Alguna idea?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Lo imaginé. Tengo que ir al grupo de usuarios -> clientes de aplicaciones -> mostrar detalles -> Habilitar el flujo de nombre de usuario y contraseña (no SRP) para la autenticación basada en la aplicación (USER_PASSWORD_AUTH).

Eso lo arregló.

over 4 years ago · Santiago Trujillo Relatório

0

Lo imaginé. Tengo que ir al grupo de usuarios -> clientes de aplicaciones -> mostrar detalles -> Habilitar la autenticación de contraseña de nombre de usuario para las API de administración para la autenticación (ALLOW_ADMIN_USER_PASSWORD_AUTH).

over 4 years ago · Santiago Trujillo Relatório

0

Para mí encontré que mis credenciales necesitaban un hmac aquí está la clase en caso de que sea útil para alguien.

 import boto3 import boto3.session import hmac, base64, hashlib from botocore.client import ClientMeta class AwsAuth(object): ''' classdocs ''' def gettoken(self): if self.token: return self.token else: return False def connect(self): if not self.username: self.username = raw_input("Username: ") if not self.password: self.password = raw_input("Password: ") digest = self.gethmacdigest(self.username) response = self.client.initiate_auth( ClientId=self.clientid, AuthFlow='USER_PASSWORD_AUTH', AuthParameters={ 'USERNAME': self.username, 'PASSWORD': self.password, 'SECRET_HASH': digest }, ClientMetadata={ 'UserPoolId': self.userpoolid } ) self.token = response return response def gethmacdigest(self, username): message = username + self.clientid dig = hmac.new(self.clientsecret, msg=message.encode('UTF-8'), digestmod=hashlib.sha256).digest() return base64.b64encode(dig).decode() def __init__(self, path, url, fileout, filein, userpoolid, clientid, clientsecret, region, username = None, password = None): ''' Constructor ''' #boto3.set_stream_logger('botocore', level="DEBUG") self.path = path self.url = url self.fileout = fileout self.filein = filein self.userpoolid = userpoolid self.clientid = clientid self.clientsecret = clientsecret self.region = region self.token = "" boto3.setup_default_session(region_name=region) self.client = boto3.client('cognito-idp') if username is not None: self.username = username else: self.username = None if password is not None: self.password = password else: self.password = None
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda