Simply running keycloak is not sufficient for SSO.
An SSO implementation may take months of dev time (i.e. $50k, minimum, considering cost of dev hours spent on it, and opportunity cost of not having those devs putting those hours into features).
And after you have done that, it remains an expensive feature - it's a high-touch feature that will eat product support time like you wouldn't believe.
Outsourcing this is still the cheapest option, and it still costs more than the product itself in many cases.