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.

回答済み 1年前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