Zum Inhalt

Cloudflare Access

Cloudflare Access ist ein Zero-Trust-Authentifizierungsdienst, der die easySale-Dokumentation vor unberechtigtem Zugriff schützt – ohne eigenes Login-System, ohne Passwörter, nur E-Mail + One-Time-PIN.

Auf einen Blick

  • Kostenlos bis 50 Benutzer/Monat
  • Keine Passwörter – Login per E-Mail-OTP
  • Automatisches Setup für Client-Projekte vorhanden
  • DSGVO-konform und mit Audit-Logs

1. Grundlagen

Was ist Cloudflare Access?

Cloudflare Access fungiert als Login-Gateway vor jeder geschützten Domain. Benutzer müssen sich authentifizieren, bevor die Dokumentation ausgeliefert wird.

Authentifizierungs-Flow

1. Benutzer öffnet docs.easysale.de
2. Cloudflare Access Login-Seite
3. E-Mail-Adresse eingeben
4. One-Time-PIN (OTP) per E-Mail
5. Session aktiv (Standard: 24h)
6. Zugriff auf Dokumentation ✅

Vorteile

Vorteil Bedeutung
Kein eigenes Login-System Weniger Code, weniger Angriffsfläche
Keine Passwörter Kein Passwort-Reset, kein Credential-Leak
Granulare Policies Pro Domain / Client individuell
Audit-Logs Compliance-fähig
Free Plan Bis 50 User kostenlos

2. Ersteinrichtung (einmalig)

Wann brauche ich das?

Nur beim erstmaligen Aufsetzen der Hauptdomain docs.easysale.de. Für Client-Subdomains gibt es eine automatisierte Lösung (siehe Abschnitt 4).

2.1 Voraussetzungen

  • Cloudflare Account mit aktiviertem Zero Trust
  • Cloudflare Pages Projekt angelegt
  • Custom Domain konfiguriert

2.2 Zero Trust aktivieren

  1. one.dash.cloudflare.com öffnen
  2. Falls noch nicht aktiv: „Get started"Free Plan
  3. Team-Domain wählen (z. B. tech-schuppen.cloudflareaccess.com)

2.3 Access Applications anlegen

Es werden zwei separate Access-Applications benötigt – eine pro Doku-Site:

App 1 – Entwickler-Handbuch (docs.easysale.de)

Access → Applications → „Add an application" → „Self-hosted"

Feld Wert
Application name easySale Entwickler-Handbuch
Session duration 24 hours
Application domain docs.easysale.de

PolicyAction: ✅ Allow

Regel Typ Wert
Team Emails ending in @tech-schuppen.de

Restriktiv: nur das interne Team. Keine Kunden.

App 2 – Benutzer-Handbuch (handbuch.easysale.de)

Access → Applications → „Add an application" → „Self-hosted"

Feld Wert
Application name easySale Benutzer-Handbuch
Session duration 24 hours
Application domain handbuch.easysale.de

PolicyAction: ✅ Allow

Regel Typ Wert
Team Emails ending in @tech-schuppen.de
Kunden Emails kunde@beispiel.de, partner@firma.at
Kundendomäne (optional) Emails ending in @kunde-firma.de

Rule Connection: OR – jede Regel erlaubt separat Zugang.

Locker: Team und Kunden. Kunden sehen ausschließlich das Benutzer-Handbuch.

2.4 Trennung verstehen

Wer docs.easysale.de (Entwickler) handbuch.easysale.de (Benutzer)
dev@tech-schuppen.de ✅ Zugriff ✅ Zugriff
kunde@firma.de ❌ Access Denied ✅ Zugriff
Unbekannte E-Mail ❌ kein OTP ❌ kein OTP

Da es zwei eigenständige MkDocs-Builds und zwei Cloudflare-Pages-Projekte gibt, sind die Inhalte physisch getrennt – Kunden können Entwickler-URLs nicht erraten, weil sie auf der Kunden-Site gar nicht existieren.

2.5 Speichern

„Save application" → Access ist sofort aktiv.


3. Nutzung & Tests

Zugriff testen

  1. https://docs.easysale.de im Inkognito-Fenster öffnen
  2. E-Mail-Adresse eingeben → OTP-Code aus Postfach eingeben
  3. Zugriff erhalten ✅

Erwartetes Verhalten

  • ✅ OTP-Code wird gesendet
  • ✅ Zugriff gewährt
  • ✅ Session 24 h aktiv
  • ❌ Kein OTP-Code
  • ❌ Fehlermeldung „Access Denied"

