## Is your feature request related to a problem?

Currently if you login with SAML and you don't have an account on the PostHog instance one of two things happen: a) either a new account is created **if the email matches the domain whitelist** or b) you get turned down at the door. Yet after some thought, the point of SAML is that you manage user provisioning in a separate centralized system, so we shouldn't have the extra domain check. 

## Describe the solution you'd like

If a user logins through SAML and their account doesn't exist, create it automatically, regardless of whether it matches the domain whitelist.


## Describe alternatives you've considered

Keeping as is.

## Additional context

There's a complicating factor which is that SAML login is instance-based yet user signup is organization-based, so there's the edge case of an instance having multiple orgs. Should the user then be signed up to all organizations?

#### *Thank you* for your feature request – we love each and every one!

posthog/api/signup.py
domain = user_email.split("@")[-1]
            
            domain_organization = Organization.objects.filter(domain_whitelist__contains=[domain]).first()
        if domain_organization:
            backend_processor = "domain_whitelist"
            user = User.objects.create_and_join(
                organization=domain_organization, email=user_email, password=None, first_name=user_name
            )
        else:
            organization_name = strategy.session_get("organization_name", None)
            email_opt_in = strategy.session_get("email_opt_in", None)
            if not organization_name or email_opt_in is None:
                return redirect(finish_social_signup)
            serializer = SignupSerializer(
                data={
                    "organization_name": organization_name,
                    "email_opt_in": email_opt_in,
                    "first_name": user_name,
                    "email": user_email,
                    "password": None,
                },
                context={"request": request},
            )
            serializer.is_valid(raise_exception=True)
            user = serializer.save()
    else:
        from_invite = True
        try:
            invite: Union[OrganizationInvite, TeamInviteSurrogate] = OrganizationInvite.objects.select_related(
                "organization",