OAuth2-Authentifizierung: Sichere Anmeldung mit Authentik implementieren

Implementieren Sie die OAuth2-Authentifizierung mit Authentik als Ihrem Identitätsanbieter. Vollständiger Leitfaden zu OIDC-Abläufen, Token-Verwaltung, Sitzungsverwaltung und bewährten Sicherheitspraktiken.

E

ECOSIRE Research and Development Team

ECOSIRE-Team

5. März 20264 Min. Lesezeit855 Wörter

OAuth2-Authentifizierung: Sichere Anmeldung mit Authentik implementieren

Die Authentifizierung ist die sicherheitskritischste Komponente jeder Webanwendung, doch 61 % der Datenschutzverletzungen betreffen kompromittierte Anmeldeinformationen. Durch die Implementierung von OAuth2 mit einem dedizierten Identitätsanbieter wie Authentik werden Authentifizierungsprobleme von der Anwendungslogik getrennt und ermöglichen Single Sign-On, MFA und zentralisierte Benutzerverwaltung.

Wichtige Erkenntnisse

– Der OAuth2-Autorisierungscodefluss mit PKCE ist das empfohlene Muster für Webanwendungen

  • Authentik bietet einen selbst gehosteten Identitätsanbieter mit OIDC-, SAML- und LDAP-Unterstützung
  • HttpOnly-Cookies für die Token-Speicherung verhindern XSS-basierten Token-Diebstahl – Einmalige Austauschcodes mit kurzer TTL verhindern die Offenlegung von Token in URLs

OAuth2-Flow-Übersicht

Autorisierungscodefluss mit PKCE

  1. Benutzer klickt auf „Anmelden“: Die Anwendung wird zum Authentik-Autorisierungsendpunkt weitergeleitet
  2. Benutzerauthentifizierung: Anmeldeinformationen (und MFA) werden auf der Authentik-Anmeldeseite eingegeben
  3. Ausgegebener Autorisierungscode: Authentik leitet mit einem kurzlebigen Code zurück
  4. Token-Austausch: Backend tauscht Code für Zugriffs- und Aktualisierungstoken aus
  5. Sitzung eingerichtet: In HttpOnly-Cookies gespeicherte Token

Dieser Ablauf stellt sicher, dass Anmeldeinformationen niemals mit Ihrer Anwendung in Berührung kommen, Token von Server zu Server ausgetauscht werden und der Autorisierungscode mit kurzer TTL nur einmal verwendet werden kann.


Authentik-Setup

Anbieterkonfiguration

Erstellen Sie in Authentik einen OAuth2/OIDC-Anbieter mit vertraulichem Clienttyp, eindeutiger Client-ID, starkem Clientgeheimnis, genauen Umleitungs-URIs, OpenID-/Profil-/E-Mail-Bereichen und geeigneten Token-Lebensdauern (Zugriff: 5–15 Minuten, Aktualisierung: 7–30 Tage).

Binden Sie den Anbieter an eine Authentik-Anwendung, um den Zugriff durch Richtlinien basierend auf Gruppenmitgliedschaft, Attributen oder IP-Einschränkungen zu steuern.

Multi-Faktor-Authentifizierung

Configure MFA options: TOTP (Google Authenticator, Authy), WebAuthn (hardware security keys, biometrics), and SMS/Email codes as fallback.


Backend-Implementierung

Autorisierungsumleitung

Leiten Sie Benutzer mit „client_id“, „response_type=code“, „redirect_uri“, „scopes“, einem zufälligen Statusparameter (CSRF-Schutz) und „PKCE code_challenge“ zu Authentik um.

Token-Austausch

Tauschen Sie beim Rückruf den Autorisierungscode von Server zu Server mit grant_type=authorization_code, dem empfangenen Code, Redirect_uri, Client-Anmeldeinformationen und PKCE-Code_verifier aus. Die Antwort enthält access_token, restart_token, id_token und Ablaufinformationen.

Sicherer Token-Speicher

Speichern Sie Token niemals in localStorage oder sessionStorage – sie sind für jedes JavaScript, einschließlich XSS-Nutzlasten, zugänglich. Verwenden Sie HttpOnly-Cookies mit dem Secure-Flag, SameSite=Lax und einem entsprechenden Ablaufdatum.


Frontend-Integration

Anmeldeablauf

Der Benutzer klickt auf „Anmelden“, das Frontend leitet zur Autorisierungs-URL weiter, der Benutzer authentifiziert sich bei Authentik (Ihre App sieht niemals Anmeldeinformationen), Authentik leitet mit Code zurück, das Backend tauscht Code aus und setzt HttpOnly-Cookies, das Frontend ruft den Sitzungsendpunkt für aktuelle Benutzerdaten auf.

Sitzungsverwaltung

Erstellen Sie einen useAuth()-Hook, der beim Mounten GET /auth/session aufruft. Benutzerdaten zurückgeben, wenn authentifiziert, andernfalls zur Anmeldung weiterleiten. Rufen Sie beim Abmelden POST /auth/logout auf, um Cookies zu löschen.

