Aptli

Authentifizierung

Authentifizierung überprüft, wer Sie sind, bevor Zugriff auf Aptli gewährt wird. Dieser Abschnitt behandelt Anmeldemethoden, Kontosicherheit, E-Mail-Validierung und OAuth-Anbieter-Einrichtung.

Aktive Anmeldemethoden

Anmeldeseite zeigt verfügbare Authentifizierungsmethoden einschließlich OAuth-Anbietern

Konfigurieren Sie, welche Authentifizierungsmethoden verfügbar sind:

Benutzername/Passwort (Standard):

  • E-Mail + Passwort-Kombination
  • Passwortanforderungen: mindestens 8 Zeichen, Komplexitätsregeln
  • Automatische Abmeldung nach Inaktivität (konfigurierbar, Standard 1 Tag)

OAuth-Anbieter:

  • GitHub OAuth
  • Google OAuth
  • Zusätzliche Anbieter konfigurierbar (Support kontaktieren)

Konfiguration: Navigieren Sie zu App-Einstellungen → Authentifizierung → Aktive Anmeldemethoden

  • Mindestens eine Methode muss aktiviert sein
  • Mehrere Methoden können gleichzeitig aktiv sein
  • Benutzer wählen bevorzugte Methode am Anmeldebildschirm

Zwei-Faktor-Authentifizierung (2FA)

Benutzerprofil zeigt 2FA-Einstellungen und Sicherheitskonfiguration

2FA aktivieren:

  1. Navigieren Sie zum Benutzerprofil
  2. Klicken Sie auf "Zwei-Faktor-Authentifizierung aktivieren"
  3. Scannen Sie den QR-Code mit der Authenticator-App (Google Authenticator, Authy, etc.)
  4. Geben Sie den 6-stelligen Code zur Bestätigung ein
  5. Speichern Sie die Wiederherstellungscodes (falls Telefon verloren)

Anmeldung mit 2FA:

  1. Geben Sie E-Mail und Passwort ein (oder OAuth)
  2. System fordert 6-stelligen Code an
  3. Öffnen Sie die Authenticator-App
  4. Geben Sie den aktuellen Code ein (erneuert sich alle 30 Sekunden)
  5. Zugriff gewährt

Wiederherstellungscodes:

  • 10 einmal verwendbare Codes generiert bei 2FA-Einrichtung
  • Sicher speichern (Passwort-Manager, gedruckte Kopie)
  • Verwenden, wenn Authenticator nicht verfügbar
  • Jeder Code einmal gültig

2FA deaktivieren:

  • Navigieren Sie zum Benutzerprofil
  • Klicken Sie auf "Zwei-Faktor-Authentifizierung deaktivieren"
  • Geben Sie den aktuellen 6-stelligen Code ein (oder Wiederherstellungscode)
  • Deaktivierung bestätigen

Benutzer ohne 2FA erkennen

Admin-Ansicht:

  1. Navigieren Sie zu Admin → Benutzer
  2. Spalte hinzufügen: "2FA Aktiviert" (boolean)
  3. Filtern: "2FA Aktiviert = false"
  4. Liste für Nachverfolgung exportieren

Durchsetzung: App-Einstellungen → Authentifizierung → 2FA erforderlich

  • Aktivieren, um alle Benutzer zur Einrichtung von 2FA zu zwingen
  • Kulanzzeit konfigurierbar (z.B. 30 Tage)
  • Nach Kulanzzeit können Benutzer sich nicht ohne 2FA anmelden

Benachrichtigungskampagne:

  • Massen-E-Mail an Benutzer ohne 2FA
  • Einrichtungsanweisungen einschließen
  • Sicherheitsvorteile betonen
  • Frist für Compliance setzen

OAuth-Anbieter-Einrichtung

GitHub OAuth

GitHub OAuth-App erstellen:

  1. Gehen Sie zu GitHub-Einstellungen → Entwicklereinstellungen → OAuth-Apps
  2. Klicken Sie auf "Neue OAuth-App"
  3. Anwendungsname: "Aptli"
  4. Homepage-URL: https://your-domain.com
  5. Autorisierung-Callback-URL: https://your-domain.com/api/auth/github/callback
  6. Klicken Sie auf "Anwendung registrieren"
  7. Client-ID und Client-Secret kopieren

Aptli konfigurieren:

  1. Zu .env hinzufügen:
    NUXT_OAUTH_GITHUB_CLIENT_ID=your_client_id
    NUXT_OAUTH_GITHUB_CLIENT_SECRET=your_client_secret
    
  2. Server neu starten
  3. Test: Anmeldeseite zeigt "Mit GitHub anmelden"-Schaltfläche

Google OAuth

