Wie können Sie häufige Fehler bei der Erstellung eines SaaS-Administrationspanels vermeiden? Wir werden einige Fallstricke und mögliche Lösungen speziell für alle SaaS-Entwickler da draußen aufzeigen!
Was passiert, wenn Sie eine SaaS-Anwendung entwickeln, die mehr als ein paar Kunden hat? Irgendwann passiert das Unvermeidliche! Ihre Vertriebs- und Kundenerfolgsmitarbeiter kommen zum Entwicklungsteam mit Anforderungen wie:
- Zeigen Sie mir, welche Konten aktiv genutzt werden
- Erlauben Sie mir, ein Kundenkonto für den technischen Support anzulegen
- Aktivieren oder Deaktivieren eines bestimmten Funktionsmerkmals für ein bestimmtes Konto
- Einige Benutzer können sich nicht anmelden. Können Sie mir sagen, welche Methode sie für die Authentifizierung verwenden?
- Ich habe einen Wiederverkäufer und er braucht Zugang zu seinen Unterkonten
- Ich muss eine kostenlose Testphase für ein Konto verlängern
- Ein Konto benötigt eine bestimmte Konfiguration, die nur Kundenerfolgsagenten einrichten können sollten.
- Zeigen Sie mir die gesamte MRR für eine bestimmte Kundengruppe.
Eine Vielzahl von Tools kann einige dieser Anwendungsfälle abdecken. PLG-Tools wie Segment und journy.io können die Aktivität verfolgen. Vielleicht verwenden Sie einen Feature-Flag-Dienst wie LaunchDarkly. Stripe oder Chargebee könnten einige der abrechnungsrelevanten Aspekte verwalten. In der Zwischenzeit könnten Probleme im Zusammenhang mit der Authentifizierung in Ihrem Auth0-Konto sichtbar werden. Es ist jedoch unwahrscheinlich, dass Sie alle diese Plattformen nutzen. Selbst wenn dies der Fall ist, können Sie wahrscheinlich einige Anwendungsfälle nicht abdecken.
Die Lösung ist der Aufbau eines benutzerdefinierten Admin-Panels. Es scheint einige Frameworks und kommerzielle Dienste zu geben, mit denen man schnell anfangen kann. Aber wie entscheiden Sie sich für ein solches System, anstatt Ihr eigenes von Grund auf neu zu entwickeln?
Vermeiden Sie in Ihre Anwendung integrierte Administrationspanels
Grundsätzlich ist es ratsam, ein Admin-Panel zu vermeiden, das in den Code der Hauptanwendung integriert ist, wie es ActiveAdmin tut. Dies hat viele Nachteile:
- Neue Admin-API-Routen können wahrscheinlich im Client-Code Ihrer Anwendung erkannt werden, und Angreifer können diese Schwachstelle untersuchen oder angreifen
- Sie werden wahrscheinlich mehrere Arten von Benutzern innerhalb einer Codebasis haben, was die Überprüfung der Zugriffskontrolle erschwert.
- Das Hinzufügen zusätzlicher Schutzfunktionen, wie z. B. die Beschränkung des Zugriffs von einer einzigen IP-Adresse aus, wird sehr viel schwieriger sein
- Wenn ein kritisches Problem im Code des Admin-Panels entdeckt wird, ist es schwieriger, es offline zu nehmen, ohne die App offline zu nehmen.
Apps, die sich nicht an dieses Prinzip halten, haben eine höhere Chance, in Slashdot-Stories zu landen. Hier ist eine: https://yro.slashdot.org/story/23/01/09/221207/researchers-track-gps-location-of-all-of-californias-new-digital-license-plates. Diese Geschichte zeigt, dass es möglich ist, ein Benutzerkonto zu einem Super-Admin-Konto zu erweitern, das die Daten anderer Benutzer einsehen kann.
Wählen Sie eine Verwaltungskonsole mit einem Protokoll der Benutzeraktionen
Für den Fall, dass es gesagt werden muss, bedeutet dies, dass sich Ihre Administratoren mit separaten Benutzerkonten authentifizieren müssen. (Kein Einloggen mit einem gemeinsamen Passwort über support@app.io !). Was ist der Vorteil davon? Wenn irgendwelche sensiblen Kontoeinstellungen aktualisiert werden, können Sie später herausfinden, wer die Änderung vorgenommen hat.
Erzwingen Sie mindestens 2FA (oder 3FA) zur Authentifizierung von Verwaltungsbenutzern
Wählen Sie eine Admin-Panel-Lösung, die es Ihnen ermöglicht, zusätzlich zu 2FA weitere Faktoren wie IP-Beschränkungen oder den Zugriff über andere Zero-Trust-Lösungen hinzuzufügen.

Bonus: Verwenden Sie Content Security Policy (CSP)-Header, um unbekanntes Javascript zu blockieren
Das Blockieren von unbekanntem Javascript ist von entscheidender Bedeutung, insbesondere bei internen Verwaltungsportalen. Nachfolgend ein Beispiel dafür, wie Apple für eine E-Mail-Injektionsschwachstelle anfällig war, die mit einfachen CSP-Headern hätte behoben werden können.
Dieser Tweet erinnerte mich an eine Zeit, in der ich im Rahmen des Bug Bounty Programms von Apple hackte. Ich fand ausgerechnet ein base64-kodiertes Harry Potter-Zitat auf einer internen iCloud-Konto-Debug- und Verwaltungsseite. Dies ist das erste Mal, dass ich dies teile, da mehr als 90 Tage vergangen sind ... https://t.co/CBc8QC5y3i pic.twitter.com/BNauDq7w01
- Sam Curry (@samwcyo) Dezember 24, 2023
Abschließende Überlegungen zum Aufbau einer sicheren Administrationsoberfläche
Ja, es ist möglich, ein sicheres Admin-Panel für Ihre App zu erstellen. Sie müssen entweder ein Framework wählen, das Ihnen hilft, oder eine bestehende SaaS- oder Low-Code-Lösung, die Ihnen den Einstieg erleichtert. Solange Sie es von Ihrer Hauptanwendung getrennt halten und es über private APIs mit Ihrer Hauptanwendung kommuniziert, sollten Sie damit zurechtkommen.
Aikido ist ein All-in-One-Tool für die Anwendungssicherheit. Möchten Sie sehen, ob Ihre Anwendung sicher ist? Starten Sie den kostenlosen Scan.