Hat das schon mal jemand gemacht?
Ja, das ist ein großteil von dem, mit dem ich meine Brötchen verdiene.
Du willst OAuth 2.0 / OIDC nicht selber bauen. Unter gar keinen Umständen. Da kann man so viel falsch machen was hinterher echt ein Security-Problem ist und Dich bei Heise Security auf die Frontpage bringen kann, das Risiko ist da einfach zu hoch.
Einkaufen / Mieten kannst Du das bei Auth0 oder auch Okta (da gehört Auth0 inzwischen auch dazu), und bei allen großen Cloud-Anbietern (Azure AD, AWS Identity, Google Identity).
Nachteil: Wenn überhaupt kannst Du nur ganz wenig am UI anpassen (ggf. Namen und Logos). Bei Auth0 / Okta ist etwas mehr möglich, aber auch nur sehr begrenzt.
Vorteil: Du kannst nicht viel anpassen und damit ggf. kaputt machen
Wenn Du es selber hosten willst würde ich zu fertigen Produkten raten. Keycloak wurde schon genannt und ist unserer Meinung nach eine sehr gute Idee.
Du kannst das UI (nicht die Funktionalität) durch Templates nahezu beliebig anpassen, und es bietet für alle Management-Funktion auch eine eigene REST-
Api um z.B. User zu verwalten und Features zu konfigurieren. Hier muss man halt regelmäßig das System aktualisieren, aber der Aufwand hier hält sich in Grenzen.
Nur wenn das aufgrund irgendwelcher zwingend(!) benötigter Spezialfunktionen nicht möglich ist, würde ich da selber Hand anlegen. IdentityServer wurde auch schon genannt, der 4er ist allerdings abgekündigt und bekommt nur noch bis Ende 2022 Bugfixes. Der 5er ist dann kostenpflichtig und das ist auch nicht wirklich billig. Openiddict ist da auch eine Bibliothek die man nehmen kann, aber die können eben nur das reine OAuth 2.0 / OIDC Protokoll, alles andere drumrum (user store, Login-UI, Absicherung des UIs durch CSRF-Tokens etc., Multifaktor-Support, User-Registrierung, Password-Reset etc.pp.) muss man alles manuell dazu bauen. So Identity-Provider Projekte sind in aller Regel mehrere Wochen lang, und erfordern dazu dann regelmäßige Wartung (Packages updaten etc.), damit man Bugfixes in Bibliotheken auch übernimmt.
Und diese Empfehlungen oben geben wir auch unseren Kunden, Obwohl wir mit selber machen am meisten verdienen würden und mit Cloud-Lösung shoppen am wenigsten. Aber am Ende gehts hier um Sicherheit, und die Kernkompetenz der Kunden liegt in aller Regel nicht im IdP-Umfeld sondern in anderen Business-Sachen