## 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
"""This reimplements parts of OrganizationInvite that enable compatibility with the old Team.signup_token."""
    def __init__(self, signup_token: str):
        team = Team.objects.select_related("organization").get(signup_token=signup_token)
        self.organization = team.organization
    def validate(*args, **kwargs) -> bool:
        return True
    def use(self, user: Any, *args, **kwargs) -> None:
        user.join(organization=self.organization)
class CompanyNameForm(forms.Form):
    companyName = forms.CharField(max_length=64)
    emailOptIn = forms.BooleanField(required=False)
def finish_social_signup(request):
    """
    TODO: DEPRECATED in favor of posthog.api.signup.SocialSignupSerializer
    """
    if not get_can_create_org():
        return redirect("/login?error=no_new_organizations")
    if request.method == "POST":
        form = CompanyNameForm(request.POST)
        if form.is_valid():
            request.session["organization_name"] = form.cleaned_data["companyName"]
            request.session["email_opt_in"] = bool(form.cleaned_data["emailOptIn"])
            return redirect(reverse("social:complete", args=[request.session["backend"]]))
    else:
        form = CompanyNameForm()
    return render(request, "signup_to_organization_company.html", {"user_name": request.session["user_name"]})
@partial
def social_create_user(strategy: DjangoStrategy, details, backend, request, user=None, *args, **kwargs):