Aktive Sessions einsehen

Zero Trust Dashboard → Logs → Access → Filter auf Application


4. Automatisiertes Client-Setup

Für neue Kundenprojekte gibt es ein Skript, das Pages, Custom Domain und Access Policy in einem Rutsch anlegt.

4.1 Skript ausführen

cd onboarding/client_onboarding/steps/setup

CLIENT_DIR=/path/to/easysale-client-foo \
CLIENT_NAME="Foo GmbH" \
CLIENT_EMAILS="kunde@foo.de,support@foo.de" \
CLOUDFLARE_API_TOKEN="xxx" \
CLOUDFLARE_ACCOUNT_ID="yyy" \
./06_setup_cloudflare_access.sh

Credentials via Org Secrets

Wenn CLOUDFLARE_API_TOKEN und CLOUDFLARE_ACCOUNT_ID als GitHub Org Secrets gesetzt sind, werden sie automatisch geladen – keine Angabe in der Kommandozeile nötig.

4.2 Was das Skript erledigt

Schritt Ergebnis
Pages-Projekt anlegen easysale-{slug}-docs
Fallback-Domain easysale-{slug}-docs.pages.dev
Custom Domain {slug}-docs.easysale.de
Access Application {Client Name} Documentation
Access Policies @tech-schuppen.de + alle CLIENT_EMAILS
GitHub Variable CLOUDFLARE_PAGES_PROJECT für CI/CD

4.3 Nach dem Skript: DNS setzen (Strato)

Das Skript gibt den benötigten CNAME-Eintrag aus. Beispiel:

Domain:  easysale.de
Typ:     CNAME
Name:    {slug}-docs
Wert:    easysale-{slug}-docs.pages.dev
TTL:     3600

4.4 Deployment auslösen

gh workflow run deploy-docs.yml \
  --repo Tech-Schuppen/easysale-client-{slug}

4.5 Vollständiges Beispiel

Client „Gemüsebau Steiner" – komplettes Setup

Aufruf:

CLIENT_DIR=../easysale-client-gemuesebau-steiner \
CLIENT_NAME="Gemüsebau Steiner" \
CLIENT_EMAILS="info@gemuesebau-steiner.at,buchhaltung@gemuesebau-steiner.at" \
./06_setup_cloudflare_access.sh

Ergebnis:

Project name:    easysale-gemuesebau-steiner-docs
Fallback-Domain: easysale-gemuesebau-steiner-docs.pages.dev
Custom-Domain:   gemuesebau-steiner-docs.easysale.de
Access Policy:
  - @tech-schuppen.de
  - info@gemuesebau-steiner.at
  - buchhaltung@gemuesebau-steiner.at

DNS bei Strato:

CNAME  gemuesebau-steiner-docs  →  easysale-gemuesebau-steiner-docs.pages.dev

Testen:

open -na "Google Chrome" --args --incognito \
  https://gemuesebau-steiner-docs.easysale.de


5. Benutzer verwalten

Hinzufügen

Alle @tech-schuppen.de-Adressen haben automatisch Zugang – keine Einzelpflege.

  1. Access → Applications → App auswählen → Edit
  2. Policies → Rule Emails → Adresse ergänzen
  3. Save policy

Entfernen

  1. Access → Applications → App → Policies
  2. Adresse aus der Liste löschen
  3. Save policy

Session läuft weiter

Bereits angemeldete Benutzer bleiben bis zum Session-Ende (24 h) eingeloggt. Für sofortigen Entzug: Session manuell über Logs → Access → Revoke beenden.


6. Erweiterte Policies

Session-Dauer anpassen

Access → Applications → App → Session duration

Anwendungsfall Empfehlung
Interne Team-Docs 7 days
Kunden-Docs 24 hours (Standard)
Hochsensible Docs 1 hour

Weitere Rule-Typen

Rule Type Wert Effekt
IP ranges 203.0.113.0/24 Nur aus IP-Bereich
Country AT, DE, CH Nur aus DACH
Kombination (AND) Domain + Country Strenger Zugriff

Beispiel – nur Team aus Österreich:

Include:  @tech-schuppen.de  AND  Country: AT


7. Audit & Compliance

Zugriffsprotokolle

Zero Trust → Logs → Access

Information Details
Benutzer-E-Mail Wer hat zugegriffen
Zeitstempel Wann
IP-Adresse Von wo
User-Agent Welcher Browser
Land Geo-Lokation
Erfolg/Fehler Status

