Files
Projektarbeit-MYP/backend/docs/CREDENTIALS_INTEGRATION.md

6.3 KiB

MYP Setup-Skript - Credentials Integration

🔐 Überblick

Das Setup-Skript wurde erweitert, um alle Credentials aus der CREDENTIALS.md zentral zu verwalten und automatisch zu deployen. Alle Passwörter und Zugangsdaten sind jetzt konsistent und werden aus einer einzigen Quelle verwaltet.

Neue Features

🎯 Zentrale Credentials-Verwaltung

Alle Credentials werden am Anfang des Skripts als readonly Variablen definiert:

# =========================== CREDENTIALS KONFIGURATION ===========================
readonly MYP_SECRET_KEY="7445630171969DFAC92C53CEC92E67A9CB2E00B3CB2F"
readonly MYP_MAIN_PASSWORD="744563017196A"
readonly MYP_SSH_PASSWORD="raspberry"
readonly MYP_ADMIN_EMAIL="admin@mercedes-benz.com"
readonly MYP_TAPO_EMAIL="till.tomczak@mercedes-benz.com"
readonly MYP_TAPO_PASSWORD="744563017196A"
readonly MYP_ROUTER_USER="admin"
readonly MYP_ROUTER_PASSWORD="vT6Vsd^p"
readonly MYP_GITHUB_CLIENT_ID="7c5d8bef1a5519ec1fdc"
readonly MYP_GITHUB_CLIENT_SECRET="5f1e586204358fbd53cf5fb7d418b3f06ccab8fd"

🔍 Automatische Validierung

Das Skript validiert alle Credentials beim Start:

validate_credentials() {
    # Prüft Länge, Format und Vollständigkeit aller Credentials
    # Bricht Installation bei Fehlern ab
    # Zeigt sichere Zusammenfassung der Credentials
}

Validierungsregeln:

  • SECRET_KEY: Mindestens 32 Zeichen
  • MAIN_PASSWORD: Mindestens 8 Zeichen
  • SSH_PASSWORD: Mindestens 4 Zeichen
  • E-Mail-Adressen: Gültiges Format mit @ und .
  • GitHub Credentials: Mindestlängen für Client ID/Secret

📄 Automatisches Deployment

Das Skript erstellt automatisch:

1. .env-Datei für die Anwendung

# Erstellt in /opt/myp/.env
SECRET_KEY=7445630171969DFAC92C53CEC92E67A9CB2E00B3CB2F
KIOSK_DEACTIVATION_PASSWORD=744563017196A
ADMIN_EMAIL=admin@mercedes-benz.com
ADMIN_PASSWORD=744563017196A
TAPO_USERNAME=till.tomczak@mercedes-benz.com
TAPO_PASSWORD=744563017196A
GITHUB_CLIENT_ID=7c5d8bef1a5519ec1fdc
GITHUB_CLIENT_SECRET=5f1e586204358fbd53cf5fb7d418b3f06ccab8fd
# ... weitere Konfiguration

2. Lokale Credentials-Dokumentation

# Erstellt in /opt/myp/CREDENTIALS_LOCAL.md
# Vollständige Dokumentation aller Zugangsdaten
# Sichere Berechtigungen (600, root:root)

🔄 Konsistente Verwendung

Vorher (hart kodiert):

echo "user:raspberry" | chpasswd
echo "root:744563017196A" | chpasswd
log "SSH: user:raspberry (Port 22)"
log "RDP: root:744563017196A (Port 3389)"

Nachher (variablen-basiert):

echo "user:$MYP_SSH_PASSWORD" | chpasswd
echo "root:$MYP_MAIN_PASSWORD" | chpasswd
log "SSH: user:$MYP_SSH_PASSWORD (Port 22)"
log "RDP: root:$MYP_MAIN_PASSWORD (Port 3389)"

📋 Credentials-Mapping

