## 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
password_validation.validate_password(value)
        return value
    def to_representation(self, instance):
        serializer = UserBasicSerializer(instance=instance)
        return serializer.data
    def validate(self, data: Dict[str, Any]) -> Dict[str, Any]:
        if "request" not in self.context or not self.context["request"].user.is_authenticated:
            
            for attr in ["first_name", "password"]:
                if not data.get(attr):
                    raise serializers.ValidationError({attr: "This field is required."}, code="required")
        return data
    def create(self, validated_data, **kwargs):
        if "view" not in self.context or not self.context["view"].kwargs.get("invite_id"):
            raise serializers.ValidationError("Please provide an invite ID to continue.")
        user: Optional[User] = None
        is_new_user: bool = False
        if self.context["request"].user.is_authenticated:
            user = cast(User, self.context["request"].user)
        invite_id = self.context["view"].kwargs.get("invite_id")
        try:
            invite: OrganizationInvite = OrganizationInvite.objects.select_related("organization").get(id=invite_id)
        except (OrganizationInvite.DoesNotExist):
            raise serializers.ValidationError("The provided invite ID is not valid.")
        with transaction.atomic():
            if not user:
                is_new_user = True
                try:
                    user = User.objects.create_user(