Laden...

Frage: Erfahrung OAuth mit Keycloak / Azure?

Erstellt von Campy vor 2 Jahren Letzter Beitrag vor 2 Jahren 379 Views
C
Campy Themenstarter:in
439 Beiträge seit 2008
vor 2 Jahren
Frage: Erfahrung OAuth mit Keycloak / Azure?

Hallo zusammen,

wir haben für eine Software von uns eine zentrale WebApi die aus einer WPF Anwendung, einem Outlook AddIn (Angular) und von MobileApps aus aufgerufen wird.
Wir wollen die Authentifizierung in Zukunft ohne dem Speichern von Kennwörtern in ConfigFiles schaffen, mit MFA / 2FA absichern und Integrationen für Teams / PowerBI etc. anbieten.

Der Standard dafür ist ja OAuth2 / OpenID Connect, korrigiert mich falls ich falsche liegen sollte.

Da wir noch mehrere Anwendungen haben, und auch Kunden mehrere der Anwendungen nutzen (und dafür verschiedene Accounts haben),
wollen wir dies vereinheitlichen und eine eigene Benutzer-Registry aufbauen (bin mir nicht sicher, ob Registry der richtige Ausdruck ist).

Bis jetzt habe ich viel über zwei Produkte gelesen:

Wobei ich nach Möglichkeit eher zu Azure tendiere als dies selber aufzusetzen.
Gibt es Erfahrungen von jemanden von Euch zu den oder zu einem Produkt?

Ich habe gelesen, dass das Forum auch Azure Identities verwendet, jedoch weiß ich nicht ob dies die Benutzerverwaltung beinhaltet.

Super wäre natürlich, wenn man den LoginDialog unserem CI anpassen könnte und auch externe Provider aktivieren kann (geht bei KeyCloak).

Vielen Dank im Voraus für die Mühe!

A programmer is just a tool, which converts coffeine into code! 🙂

16.807 Beiträge seit 2008
vor 2 Jahren

Ich hab mit Keycloak immer wieder in hybriden Szenarien zutun; meistens in Szenarien, in denen wir aufgrund der Kunden-Sicherheitsrichtlinien in einem geschlossenen System agieren (zB. Produktionsanlage) bzw. keine direkte Aussenverbindung haben und so zB. kein Azure AD oder vergleichbare Produkte verwenden können und eine lokale AuthN/AuthZ brauchen.

Davon abgesehen, dass ich es als die bessere Lösung halte Auth den Profis zu überlassen (also eben Azure AD, Auth0 etc..), wenn dies die Gegegebenheiten möglich machen, hasse ich Keycloak wirklich.
Ich empfinde das Ding als so instabil und schwer zu bedienen, dass ich es am liebsten in all meinen Szenarien ersetzen würde, wenn ich die Macht dazu hätte.
Leider ist zumindest aktuell noch Red Hat in vielen Firmen vertreten (nimmt zumindest in meinen Gefilden auch langsam ab) und daher Keycloak durchaus präsent; aber das ändert sich.

Meine Empfehlung:
Gerade wenn Du ein Online Tool hast: nimm einen externen Provider wie zB. Auth0!
Wenn Du Dich im Microsoft Ökosystem befindest: nimm wirklich Azure AD über Microsoft Identity Platform.

Ich habe gelesen, dass das Forum auch Azure Identities verwendet, jedoch weiß ich nicht ob dies die Benutzerverwaltung beinhaltet. Azure Managed Identities (was wir nutzen) ist primär mal der Azure Mechanismus um Services untereinander zu authentifizieren (Machine to Machine). Das hat erst mal nichts mit den Benutzern zutun.
In unserem Fall ist es die Authentifizierung der Webapplikation zur Datenbank und zum Credential Store (Azure KeyVault) sowie zB. zum Azure Storage.
So haben wir keine Credentials, die wir irgendwie leaken könnten - sondern der Zugriff ist nur über diese Azure Managed Identities möglich, die man nicht kompromittieren kann.
Das ist einfach eine größere Sicherheit als zB. ein Username und Password für eine WebApp.

Die Benutzerverwaltung machen wir mit ASP.NET Core Identity, da wir niemanden ein konkretes Azure/Microsoft Konto voraussetzen wollen.
Wir haben aber bereits den Mechanismus von OpenID implementiert, dass Du Dein Microsoft Konto (also das ehemalige Live Konto, kein Business Konto) oder Twitter, GitHub, Google... für die Anmeldung verwenden kannst (aber aktuell nicht aktiviert).

Das heisst:

  • Jeder kann sich bei uns mit Username / Passwort registrieren
  • 2FA ist möglich (durch ASP.NET Core Identity, kann jeder in seinem Profil aktivieren)
  • Wir können zusätzlich via OpenID externe Benutzer ohne Passwort registrieren lassen

Super wäre natürlich, wenn man den LoginDialog unserem CI anpassen könnte und auch externe Provider aktivieren kann (geht bei KeyCloak).

Das geht auch bei Azure AD, Auth0.. und nennt sich einfach Branding.
Hinzufügen von Branding zur Anmeldeseite Ihrer Organisation – Azure AD

C
Campy Themenstarter:in
439 Beiträge seit 2008
vor 2 Jahren

Hallo Abt,

das mit Azure und Auth0 war auch mein Eindruck nach 2 Tagen Research.
Darf ich noch kurz Fragen, welches Azure Produkt ich verwenden soll damit ich auch mal durch die Preisliste zum Vergleich mit Auth0 stöbern kann?

Vielen Dank im Voraus!

A programmer is just a tool, which converts coffeine into code! 🙂

16.807 Beiträge seit 2008
vor 2 Jahren

Wenn Du externe Identities verwalten willst, dann gibts nur Azure AD External Identities (hieß früher Azure B2C).

Aber wenn Du AD SSO willst (also wenn Du zB mich mit meinem AD Konto einlädst), dann brauchst Du kein extra Pricing.
Dann läuft das als Guest Invite in Dein AD und Du hast keine direkten Benutzerkosten (weil mein Konto ja schon von meinem Tenant bezahlt ist).

Du kannst aber Deine Anwendung auch einem externen Tenant als Gesamtes zugänglich machen.
Da kann dann der Tenant Admin die Anwendung freigeben und jeder innerhalb des Tenants kann dann die Anwendung nutzen.
Auch hier keine Extrakosten. Deine Anwendung muss hier nur in einem Haupt-Tenant registriert sein und als Multi Tenant App konfiguriert sein.

C
Campy Themenstarter:in
439 Beiträge seit 2008
vor 2 Jahren

Ok, dann glaube ich verstehe ich es richtig.

Ich kaufe Azure AD External Identities - 50000 MAU sind sogar umsonst und baue damit unser Authentifizierungssystem auf.
Hier kann ich dann auch externe Provider hinzufügen und das Branding anpassen.

Mit den .NET Klassen kann ich dann über OIDC die Anmeldung durchführen.
Anwendungsspezifische Daten und Rechte bleiben dann in unserer jeweilige Anwendung.

Vielen Dank Abt!

A programmer is just a tool, which converts coffeine into code! 🙂