Aufbewahrung: Free Plan 24 h, Paid Plans 30+ Tage.

DSGVO

  • E-Mail-Adressen zur Authentifizierung
  • IP-Adressen für Security-Logs (24 h)
  • Cloudflare ist GDPR-konform zertifiziert
Baustein für die Datenschutzerklärung
Zum Schutz unserer Dokumentation verwenden wir Cloudflare Access.
Dabei werden E-Mail-Adressen zur Authentifizierung und IP-Adressen
für Sicherheitsprotokolle vorübergehend verarbeitet.

Weitere Informationen: https://www.cloudflare.com/privacypolicy/

8. Troubleshooting

OTP-E-Mail kommt nicht an
  1. Spam-Ordner prüfen (Absender: no-reply@cloudflareaccess.com)
  2. Policy kontrollieren – E-Mail/Domain wirklich erlaubt?
  3. E-Mail-Servercloudflareaccess.com auf Whitelist
„Access Denied" trotz korrekter E-Mail
  1. Policy-Rules verifizieren (Access → Applications → Policies)
  2. Tippfehler prüfen
  3. Inkognito-Fenster / Browser-Cache leeren
Session läuft zu früh ab

Ursache: Browser löscht Cookies oder „Do Not Track" aktiv.

Lösung: Cookies für cloudflareaccess.com erlauben.

Rate limit exceeded
  • 15 Minuten warten
  • Bei dauerhaftem Problem: Support für höhere Limits kontaktieren

9. Kosten

  • ✅ Bis zu 50 Benutzer/Monat
  • ✅ Unbegrenzte Applications
  • ✅ E-Mail-OTP Authentication
  • ✅ 24 h Log-Retention

Ausreichend für: Interne Docs, kleine bis mittlere Kundenbasis.

  • Mehr als 50 Benutzer
  • Extended Log-Retention (30+ Tage)
  • SAML / OIDC Integration
  • Multi-Factor Authentication (Hardware-Keys)
  • SLA & Support

10. Best Practices

Security

  1. Policy-Reviews – vierteljährlich Benutzer prüfen, Ausgeschiedene entfernen
  2. Session-Dauer – nicht länger als nötig; sensible Docs ≤ 8 h
  3. Admin-Zugriff – Cloudflare Dashboard nur von Firmen-IP

Monitoring

  • Alerts: Zero Trust → Logs → Configure Alerts → z. B. >10 Fehllogins/Stunde
  • Log-Reviews: wöchentlich auf ungewöhnliche Muster prüfen (Geo, Zeit)

Onboarding-Template

E-Mail an neuen Benutzer
Betreff: Zugang zur easySale Dokumentation

Hallo,

Sie haben nun Zugriff auf unsere technische Dokumentation:
https://docs.easysale.de

Beim ersten Besuch erhalten Sie per E-Mail einen Login-Code.
Die Session bleibt 24 Stunden aktiv.

Bei Fragen: support@tech-schuppen.de

Cloudflare Access

Cloudflare Access ist ein Zero-Trust-Authentifizierungsdienst, der die easySale-Dokumentation vor unberechtigtem Zugriff schützt.

Übersicht

Was ist Cloudflare Access?

Cloudflare Access fungiert als Login-Gateway vor der Dokumentation. Benutzer müssen sich authentifizieren, bevor sie Zugriff erhalten.

Funktionsweise:

1. Benutzer öffnet docs.easysale.de
2. Cloudflare Access Login-Bildschirm erscheint
3. Benutzer gibt E-Mail-Adresse ein
4. One-Time-PIN (OTP) wird per E-Mail gesendet
5. Nach Code-Eingabe: Session aktiv (24h)
6. Zugriff auf Dokumentation gewährt ✅

Vorteile:

  • ✅ Kein eigenes Login-System erforderlich
  • ✅ Keine Passwörter - nur E-Mail + OTP
  • ✅ Granulare Zugriffskontrolle
  • ✅ Audit-Logs für Compliance
  • ✅ Kostenlos bis 50 Benutzer/Monat

Ersteinrichtung

Voraussetzungen

  • Cloudflare Account mit aktiviertem Zero Trust
  • Cloudflare Pages Projekt ist erstellt
  • Custom Domain ist konfiguriert

Schritt 1: Zero Trust aktivieren

  1. Öffnen Sie one.dash.cloudflare.com
  2. Falls noch nicht aktiviert: "Get started" klicken
  3. Free Plan auswählen
  4. Team-Domain wählen (z.B. tech-schuppen.cloudflareaccess.com)
  5. Diese Domain wird für den Login verwendet
  6. Ist nicht öffentlich sichtbar

