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개 답변
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.

답변함 일 년 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인

관련 콘텐츠