111 lines
3.7 KiB
Plaintext
111 lines
3.7 KiB
Plaintext
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
|