Authentifizierungssystem
Uebersicht zur Authentifizierung
Die Anwendung nutzt zwei unterschiedliche Anmeldeablaeufe:
- Admin-Panel: Standardanmeldung mit E-Mail und Passwort
- App-Panel: E-Mail plus Einmalpasswort (OTP)
Der Zugriff ist ausserdem nach Benutzertyp getrennt:
- Benutzer vom Typ
admin koennen auf /admin zugreifen
- Benutzer vom Typ
company koennen auf /app zugreifen
Admin-Panel-Anmeldung
Das Admin-Panel verwendet die Standard-Loginseite von Filament.
Wer es nutzt
- Shop-Superadmins, die waehrend der Shopify-Installation erstellt werden
So funktioniert es
- Anmeldung mit E-Mail und Passwort
- hier ist kein OTP-Schritt implementiert
- Passwortaenderungen erfolgen ueber die Seite Passwort aendern im Admin-Panel
App-Panel-Anmeldung
Das App-Panel verwendet einen benutzerdefinierten OTP-Anmeldeablauf.
Schritt 1: E-Mail eingeben
Der Benutzer gibt auf /app/login seine E-Mail-Adresse ein.
Die App prueft:
- ob der Benutzer im Kontext des aktuellen Shops existiert
- ob die E-Mail zum Shop der aktuellen Subdomain gehoert
Schritt 2: OTP per E-Mail
Wenn der Benutzer existiert, macht die App Folgendes:
- erzeugt ein 6-stelliges OTP
- hasht und speichert es
- setzt eine Ablaufzeit von 10 Minuten
- sendet das OTP per E-Mail an den Benutzer
Schritt 3: OTP verifizieren
Der Benutzer gibt das OTP ein. Wenn es uebereinstimmt und noch nicht abgelaufen ist:
- wird der Benutzer angemeldet
- werden die OTP-Felder geleert
- werden nicht verifizierte Benutzer zur E-Mail-Verifizierungsaufforderung weitergeleitet
OTP erneut senden und Ratenbegrenzung
Die Loginseite unterstuetzt das erneute Senden des OTP. Fuer den OTP-Anfrageablauf ist eine Ratenbegrenzung implementiert, um Missbrauch zu reduzieren.
Unternehmensregistrierung und E-Mail-Verifizierung
Das App-Panel enthaelt ausserdem eine benutzerdefinierte Registrierungsseite unter /app/register.
Bei der Registrierung erfasste Daten
- Unternehmensname
- Name des ersten Standorts
- Lieferadresse
- Rechnungsadresse
- Hauptkontaktinformationen
- Zahlungsbedingungen
Was nach der Registrierung passiert
- Ein Benutzer vom Typ
company wird im inaktiven Zustand erstellt.
- Ein ausstehender Unternehmensregistrierungsdatensatz wird gespeichert.
- Eine Verifizierungs-E-Mail wird versendet.
- Nach der E-Mail-Verifizierung erstellt die App im Hintergrund das Shopify-Unternehmen und die lokalen Unternehmensdaten.
- Der verifizierte Benutzer wird zu
CompanyAdmin hochgestuft und aktiviert.
Das bedeutet: Das Unternehmen wird erst nach der E-Mail-Verifizierung finalisiert, nicht sofort beim Absenden des Formulars.
Benutzertypen und Rollen
Benutzertypen
Derzeit definierte Unternehmensrollen
Requester
Orderer
OrdererAdmin
BudgetAdmin
CompanyAdmin
Diese Rollen werden in Ressourcen-Policies und Bestellaktionen im gesamten App-Panel verwendet.
Mandantenzugriff
Das App-Panel ist mandantenbasiert nach Unternehmen.
Was das bedeutet
- ein Unternehmensbenutzer kann zu einem oder mehreren Unternehmen gehoeren
- Filament verwendet den Unternehmens-Slug in den App-Panel-URLs
- Benutzer koennen nur auf Unternehmen zugreifen, denen sie zugewiesen sind
Die Sichtbarkeit von Bestellungen wird in den implementierten Policies zusaetzlich durch Rollen- und Standortzuweisung eingeschraenkt.
Aktuelle Sicherheitsfunktionen
Der aktuelle Stand enthaelt:
- Shop-Isolierung pro Subdomain
- getrennte Zugriffspruefungen fuer Admin- und Unternehmens-Panel
- OTP-basierte Anmeldung fuer Unternehmensbenutzer
- E-Mail-Verifizierung fuer das Onboarding von Unternehmensbenutzern
- Sitzungsregenerierung nach erfolgreicher App-Panel-Anmeldung
- standort- und mandantenbezogener Datenzugriff in Ressourcen
Derzeit nicht als implementiert dokumentiert
Die aktuelle Codebasis liefert keine Hinweise auf:
- SSO
- LDAP oder Verzeichnissynchronisation
- konfigurierbare Zwei-Faktor-Methoden ueber OTP per E-Mail hinaus
- Self-Service-Flow zum Zuruecksetzen des Passworts im App-Panel