Schritt 2: Access Application erstellen

  1. Zero Trust Dashboard → AccessApplications
  2. "Add an application" klicken
  3. "Self-hosted" auswählen

Schritt 3: Application konfigurieren

Basic Configuration:

Feld Wert
Application name easySale Documentation
Session duration 24 hours
Application domain docs.easysale.de

Optional: - Application logo: Upload eines Logos (wird beim Login angezeigt) - App Launcher visibility: Visible (zeigt App im User-Portal)

Schritt 4: Access Policy erstellen

Policy Name: Tech-Schuppen Team & Authorized Clients

Action: ✅ Allow

Configure rules:

Rule 1 - Tech-Schuppen Team

Rule type:  Emails ending in
Value:      @tech-schuppen.de

Rule 2 - Spezifische Kunden (optional)

Rule type:  Emails
Value:      kunde@beispiel.de, partner@firma.at

Rule Connection: OR (Standard)
→ Jede Regel erlaubt separat Zugang

Schritt 5: Speichern & Aktivieren

  1. "Save application" klicken
  2. Access ist sofort aktiv ✅

Zugriff testen

Test-Prozedur

  1. Öffnen Sie https://docs.easysale.de in einem Inkognito-Fenster
  2. Sie werden zur Cloudflare Access Login-Seite weitergeleitet
  3. Geben Sie eine erlaubte E-Mail-Adresse ein
  4. Prüfen Sie Ihr E-Mail-Postfach für den OTP-Code
  5. Nach Code-Eingabe: Zugriff auf die Dokumentation ✅

Erwartetes Verhalten

Erlaubte E-Mail (@tech-schuppen.de): - ✅ OTP-Code wird gesendet - ✅ Zugriff wird gewährt - ✅ Session bleibt 24 Stunden aktiv

Nicht erlaubte E-Mail: - ❌ Kein OTP-Code wird gesendet - ❌ Zugriff wird verweigert - ❌ Fehlermeldung: "Access Denied"


Benutzer verwalten

Neuen Benutzer hinzufügen

Option 1: Domain-basiert (empfohlen für Team)

Bereits konfiguriert: @tech-schuppen.de
→ Alle E-Mails mit dieser Domain haben automatisch Zugang

Option 2: Spezifische E-Mail-Adresse

  1. Access → Applications → easySale DocumentationEdit
  2. Policies → Policy bearbeiten
  3. Add include → Rule type: Emails
  4. E-Mail-Adresse eingeben (z.B. kunde@beispiel.de)
  5. Save policy

Benutzer entfernen

  1. Access → Applications → easySale DocumentationEdit
  2. Policies → Policy bearbeiten
  3. E-Mail-Adresse aus der Liste entfernen
  4. Save policy

Session-Timeout

Bereits angemeldete Benutzer bleiben bis zum Session-Ende (24h) eingeloggt. Um sofortigen Entzug zu erzwingen, muss die Session manuell beendet werden.

Aktive Sessions anzeigen

  1. Zero Trust Dashboard → LogsAccess
  2. Hier sehen Sie:
  3. Wer hat sich eingeloggt
  4. Wann erfolgte der Zugriff
  5. Von welcher IP-Adresse

Access Policies anpassen

Session-Dauer ändern

  1. Access → Applications → easySale DocumentationEdit
  2. Session duration anpassen (z.B. 8 hours, 7 days)
  3. Save application

Empfohlene Werte:

Interne Team-Docs:    7 days
Kunden-Docs:          24 hours
Hochsensible Docs:    1 hour

Erweiterte Access Rules

IP-basierte Einschränkung

Rule type:  IP ranges
Value:      203.0.113.0/24
→ Nur von bestimmten IP-Bereichen erlaubt

Country-basierte Einschränkung

Rule type:  Country
Value:      AT, DE, CH
→ Nur aus DACH-Region erlaubt

Mehrere Bedingungen kombinieren

Include:  @tech-schuppen.de  AND  Country: AT
→ Nur Team-Mitglieder aus Österreich


Troubleshooting

Problem: OTP-E-Mail kommt nicht an

Mögliche Ursachen:

  1. Spam-Ordner prüfen
  2. E-Mail von no-reply@cloudflareaccess.com suchen

  3. E-Mail-Adresse nicht in Policy

  4. Verifizieren Sie, dass die Domain/E-Mail erlaubt ist
  5. Access → Applications → Policy überprüfen

  6. E-Mail-Server blockiert Cloudflare

  7. Whitelist hinzufügen: cloudflareaccess.com

