AWS Cognito IntitiateAuth: Missing required parameter UserName

Arkon picture Arkon · Aug 1, 2016 · Viewed 7.2k times · Source

When initializing an authentication to AWS Cognito, the API is rejecting my request:

InvalidParameterException: Missing required parameter UserName
status code: 400,

Here is the content of the request (yes, I tried putting it everywhere, no success).

params := &cognitoidentityprovider.InitiateAuthInput{
    AuthFlow: aws.String("USER_SRP_AUTH"),              // Required
    ClientId: aws.String("xxxxxxxxxxxxxxxx"), // Required
    AuthParameters: map[string]*string{
        "username":     aws.String("myUser"), // Required
        "UserName":     aws.String("myUser"), // Required
    },
    ClientMetadata: map[string]*string{
        "username":     aws.String("myUser"), // Required
        "UserName":     aws.String("myUser"), // Required
    },
}

Any idea about what would be the problem please? Considering to the doc (https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-dg-pdf.pdf), username should be in AuthParameters along with srpA. Would it be possible that the problem comes from srpA? If so, what is this? It looks like that it is the password.

Answer

Ionut Trestian picture Ionut Trestian · Aug 1, 2016

SRP_A is a large integer as defined by the Secure Remote Password Protocol. Are you trying to do SRP or just authenticate with username and password. For username/password authentication you should use the AdminInitiateAuth operation.