Google OAuth-App erstellen:

  1. Gehen Sie zu Google Cloud Console → APIs & Dienste → Anmeldedaten
  2. Klicken Sie auf "Anmeldedaten erstellen" → OAuth-Client-ID
  3. Anwendungstyp: Webanwendung
  4. Name: "Aptli"
  5. Autorisierte Weiterleitungs-URIs: https://your-domain.com/api/auth/google/callback
  6. Klicken Sie auf "Erstellen"
  7. Client-ID und Client-Secret kopieren

Aptli konfigurieren:

  1. Zu .env hinzufügen:
    NUXT_OAUTH_GOOGLE_CLIENT_ID=your_client_id.apps.googleusercontent.com
    NUXT_OAUTH_GOOGLE_CLIENT_SECRET=your_client_secret
    
  2. Server neu starten
  3. Test: Anmeldeseite zeigt "Mit Google anmelden"-Schaltfläche

OAuth zu Benutzerkonto hinzufügen

Für bestehende Benutzername/Passwort-Benutzer:

  1. Mit E-Mail und Passwort anmelden
  2. Zum Benutzerprofil navigieren
  3. Auf "OAuth-Konto verknüpfen" klicken
  4. Anbieter wählen (GitHub oder Google)
  5. Bei Anbieter autorisieren
  6. OAuth-Konto verknüpft (kann sich jetzt mit beiden Methoden anmelden)

Für neue Benutzer:

  • Erste Anmeldung mit OAuth erstellt Konto automatisch
  • E-Mail vom OAuth-Anbieter muss in erlaubten Domains sein
  • Konto erstellt mit OAuth-only-Anmeldung (kein Passwort gesetzt)
  • Kann Passwort später vom Profil hinzufügen

E-Mail-Validierung

Neuer Benutzer-Ablauf:

  1. Benutzer meldet sich an (oder Admin erstellt Konto)
  2. Validierungs-E-Mail an Benutzer-E-Mail-Adresse gesendet
  3. E-Mail enthält 10-Minuten-Ablauf-Token
  4. Benutzer klickt Link in E-Mail
  5. Konto validiert (kann sich jetzt anmelden)

Validierung erforderlich:

  • Kann sich nicht anmelden (jede Methode), bis E-Mail validiert
  • Einschließlich OAuth-Benutzer (E-Mail muss validiert werden, auch wenn Anbieter verifiziert)

Validierungs-E-Mail erneut senden: Admin kann vom Benutzerprofil erneut senden:

  1. Navigieren Sie zu Admin → Benutzer
  2. Benutzerprofil öffnen
  3. Auf "Validierungs-E-Mail erneut senden" klicken
  4. Neuer 10-Minuten-Token gesendet

Manuelle Validierung: Admin mit usersUpdate kann manuell validieren:

  1. Zum Benutzerprofil navigieren
  2. "E-Mail validiert"-Datum auf aktuelles Datum setzen
  3. Speichern (Benutzer kann sich jetzt anmelden)

Anmeldungssicherheit

Max. Anmeldeversuche:

  • Standard: 5 fehlgeschlagene Versuche
  • Konfigurierbar in App-Einstellungen
  • Nach max. Versuchen: Konto hard locked
  • Entsperren erfordert Admin mit usersUpdate-Berechtigung

Hard Lock:

  • Konto kann sich nicht anmelden (jede Methode)
  • Sichtbar im Benutzerprofil: "Hard Lock"-Badge
  • Entsperren: Admin klickt "Konto entsperren"-Aktion
  • Zurücksetzen: Fehlgeschlagene Versuche-Zähler auf 0 zurückgesetzt

Sitzungsablauf:

  • Automatische Abmeldung: Inaktivitäts-Timeout (Standard 1 Tag)
    • Lesen oder Schreiben von Daten setzt Countdown zurück
    • Konfigurierbar pro App-Einstellungen
  • CSRF-Token-Ablauf: Server-Sitzungs-Timeout (Standard 1 Woche)
    • Erzwingt erneute Anmeldung unabhängig von Aktivität
    • Sicherheitsmaßnahme für lang laufende Sitzungen
  • Sitzungsablauf: Absoluter max. Sitzungsdauer (Standard 1 Woche)
    • Verhindert unbegrenzte Sitzungen

Einzelne aktive Sitzung:

  • Aptli erlaubt jeweils nur eine aktive Sitzung pro Konto
  • Eine Anmeldung auf einem neuen Gerät meldet Sie von anderen Geräten ab
  • Sie sehen einen Hinweis und werden auf dem abgemeldeten Gerät zur erneuten Anmeldung aufgefordert
  • Zwei Tabs oder Fenster im selben Browserprofil teilen sich eine Sitzung — sie melden sich nicht gegenseitig ab

