Cloud-Betrieb, Baustoffindustrie
Acht Verwaltungsportale in einer Wochenmail
Ablaufende Zertifikate, geplante Wartungen und Abkündigungen liegen über acht Portale verstreut. Ein wöchentlicher Report bündelt sie — und die Zuständigkeit kommt bewusst aus einer gepflegten Datei statt aus dem Verzeichnisdienst.
- Jahr
- 2026
- Leistungen
- Automatisierung
- Bereich
- Konzern-IT
- Rolle
- Intern, angestellt
Umgesetzt in angestellter Rolle für einen internen Fachbereich, nicht als externes Beratungsmandat. Das Unternehmen wird nicht genannt.
Ausgangslage
Der Projektordner dokumentiert die Ausgangslage nicht. Kein README, keine Dokumentation, keine aussagekräftige Historie. Was vorher gemacht wurde, wie oft etwas übersehen wurde oder was ein abgelaufenes Zertifikat gekostet hat, steht nirgends im Code.
Ableitbar ist nur, was das System ersetzt: acht Quellen mit jeweils eigener Portalansicht. Dass diese Prüfung vorher manuell erfolgte, ist plausibel — belegt ist es nicht.
Ansatz
Der Dienst läuft als Function, gestartet von einem Zeitplan: montags früh, einmal pro Woche. Ein zweiter, per Schlüssel geschützter Einstiegspunkt erlaubt einen manuellen Lauf zum Testen.
Ein Orchestrator holt zunächst zwei Zugriffstoken über die verwaltete Identität — es liegen keine Passwörter in der Anwendung. Dann ruft er sieben spezialisierte Sammler auf, die jeweils genau eine Quelle kennen und ihr Ergebnis auf drei einheitliche Datenstrukturen abbilden. Abgefragt werden: Secrets, Zertifikate und Signaturzertifikate von App-Registrierungen, Zertifikate und Secrets aus dem Schlüsseltresor, TLS-Zertifikate aus dem App Service, Service-Health-Ereignisse und Abkündigungen über Resource Graph, Meldungen aus dem Message Center sowie ein öffentlicher Update-Feed, per Stichwortliste auf Abkündigungen und Breaking Changes gefiltert.
Jeder Sammler läuft in eigener Fehlerbehandlung: Fällt eine Quelle aus, wird der Fehler gesammelt und im Report als Warnhinweis ausgewiesen — der Versand findet trotzdem statt. Die Funde werden nach Schwellwerten eingestuft, einem Zuständigen zugeordnet, und der Renderer baut daraus eine eigenständige HTML-Seite mit Kennzahlkarten und drei Tabellen.
Der Punkt, an dem es anders hätte laufen können
Die Zuordnung „wer ist für dieses Zertifikat zuständig“ wird bewusst nicht aus dem Verzeichnisdienst gezogen, sondern aus einer von Hand gepflegten Datei.
Der naheliegende Weg wäre gewesen, die im Verzeichnis hinterlegten technischen Objekt-Owner per Schnittstelle mitzulesen. Der Kopfkommentar des zuständigen Moduls begründet, warum das verworfen wurde: Verteiler und Funktionspostfächer können dort gar nicht als Owner eingetragen werden — und ein Owner-Eintrag würde zugleich Rechte zur Verwaltung der Zugangsdaten mitgeben.
Die Entscheidung trennt damit „wen benachrichtigen wir“ von „wer darf das ändern“ und verhindert, dass eine Benachrichtigungsanforderung stillschweigend Berechtigungen ausweitet.
Der Preis ist explizit benannt: Die Zuordnung muss von Hand gepflegt werden und veraltet, wenn niemand sie anfasst. Fehlt die Datei, bleibt die Spalte leer und der Report läuft trotzdem — ein fehlender Eintrag legt nichts lahm.
Ergebnis
18 Module, rund 1.385 Zeilen, größtes davon der HTML-Renderer. Acht lesende Datenquellen, ein Versandweg, zwei Einstiegspunkte plus ein lokales Vorschauskript, das denselben Report erzeugt, ohne zu versenden.
Bewusst reines Melden: Das System erneuert nichts, rotiert nichts, öffnet kein Ticket. Jede Reaktion ist manuell.
Offen benannte Grenzen, und sie sind ehrlich: Es gibt keine Zustandshaltung. Jeder Lauf beginnt bei null — keine Quittierung, kein „schon bearbeitet“, keine Eskalation bei Nichtreaktion. Dieselbe Meldung erscheint wöchentlich unverändert, bis das Problem behoben ist. Der Wochentakt bedeutet außerdem, dass ein Zertifikat, das dienstags kritisch wird, bis Montag auffällt; die Vorwarnzeit federt das ab, ist aber eine Einstellung, kein Mechanismus.
Und die Einstufung „Handlungsbedarf“ oder „zur Kenntnis“ entscheiden Stichwortlisten. Das produziert absehbar Fehlklassifikationen in beide Richtungen — ein Mensch muss den Report weiterhin lesen, nicht nur die Ampel.
Eingesetzte Technik
- Python
- Azure Functions
- Microsoft Graph
- Azure Resource Graph
- Key Vault
- SendGrid
Weitere Projekte
Konzern-Kundenservice, Bauchemie
2026Ein Contact Center für elf Länder — eine Plattform statt elf Inseln
Kundenservice in elf Ländern über Sprache und SMS, mit Daten aus SAP, Salesforce und dem Produktsystem direkt im Arbeitsplatz der Agenten. Länderunterschiede sind Konfiguration, keine eigene Installation.
- Twilio Flex
- Twilio TaskRouter
- Twilio Studio
- SAP
Konzern-Compliance, Bauchemie
202610.872 EU-Konformitätserklärungen statt Copy-Paste
Für die neue EU-Verpackungsverordnung waren Konformitätserklärungen in 12 Sprachen für rund 900 Verpackungsmaterialien nötig. Statt sie einzeln zu füllen, erzeugt und verteilt eine Pipeline sie in einem Lauf.
- Python
- docxtpl / Jinja2
- Microsoft Word COM
- Microsoft Graph API
Vertrieb & Innendienst, Bauchemie
2026Ein Orchestrator, drei Fachagenten für Produktauskünfte
Statt eines Agenten mit drei Wissensquellen leitet ein übergeordneter Agent an drei spezialisierte weiter — je einer für ERP-Artikeldaten, Produktinhalte und SharePoint-Dokumente.
- Microsoft Copilot Studio
- Azure AI Search
- Azure Functions
- SharePoint
Ähnlicher Prozess bei Ihnen?
30 Minuten, kostenlos, ohne Verkaufsgespräch. Sie beschreiben, was Zeit kostet — ich sage Ihnen ehrlich, ob sich Automatisierung lohnt.