Problem: "Access Denied" trotz korrekter E-Mail

Lösungen:

  1. Policy überprüfen

    Access  Applications  easySale Documentation  Policies
     Verifizieren Sie Rule-Konfiguration
    

  2. Tippfehler in E-Mail-Adresse

  3. Exakte Schreibweise prüfen (Groß-/Kleinschreibung egal)

  4. Cache leeren

  5. Inkognito-Fenster verwenden
  6. Browser-Cache löschen

Problem: Session läuft zu früh ab

Ursache:
Browser-Cookies werden gelöscht oder "Do Not Track" ist aktiviert.

Lösung: 1. Cloudflare Access Domain in Cookie-Whitelist aufnehmen 2. Browser-Einstellungen: Cookies für cloudflareaccess.com erlauben

Problem: Zu viele Login-Versuche

Fehlermeldung:
Rate limit exceeded

Lösung: - Warten Sie 15 Minuten - Cloudflare blockiert temporär bei zu vielen Anfragen - Kontaktieren Sie Support für höhere Limits


Client-spezifische Dokumentation

Automatisiertes Setup für neue Kunden

Für neue Client-Projekte kann die komplette Cloudflare-Konfiguration automatisiert werden:

Setup-Skript

cd onboarding/lib/client_only

CLIENT_DIR=/path/to/easysale-client-foo \
CLIENT_NAME="Foo GmbH" \
CLIENT_EMAILS="kunde@foo.de,support@foo.de" \
CLOUDFLARE_API_TOKEN="xxx" \
CLOUDFLARE_ACCOUNT_ID="yyy" \
./06_setup_cloudflare_access.sh

Was das Skript automatisch erledigt

  1. Cloudflare Pages Projekt
  2. Projektname: easysale-{slug}-docs
  3. Standard-Domain: easysale-{slug}-docs.pages.dev
  4. Custom-Domain: {slug}-docs.easysale.de

  5. Custom Domain Konfiguration

  6. Fügt Custom Domain automatisch zum Pages-Projekt hinzu
  7. Gibt CNAME-Eintrag für Strato aus (muss manuell gesetzt werden)

  8. Cloudflare Access Application

  9. Application Name: {Client Name} Documentation
  10. Domain Protection: Aktiviert auf Custom Domain
  11. Session Duration: 24 Stunden

  12. Access Policies

  13. ✅ @tech-schuppen.de (automatisch)
  14. ✅ Alle in CLIENT_EMAILS angegebenen Adressen

  15. GitHub Variables

  16. CLOUDFLARE_PAGES_PROJECT → für Deployment-Workflow

Credentials bereitstellen

Option 1: Umgebungsvariablen

export CLOUDFLARE_API_TOKEN="cfat_..."
export CLOUDFLARE_ACCOUNT_ID="abc123..."

Option 2: GitHub Org Secrets (bevorzugt)
Wenn CLOUDFLARE_API_TOKEN und CLOUDFLARE_ACCOUNT_ID als Org Secrets gesetzt sind, werden sie automatisch geladen.

Beispiel: Kunde "Gemüsebau Steiner"

CLIENT_DIR=../easysale-client-gemuesebau-steiner \
CLIENT_NAME="Gemüsebau Steiner" \
CLIENT_EMAILS="info@gemuesebau-steiner.at,buchhaltung@gemuesebau-steiner.at" \
./06_setup_cloudflare_access.sh

Ergebnis: - Pages-Projekt: easysale-gemuesebau-steiner-docs - Fallback-Domain: easysale-gemuesebau-steiner-docs.pages.dev - Custom-Domain: gemuesebau-steiner-docs.easysale.de ✨ - Zugriff für: - @tech-schuppen.de - info@gemuesebau-steiner.at - buchhaltung@gemuesebau-steiner.at

DNS bei Strato setzen:

Domain:  easysale.de
Typ:     CNAME
Name:    gemuesebau-steiner-docs
Wert:    easysale-gemuesebau-steiner-docs.pages.dev
TTL:     3600

Nach dem Setup

  1. DNS-Eintrag bei Strato setzen:

    Domain:  easysale.de
    Typ:     CNAME
    Name:    gemuesebau-steiner-docs
    Wert:    easysale-gemuesebau-steiner-docs.pages.dev
    

  2. DNS-Propagation abwarten (~5-15 Minuten)

  3. Deployment auslösen:

    gh workflow run deploy-docs.yml \
      --repo Tech-Schuppen/easysale-client-gemuesebau-steiner
    

  4. Access testen:

    # Inkognito-Fenster öffnen
    open -na "Google Chrome" --args --incognito \
      https://gemuesebau-steiner-docs.easysale.de
    

