Federated login fails after first login

0

I have added federated authentication for an Azure AD to my React application. The first time I tried logging in, it presented me with an MS login screen and I logged in successfully. Every subsequent attempt doesn't pop the MS login screen, it just fails with an error "Invalid user attributes: email. The attribute is required." If I try in a different browser, it works the first time and then fails. Also, I was expecting an external user to be created within my userpool, but it wasn't.

My thinking is that it caches the login details and uses them in subsequent logins, but doesn't actually cache the email address.

The client-side code I'm using is this:

Amplify.configure(
  {
    Auth: {
      region: "<my region>",
      userPoolId: "<my userpool id",
      userPoolWebClientId: "<my app ID>",
      oauth: {
        domain: "<my domain>",
        scope: ["email", "openid", "aws.cognito.signin.user.admin", "profile"],
        redirectSignIn: "http://localhost:3000/SearchScreen",
        redirectSignOut: "http://localhost:3000",
        responseType: "code"
      }
    }}
)

and then my button code:

 <Button
                  block
                  variant="success"
                  onClick={() =>
                    Auth.federatedSignIn({provider: props.federatedIdName})
                  }
                >
                  Federated Sign In
                </Button>

Should I be providing additional details into federatedSignIn?

The only potential solution I've found is this: https://stackoverflow.com/questions/50365699/saml-attribute-mapping-for-aws-cognito-signup-or-signin-works-but-not-both

One proposed solution there is to disable and delete the user from the pool, but as I mentioned, the user isn't created.

1 Answer
0

I solved this my following this video:

https://youtu.be/QHoOChLVv_k?t=973

The attribute mappings for email are actually ../claims/name, not ../claims/email. It returns the userprinciple name, which is also the user's email.

answered a year ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions