Skip to content

Benachrichtigungen

TCM365 bietet ein Multi-Channel-Benachrichtigungssystem, das Alerts und Statusmeldungen über vier Kanäle zustellt: E-Mail (SMTP), Microsoft Teams, Slack und Webhooks. Benachrichtigungen werden durch Systemereignisse wie Drift-Erkennung, Snapshot-Abschluss und Compliance-Änderungen ausgelöst.


Übersicht

Das Benachrichtigungssystem basiert auf zwei Kern-Entities: NotificationConfig (Kanal-Konfiguration) und NotificationLog (Zustellungsverfolgung). Der NotificationService verarbeitet Nachrichtenformatierung, Zustellung und Retry-Logik über alle Kanäle.

Kernfunktionen

  • Vier Benachrichtigungskanäle: E-Mail, Teams, Slack, Webhooks
  • Konfigurierbare Per-Tenant-Benachrichtigungspraeferenzen
  • Template-basierte Benachrichtigungsinhalte
  • Zustellungsverfolgung mit Erfolg/Fehler-Protokollierung
  • Event-gesteuerte Trigger für automatisiertes Alerting
  • Retry-Logik für fehlgeschlagene Zustellungen
  • Multi-Empfänger-Unterstützung für E-Mail-Benachrichtigungen

Benachrichtigungskanäle

E-Mail (SMTP)

E-Mail-Benachrichtigungen werden via SMTP gesendet und unterstützen HTML-formatierte Nachrichten mit eingebetteten Datentabellen und Aktionslinks.

Konfiguration:

{
  "channel": "email",
  "enabled": true,
  "config": {
    "recipients": ["admin@organisation.de", "security@organisation.de"],
    "ccRecipients": ["compliance@organisation.de"],
    "subjectPrefix": "[TCM365]"
  }
}

Umgebungsvariablen:

Variable Beschreibung Beispiel
SMTP_HOST SMTP-Server-Hostname smtp.office365.com
SMTP_PORT SMTP-Server-Port 587
SMTP_USERNAME SMTP-Authentifizierungsbenutzername notifications@org.com
SMTP_PASSWORD SMTP-Authentifizierungspasswort (verschlüsselt)
SMTP_FROM_EMAIL Absender-E-Mail-Adresse tcm@org.com
SMTP_FROM_NAME Absender-Anzeigename TCM365 Notifications

Microsoft Teams

Teams-Benachrichtigungen werden über Incoming Webhook Connectors zugestellt und erscheinen als Adaptive Card-Nachrichten im konfigurierten Teams Channel.

Konfiguration:

{
  "channel": "teams",
  "enabled": true,
  "config": {
    "webhookUrl": "https://outlook.office.com/webhook/...",
    "cardTitle": "TCM365 Alert"
  }
}

Einrichtung:

  1. Ziel-Teams-Channel öffnen
  2. Zu Channel-Einstellungen navigieren und Connectors (oder Workflows) wählen
  3. Incoming Webhook Connector hinzufügen
  4. Webhook URL kopieren
  5. Webhook URL in TCM365 Benachrichtigungseinstellungen konfigurieren

Slack

Slack-Benachrichtigungen verwenden Incoming Webhooks um Nachrichten mit Block Kit-Formatierung in konfigurierte Slack-Channels zu senden.

Konfiguration:

{
  "channel": "slack",
  "enabled": true,
  "config": {
    "webhookUrl": "https://hooks.slack.com/services/T.../B.../...",
    "channelOverride": "#security-alerts",
    "username": "TCM365 Bot",
    "iconEmoji": ":shield:"
  }
}

Webhooks (Benutzerdefiniert)

Generische Webhook-Benachrichtigungen senden JSON-Payloads an benutzerdefinierte HTTP-Endpoints und ermöglichen Integration mit jedem System, das HTTP POST-Anfragen empfangen kann.

Konfiguration:

{
  "channel": "webhook",
  "enabled": true,
  "config": {
    "url": "https://api.example.com/tcm365-events",
    "method": "POST",
    "headers": {
      "Authorization": "Bearer <token>",
      "X-Custom-Header": "TCM365"
    },
    "secret": "webhook-signing-secret"
  }
}