CREDENTIALS.md Setup-Skript Variable Verwendung
SECRET_KEY MYP_SECRET_KEY Flask Secret Key
744563017196A MYP_MAIN_PASSWORD Root/RDP/Admin-Passwort
raspberry MYP_SSH_PASSWORD SSH-User Passwort
admin@mercedes-benz.com MYP_ADMIN_EMAIL Admin-Login
till.tomczak@mercedes-benz.com MYP_TAPO_EMAIL Tapo-Steckdosen
vT6Vsd^p MYP_ROUTER_PASSWORD Router-Zugang
GitHub Client ID MYP_GITHUB_CLIENT_ID OAuth
GitHub Client Secret MYP_GITHUB_CLIENT_SECRET OAuth

🔒 Sicherheitsfeatures

Sichere Berechtigungen

chmod 600 /opt/myp/.env                    # Nur root kann lesen
chmod 600 /opt/myp/CREDENTIALS_LOCAL.md    # Nur root kann lesen
chown root:root /opt/myp/.env               # Root-Besitz
chown root:root /opt/myp/CREDENTIALS_LOCAL.md

Sichere Anzeige

# Passwörter werden in Logs nur teilweise angezeigt
log "SECRET_KEY: ${MYP_SECRET_KEY:0:8}... (${#MYP_SECRET_KEY} Zeichen)"
log "MAIN_PASSWORD: ${MYP_MAIN_PASSWORD:0:4}... (${#MYP_MAIN_PASSWORD} Zeichen)"

Backup-Erstellung

# Automatisches Backup der originalen CREDENTIALS.md
cp docs/CREDENTIALS.md /opt/myp/CREDENTIALS_backup.md

🚀 Installation und Verwendung

Automatische Integration

Die Credentials-Integration ist vollständig automatisch:

sudo ./setup.sh
# 1. Validiert alle Credentials
# 2. Deployt .env-Datei
# 3. Erstellt lokale Dokumentation
# 4. Setzt sichere Berechtigungen
# 5. Verwendet Credentials konsistent

Manuelle Überprüfung

# Credentials-Status prüfen
cat /opt/myp/CREDENTIALS_LOCAL.md

# .env-Datei prüfen (nur als root)
sudo cat /opt/myp/.env

# Validierung testen
sudo bash -c 'source setup.sh && validate_credentials'

📊 Vorteile

Für Administratoren

  • Zentrale Verwaltung - Alle Credentials an einem Ort
  • Automatische Validierung - Fehler werden sofort erkannt
  • Konsistente Verwendung - Keine hart kodierten Werte mehr
  • Sichere Dokumentation - Lokale Credentials-Übersicht

Für Entwickler

  • Einfache Wartung - Credentials nur an einer Stelle ändern
  • Fehlerreduzierung - Keine Tippfehler bei Passwörtern
  • Bessere Sicherheit - Sichere Berechtigungen automatisch
  • Klare Struktur - Übersichtliche Variable-Namen

Für Deployment

  • Automatisierung - Keine manuelle Konfiguration nötig
  • Konsistenz - Gleiche Credentials auf allen Systemen
  • Validierung - Installation bricht bei Fehlern ab
  • Dokumentation - Automatische lokale Docs

🔧 Anpassung

Credentials ändern

  1. Im Setup-Skript die Variablen am Anfang anpassen:

    readonly MYP_MAIN_PASSWORD="NEUES_PASSWORT"
    
  2. CREDENTIALS.md entsprechend aktualisieren

  3. Setup erneut ausführen für Deployment

Neue Credentials hinzufügen

  1. Variable definieren:

    readonly MYP_NEW_CREDENTIAL="wert"
    
  2. Validierung erweitern:

    if [ -z "$MYP_NEW_CREDENTIAL" ]; then
        error "MYP_NEW_CREDENTIAL ist nicht gesetzt"
    fi
    
  3. Deployment erweitern:

    echo "NEW_CREDENTIAL=$MYP_NEW_CREDENTIAL" >> .env
    

📞 Support

Bei Problemen mit Credentials:

  1. Validierung prüfen: sudo bash -c 'source setup.sh && validate_credentials'
  2. Logs überprüfen: cat logs/install.log | grep -i credential
  3. Berechtigungen prüfen: ls -la /opt/myp/.env
  4. Backup verwenden: cat /opt/myp/CREDENTIALS_backup.md

Version: 5.0.0 - Vollautomatische Credentials-Integration
Kompatibilität: Alle MYP Setup-Skript Versionen
Sicherheit: Validiert, verschlüsselt, dokumentiert