Geschützte Routen

Verwenden Sie Middleware, um nicht authentifizierte Benutzer vor dem Rendern der Seite umzuleiten. In Next.js übernimmt die Datei „proxy.ts“ dies, indem sie auf geschützten Routen nach Authentifizierungscookies sucht.


Best Practices für die Sicherheit

Token-Sicherheit

  • Ausschließlich HttpOnly-Cookies – setzen Sie Token niemals JavaScript aus
  • Kurze Lebensdauer des Zugriffstokens (5–15 Minuten)
  • Token-Aktualisierung mit Rotation (neues Aktualisierungstoken bei jeder Verwendung) – Client-Geheimnis wird nur im Backend gespeichert, niemals im Frontend-Code

Umleitungssicherheit

– Validieren Sie alle Weiterleitungs-URLs anhand einer Zulassungsliste

  • Weiterleitungen ablehnen, die mit // beginnen (protokollrelative URLs)
  • Fügen Sie niemals Token in URL-Parameter ein
  • Verwenden Sie einmalige Austauschcodes mit 60-Sekunden-TTL

Sitzungssicherheit

  • Sitzungskennungen nach der Authentifizierung neu generieren
  • Leerlauf-Timeout (30 Minuten) und absolutes Timeout (8 Stunden) implementieren
  • Protokollieren Sie alle Authentifizierungsereignisse für Audit-Trails
  • Begrenzte Anmeldeversuche, um Brute-Force-Angriffe zu verhindern

Erweiterte Authentik-Funktionen

Benutzerregistrierung

Konfigurieren Sie die Self-Service-Benutzerregistrierung mit anpassbaren Registrierungsabläufen. Definieren Sie erforderliche Felder, E-Mail-Verifizierungsschritte und Genehmigungsworkflows für neue Konten.

Branding-Anpassung

Wenden Sie benutzerdefiniertes CSS, Logos und Designs auf die Authentik-Anmeldeseite an, um ein nahtloses Markenerlebnis zu erzielen. Benutzerdefiniertes Branding muss über CSS-Volume-Mounts oder das Django ORM-Feld branding_custom_css angewendet werden.

Benutzerföderation

Verbinden Sie Authentik über LDAP/Active Directory-Synchronisierung mit externen Benutzerverzeichnissen, sodass sich bestehende Unternehmensbenutzer ohne Kontoerneuerung authentifizieren können.


Häufig gestellte Fragen

F: Warum Authentik statt Auth0 oder Keycloak?

Authentik ist selbstgehostet (vollständige Datenkontrolle), Open Source und verfügt über eine moderne Benutzeroberfläche. Auth0 ist SaaS mit steigenden Preisen pro Benutzer. Keycloak wird selbst gehostet, hat aber eine steilere Lernkurve und eine ältere Benutzeroberfläche. Authentik bringt Funktionen, Benutzerfreundlichkeit und Kosten in Einklang.

F: Kann Authentik mit Tausenden von Benutzern umgehen?

Ja. Authentik basiert auf Django und PostgreSQL und bedient große Benutzergruppen. Stellen Sie bei mehr als 100.000 Benutzern ausreichende Datenbankressourcen sicher und ziehen Sie eine horizontale Skalierung in Betracht.

F: Wie implementieren wir SSO über mehrere Anwendungen hinweg?

Konfigurieren Sie jede Anwendung als separate Authentik-Anwendung mit ihrem eigenen Anbieter. Benutzer authentifizieren sich einmal und werden über die Authentik-Sitzung automatisch bei allen verbundenen Anwendungen angemeldet.

F: Was ist mit Social Login?

Authentik unterstützt sofort einsatzbereite Social-Login-Quellen – Google, GitHub, Microsoft und andere OAuth2-Anbieter. Benutzer können soziale Konten mit ihrer Authentik-Identität verknüpfen, um sich bequem anzumelden.


Was kommt als nächstes?

OAuth2 mit einem dedizierten Identitätsanbieter ist die wirkungsvollste Sicherheitsverbesserung für die meisten Webanwendungen. Es macht die Handhabung von Anmeldeinformationen überflüssig, ermöglicht MFA und bietet eine zentralisierte Audit-Protokollierung.

Kontaktieren Sie ECOSIRE, um Hilfe bei der Authentifizierungsimplementierung zu erhalten, oder erkunden Sie unsere Odoo-Implementierungsdienste für eine sichere ERP-Bereitstellung.


Herausgegeben von ECOSIRE – unterstützt Unternehmen bei der Skalierung mit Unternehmenssoftwarelösungen.

E

Geschrieben von

ECOSIRE Research and Development Team

Entwicklung von Enterprise-Digitalprodukten bei ECOSIRE. Einblicke in Odoo-Integrationen, E-Commerce-Automatisierung und KI-gestützte Geschäftslösungen.

Chatten Sie auf WhatsApp