BizTalk Checkmk Pulse - ACC Berechtigung und Architektur
Stand: 30.07.2026

BEFUND
======

Host: AV23AGPWBIO1
Checkmk-Identität: NT AUTHORITY\SYSTEM
Alte Netzwerkidentität: BEW\AV23AGPWBIO1$
Fehler: COMException HRESULT=0x80131904
Innerer Fehler: Login failed for user 'BEW\AV23AGPWBIO1$'

Der lokale BizTalk-WMI-Namespace war erreichbar. Datenbankgestützte
BizTalk-WMI-Abfragen scheiterten am SQL-Login des Maschinenkontos.

NEUE VERBINDLICHE ARCHITEKTUR
=============================

Das Maschinenkonto erhält keine BizTalk-Berechtigung.

1. Ein normales dediziertes Servicekonto läuft minütlich als
   Scheduled Task "BizTalk Checkmk Pulse Provider".
2. Dieses Konto führt BizTalkCheckmkPulse.exe --collect aus.
3. Es schreibt atomar einen SHA-256-geschützten Snapshot nach:

   %ProgramData%\BizTalkCheckmkPulse\data\biztalk-checkmk-pulse.snapshot

4. Der Checkmk-Agent bleibt LocalSystem und startet nur den Consumer.
5. Der Consumer liest und validiert den Snapshot. Er führt kein WMI und
   keinen SQL-Zugriff aus.

BERECHTIGUNG DES PROVIDER-KONTOS
================================

Bevorzugte Rolle für BizTalk Server 2020:

  BizTalk Server Read Only Users
  SQL-Datenbankrolle: BTS_READONLY_USERS

Die exakt konfigurierte Gruppe in den Eigenschaften der BizTalk-Gruppe in der
BizTalk Administration Console ablesen. Das Provider-Konto durch
AD-Administration in BizTalkReadOnlyUserGroup aufnehmen. Nicht vom
Standardnamen ausgehen.

Die Operator-Gruppe ist nur eine begründungspflichtige Eskalation, falls eine
konkret benötigte WMI-Klasse trotz bestätigter Read-Only-Zuordnung und neuem
Anmeldetoken verweigert wird.

NICHT DURCHFÜHREN
==================

- keinen SQL-Einzellogin für Provider- oder Maschinenkonto
- keine ad-hoc BizTalk-Datenbankrollen
- kein db_owner oder sysadmin
- keine pauschalen DCOM-/WMI-ACL-Erweiterungen
- Checkmk-Agentdienst nicht auf das Provider-Konto umstellen
- Maschinenkonto BEW\AV23AGPWBIO1$ nicht für diese Lösung berechtigen

INSTALLATION
============

BizTalkCheckmkPulse-Setup.zip vollständig entpacken und Setup.exe als
Administrator starten. Konto im Format DOMAIN\Benutzer (zum Beispiel
BEW\t231bizmon), Kennwort und Umgebung eingeben. PowerShell wird nicht
benötigt.

VERIFIKATION
============

  schtasks.exe /query /tn "BizTalk Checkmk Pulse Provider" /v /fo list
  dir "%ProgramData%\BizTalkCheckmkPulse\data\biztalk-checkmk-pulse.snapshot"
  type "%ProgramData%\BizTalkCheckmkPulse\logs\biztalk-checkmk-pulse-*.log"
  "%ProgramFiles%\BizTalkCheckmkPulse\BizTalkCheckmkPulse.exe" --consume
  "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" dump

ERWARTET
========

- LastTaskResult = 0
- Snapshot wird minütlich aktualisiert
- Provider-Log nennt das dedizierte Konto
- BizTalk Platform zeigt read_only_group=<exakte Gruppe>
- BizTalk SQL Access zeigt targets=2 und available=2
- Suspensionsmetriken enthalten resumable, non-resumable und Routing Failure Reports
- Receive Locations und Send Ports trennen expected von unexpected inactive
- keine berechtigungsbedingten UNKNOWN-Services
- LocalSystem besitzt auf data nur Lesezugriff

QUELLEN
=======

https://learn.microsoft.com/en-us/biztalk/core/managing-biztalk-server-security
https://learn.microsoft.com/en-us/biztalk/core/windows-groups-and-user-accounts-in-biztalk-server
https://learn.microsoft.com/en-us/biztalk/core/technical-reference/msbts-groupsetting-biztalkreadonlyusergroup-property-wmi
https://docs.checkmk.com/latest/en/agent_windows.html
https://docs.checkmk.com/latest/en/localchecks.html