Zusammenfassung

Project name:     easysale-gemuesebau-steiner-docs
Fallback-Domain:  easysale-gemuesebau-steiner-docs.pages.dev
Custom-Domain:    gemuesebau-steiner-docs.easysale.de
Access Policy:
  - @tech-schuppen.de
  - info@gemuesebau-steiner.at
  - buchhaltung@gemuesebau-steiner.at

DNS bei Strato:

CNAME  gemuesebau-steiner-docs  →  easysale-gemuesebau-steiner-docs.pages.dev


Manuelles Setup für Client-Projekte

Falls Sie die Konfiguration manuell vornehmen müssen:

Beispiel: Gemüsebau Steiner

Project name:     easysale-gemuesebau-steiner-docs
Domain:           easysale-gemuesebau-steiner-docs.pages.dev
Access Policy:
  - @tech-schuppen.de
  - info@gemuesebau-steiner.at
  - buchhaltung@gemuesebau-steiner.at

Vorteile: - Jeder Client sieht nur seine eigene Dokumentation - Unterschiedliche Zugriffsrechte pro Client - Individuelle Session-Dauern konfigurierbar


Audit & Compliance

Zugriffsprotokolle

Abruf: 1. Zero Trust Dashboard → LogsAccess 2. Filter nach Application: easySale Documentation

Verfügbare Informationen: - Benutzer-E-Mail - Zeitstempel - IP-Adresse - User-Agent (Browser) - Land - Erfolg/Fehlschlag

Aufbewahrung: - Free Plan: 24 Stunden - Paid Plans: 30+ Tage

DSGVO-Konformität

Datenverarbeitung: - E-Mail-Adressen werden zur Authentifizierung gespeichert - IP-Adressen für Security-Logs (24h) - Cloudflare ist GDPR-konform zertifiziert

Datenschutzerklärung:

Zum Schutz unserer Dokumentation verwenden wir Cloudflare Access.
Dabei werden E-Mail-Adressen zur Authentifizierung und IP-Adressen
für Sicherheitsprotokolle vorübergehend verarbeitet.

Weitere Informationen: https://www.cloudflare.com/privacypolicy/


Kosten

Free Plan

✅ Bis zu 50 Benutzer/Monat
✅ Unbegrenzte Applications
✅ E-Mail OTP Authentication
✅ 24h Log-Retention

Ausreichend für: - Interne Team-Dokumentation - Kleine bis mittlere Kundenbasis - Standard-Sicherheitsanforderungen

Ab $7/Monat pro User (Enterprise Features): - Mehr als 50 Benutzer - Extended Log-Retention (30+ Tage) - SAML/OIDC Integration - Multi-Factor Authentication (Hardware-Keys) - SLA & Support


Best Practices

Security

  1. Regelmäßige Policy-Reviews
  2. Vierteljährlich Benutzer-Liste prüfen
  3. Ausgeschiedene Mitarbeiter entfernen

  4. Session-Dauer angemessen wählen

  5. Nicht länger als notwendig
  6. Sensible Docs: max. 8 hours

  7. IP-Whitelisting für Admin-Zugriff

  8. Cloudflare Dashboard nur von Firmen-IP
  9. Zero Trust → Settings → Authentication

Monitoring

  1. E-Mail-Alerts einrichten

    Zero Trust → Logs → Configure Alerts
    → Alert bei mehr als 10 fehlgeschlagenen Logins/Stunde
    

  2. Wöchentliche Log-Reviews

  3. Ungewöhnliche Zugriffsmuster erkennen
  4. Geografisch unerwartete Zugriffe prüfen

Onboarding neuer Benutzer

Prozess:

  1. Benutzer zu Access Policy hinzufügen
  2. E-Mail an Benutzer senden:
    Betreff: Zugang zur easySale Dokumentation
    
    Hallo,
    
    Sie haben nun Zugriff auf unsere technische Dokumentation:
    https://docs.easysale.de
    
    Beim ersten Besuch erhalten Sie per E-Mail einen Login-Code.
    Die Session bleibt 24 Stunden aktiv.
    
    Bei Fragen: support@tech-schuppen.de
    
  3. Bei Problemen: Logs überprüfen