Zwangsabmeldung

Admin-Aktion:

  1. Navigieren Sie zu Admin → Benutzer
  2. Benutzerprofil öffnen
  3. Aktionen → Zwangsabmeldung
  4. Benutzer-Sitzung sofort beendet
  5. Benutzer muss sich erneut anmelden

Anwendungsfälle:

  • Sicherheitsvorfall (kompromittiertes Konto)
  • Benutzer ließ Sitzung auf öffentlichem Computer offen
  • Administrative Sperre (ausstehende Untersuchung)

Fehlerbehebung bei Anmeldung

Benutzer kann Konto nicht finden

Überprüfen:

  1. Navigieren Sie zu Admin → Benutzer
  2. Nach E-Mail filtern (Groß-/Kleinschreibung beachten)
  3. Wenn nicht gefunden: Konto wurde möglicherweise gelöscht
  4. Klicken Sie auf "Gelöschte anzeigen"-Schaltfläche (erfordert viewDeleted-Berechtigung)
  5. Wenn in gelöschten gefunden: Wiederherstellen (erfordert usersCreate-Berechtigung)

Hard Lock

Überprüfen:

  1. Zum Benutzerprofil navigieren
  2. Nach "Hard Lock"-Badge suchen
  3. Wenn vorhanden: Auf "Konto entsperren" klicken (erfordert usersUpdate-Berechtigung)
  4. Benutzer kann sich jetzt anmelden

E-Mail nicht validiert

Überprüfen:

  1. Zum Benutzerprofil navigieren
  2. "E-Mail validiert"-Feld sollte Datum haben
  3. Wenn leer: Validierungs-E-Mail erneut senden ODER Datum manuell setzen
  4. Benutzer kann sich ohne Validierung nicht über irgendeine Methode anmelden

Schlechte Domain

Überprüfen:

  1. Navigieren Sie zu App-Einstellungen → Authentifizierung
  2. "Erlaubte Domains"-Liste
  3. Überprüfen Sie, ob Benutzer-E-Mail-Domain enthalten ist
  4. Wenn fehlend: Domain hinzufügen ODER Konto manuell erstellen (umgeht Domain-Überprüfung)

OAuth funktioniert nicht

Überprüfen:

  1. Überprüfen Sie, ob Umgebungsvariablen gesetzt sind (CLIENT_ID, CLIENT_SECRET)
  2. Überprüfen Sie, ob Callback-URL mit Anbieterkonfiguration übereinstimmt
  3. Test: Abmelden, auf "Mit Anbieter anmelden" klicken
  4. Fehlermeldungen in Browser-Konsole
  5. Anbieter-Dashboard auf Auth-Versuche überprüfen

Passwort zurücksetzen

Benutzer-initiiert:

  1. Auf "Passwort vergessen" auf Anmeldeseite klicken
  2. E-Mail-Adresse eingeben
  3. Zurücksetzungs-E-Mail gesendet (10-Minuten-Token)
  4. Link in E-Mail klicken
  5. Neues Passwort eingeben
  6. Passwort zurückgesetzt (kann sich jetzt anmelden)

Admin-initiiert: Admin mit usersUpdate kann zurücksetzen:

  1. Zum Benutzerprofil navigieren
  2. Aktionen → Passwort zurücksetzen
  3. Temporäres Passwort generiert
  4. E-Mail an Benutzer mit temp. Passwort gesendet
  5. Benutzer muss Passwort bei erster Anmeldung ändern

Beste Praktiken

2FA aktivieren:

  • Für alle Admin-Konten erforderlich
  • Für alle Benutzer empfehlen
  • Compliance-Frist setzen

OAuth wann möglich verwenden:

  • Reduziert Passwort-Ermüdung
  • Nutzt Anbieter-Sicherheit
  • Einfachere Kontowiederherstellung

Fehlgeschlagene Anmeldungen überwachen:

  • Hard locked Konten wöchentlich überprüfen
  • Muster von Sperren = Passwort-Rate-Angriff
  • 2FA-Durchsetzung aktivieren

Regelmäßiger Sitzungsablauf:

  • Inaktivitäts-Timeout nicht zu lang setzen (24 Stunden vernünftig)
  • CSRF-Ablauf verhindert unbegrenzte Sitzungen
  • Balance zwischen Sicherheit und Benutzerfreundlichkeit

Erlaubte Domains:

  • Liste eng halten (nur Org-Domains)
  • Externe Auftragnehmer = manuell erstellen (Domain-Überprüfung umgehen)
  • Quartalsweise überprüfen (nicht verwendete Domains entfernen)