Funktionen:

  • Benutzerdefinierte HTTP-Header für Authentifizierung
  • HMAC-SHA256 Payload-Signierung für Webhook-Verifizierung
  • Konfigurierbarer HTTP-Methode (POST, PUT)
  • Retry mit exponentiellem Backoff

Trigger Events

Benachrichtigungen können für folgende Systemereignisse konfiguriert werden:

Event Beschreibung Standard-Kanäle
drift.detected Konfigurationsdrift durch Monitor erkannt Alle Kanäle
drift.resolved Drift-Record als behoben markiert E-Mail
snapshot.completed Snapshot-Erfassung erfolgreich abgeschlossen E-Mail, Webhook
snapshot.failed Snapshot-Erfassung fehlgeschlagen Alle Kanäle
compliance.score_changed Compliance-Score signifikant geändert E-Mail, Teams
compliance.threshold_breach Compliance-Score unter Schwellenwert gefallen Alle Kanäle
rollback.completed Rollback-Operation abgeschlossen Alle Kanäle
rollback.failed Rollback-Operation fehlgeschlagen Alle Kanäle
incident.created Neuer Incident erstellt Alle Kanäle
incident.deadline_approaching NIS2-Meldefrist naehert sich Alle Kanäle
anomaly.detected Anomalie-Erkennung ausgelöst E-Mail, Teams, Slack
probe.failed Custom Probe-Ausführung fehlgeschlagen E-Mail, Webhook
workflow.completed Geplanter Workflow abgeschlossen E-Mail
workflow.failed Geplanter Workflow fehlgeschlagen Alle Kanäle

Event-Filterung

Jede Benachrichtigungskonfiguration kann filtern, welche Events Benachrichtigungen auslösen:

{
  "channel": "teams",
  "enabled": true,
  "events": ["drift.detected", "compliance.threshold_breach", "incident.created"],
  "severityFilter": ["high", "critical"],
  "config": {
    "webhookUrl": "https://..."
  }
}

Retry-Logik

Fehlgeschlagene Benachrichtigungszustellungen werden mit exponentiellem Backoff wiederholt:

Versuch Verzögerung Gesamtwartezeit
1. Retry 30 Sekunden 30s
2. Retry 2 Minuten 2m 30s
3. Retry 10 Minuten 12m 30s
Letzter Versuch 30 Minuten 42m 30s

Nach 4 fehlgeschlagenen Versuchen wird die Benachrichtigung als dauerhaft fehlgeschlagen markiert und im NotificationLog mit Fehlerdetails protokolliert.


API-Endpoints

Methode Endpoint Beschreibung
GET /api/v1/notifications/configs Benachrichtigungskonfigurationen auflisten
POST /api/v1/notifications/configs Benachrichtigungskonfiguration erstellen
GET /api/v1/notifications/configs/{id} Konfigurationsdetails abrufen
PUT /api/v1/notifications/configs/{id} Konfiguration aktualisieren
DELETE /api/v1/notifications/configs/{id} Konfiguration löschen
POST /api/v1/notifications/configs/{id}/test Testbenachrichtigung senden
GET /api/v1/notifications/logs Zustellungsprotokolle auflisten
GET /api/v1/notifications/logs/{id} Protokolldetails abrufen

Best Practices

  1. Mehrere Kanäle konfigurieren -- Mindestens zwei Kanäle für kritische Alerts zur Zustellungssicherung
  2. Nach Severity filtern -- Nur High/Critical-Events an Teams/Slack routen um Benachrichtigungsmuedigkeit zu vermeiden
  3. Vor Produktion testen -- Immer Testbenachrichtigung nach Konfiguration senden zur Konnektivitaetspruefung
  4. Webhooks für Automatisierung -- Integration mit SIEM, Ticketing oder Automatisierungssystemen via Webhooks
  5. Zustellungsprotokolle prüfen -- Periodisch Benachrichtigungsprotokolle auf fehlgeschlagene Zustellungen prüfen
  6. Tenant-spezifische Konfigurationen -- Tenant-spezifische Benachrichtigungspraeferenzen für Multi-Tenant-Umgebungen
  7. Webhook Secrets sichern -- HMAC-Signierung für Webhook-Endpoints zur Nachrichtenauthentizitaetspruefung