Skip to content

Authentifizierung DE

TheMRX13 edited this page Jun 12, 2026 · 1 revision

Authentifizierung

🌐 English · Deutsch

Die Authentifizierung ist standardmäßig aktiviert. Beim ersten Start wird das Admin-Konto über einen Setup-Token angelegt (Erste Schritte).

Benutzer & Rollen

Rolle Rechte
admin Alles — inkl. Einstellungen, Encoding, Benutzerverwaltung, Bibliothek-Verwaltung (Löschen/Umbenennen/Verschieben), Custom Paths, AutoSync-Verwaltung
user Suchen, Downloads, eigene Favoriten, eigene Benachrichtigungen, Bibliothek ansehen/abspielen

Benutzerverwaltung (anlegen, löschen, Rolle ändern) erfolgt durch Admins auf der Einstellungsseite. Regeln: Benutzername max. 64 Zeichen (a–z, 0–9, ., _, -), Passwort min. 8 Zeichen. Das eigene Konto kann nicht gelöscht werden. Rollenänderungen greifen ohne Neuanmeldung (Session-Rolle wird alle 15 s aus der DB aktualisiert).

Screenshot: Benutzerverwaltung

Sessions & Schutzmechanismen

  • Sessions sind 24 h gültig (HTTPOnly, SameSite=Lax; Secure-Flag bei HTTPS).
  • Login-Rate-Limit: max. 10 Login-Versuche pro Minute (optional Redis-Backend via ANIWORLD_REDIS_URL).
  • CSRF-Schutz für Formulare; JSON-API-Routen verlangen Content-Type: application/json.
  • Security-Header (CSP, X-Frame-Options DENY, nosniff, Referrer-Policy; HSTS bei HTTPS).
  • Session-Fixation-Schutz: Session wird bei jedem Login neu erzeugt.
  • Der Flask-Secret-Key liegt in ~/.aniworld/.flask_secret (Dateirechte 0600).

HTTPS: Hinter einem TLS-Reverse-Proxy sollte web_base_url auf die https://-URL gesetzt oder ANIWORLD_HTTPS=1 exportiert werden — sonst werden Session-Cookies nicht als „Secure“ markiert (die App loggt dann eine Warnung).

SSO / OIDC

Single Sign-On über jeden OpenID-Connect-Provider (Keycloak, Authentik, Authelia, …). Konfiguration in Einstellungen → SSO oder per Env-Variablen:

Einstellung DB-Key Env-Variable
SSO aktivieren web_sso ANIWORLD_WEB_SSO
Nur SSO (lokalen Login deaktivieren) web_force_sso ANIWORLD_WEB_FORCE_SSO
Issuer-URL oidc_issuer_url ANIWORLD_OIDC_ISSUER_URL
Client-ID oidc_client_id ANIWORLD_OIDC_CLIENT_ID
Client-Secret oidc_client_secret ANIWORLD_OIDC_CLIENT_SECRET
Anzeigename des Buttons oidc_display_name ANIWORLD_OIDC_DISPLAY_NAME
Admin-Benutzername oidc_admin_user ANIWORLD_OIDC_ADMIN_USER
Admin-Subject (sub-Claim) oidc_admin_subject ANIWORLD_OIDC_ADMIN_SUBJECT

Hinweise:

  • Die Discovery-URL wird automatisch aus der Issuer-URL gebildet (<issuer>/.well-known/openid-configuration); Scopes: openid email profile.
  • Als Redirect-URI im Provider eintragen: <Base-URL>/oidc/callback.
  • SSO-Benutzer werden beim ersten Login automatisch angelegt. Stimmt Benutzername oder sub-Claim mit oidc_admin_user/oidc_admin_subject überein, erhält der Benutzer Admin-Rechte.
  • Änderungen an der SSO-Konfiguration erfordern einen Neustart.
  • Bei Force SSO wird die lokale Login-Maske komplett deaktiviert.

Externe API-Authentifizierung

Die /api/v1/...-Endpoints verwenden keinen Session-Login, sondern einen API-Key im X-Api-Key-Header. Der Key wird beim ersten Start automatisch generiert und kann in den Einstellungen eingesehen und neu generiert werden (API-Referenz).

Betrieb ohne Authentifizierung

Intern existiert ein No-Auth-Modus (virtueller Admin), der Standard-Start aktiviert die Authentifizierung jedoch immer. Eine Instanz sollte niemals ohne Auth in nicht vertrauenswürdigen Netzen erreichbar sein.

Clone this wiki locally