BizTalk Checkmk Pulse - ACC Berechtigung und Architektur
Stand: 30.07.2026

BEFUND
======

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

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

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

Das Maschinenkonto erhaelt keine BizTalk-Berechtigung.

1. Ein normales dediziertes Servicekonto laeuft minuetlich als
   Scheduled Task "BizTalk Checkmk Pulse Provider".
2. Dieses Konto fuehrt BizTalkCheckmkPulse.exe --collect aus.
3. Es schreibt atomar einen SHA-256-geschuetzten 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 fuehrt kein WMI und
   keinen SQL-Zugriff aus.

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

Bevorzugte Rolle fuer BizTalk Server 2020:

  BizTalk Server Read Only Users
  SQL-Datenbankrolle: BTS_READONLY_USERS

Die exakt konfigurierte Gruppe mit einem bereits berechtigten Konto ermitteln:

  Get-CimInstance -Namespace root/MicrosoftBizTalkServer `
      -ClassName MSBTS_GroupSetting |
      Select-Object Name, BizTalkReadOnlyUserGroup, BizTalkOperatorGroup,
          MgmtDbServerName, MgmtDbName

Das Provider-Konto durch AD-Administration in BizTalkReadOnlyUserGroup
aufnehmen. Nicht vom Standardnamen ausgehen.

Die Operator-Gruppe ist nur eine begruendungspflichtige Eskalation, falls eine
konkret benoetigte WMI-Klasse trotz bestaetigter Read-Only-Zuordnung und neuem
Anmeldetoken verweigert wird.

NICHT DURCHFUEHREN
==================

- keinen SQL-Einzellogin fuer 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 fuer diese Loesung berechtigen

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

Normales Servicekonto:

  .\Install-BizTalkCheckmkPulse.ps1 `
      -CollectorAccount 'BEW\svc_biztalk_cmk' `
      -EnvironmentName ACC

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

  Get-ScheduledTaskInfo -TaskName 'BizTalk Checkmk Pulse Provider'

  Get-Content `
      "$env:ProgramData\BizTalkCheckmkPulse\logs\*.log" `
      -Tail 100

  Get-Item `
      "$env:ProgramData\BizTalkCheckmkPulse\data\biztalk-checkmk-pulse.snapshot"

  & "$env:ProgramFiles\BizTalkCheckmkPulse\BizTalkCheckmkPulse.exe" --consume

  & "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" dump |
      Select-String -Pattern "BizTalk|UNKNOWN|Permission|snapshot" -Context 0,1

ERWARTET
========

- LastTaskResult = 0
- Snapshot wird minuetlich 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
