Anmelden Für immer gratis Loslegen

MSP Tools

Ihr RMM führt bereits API-Aufrufe aus.

Clavitor macht diese sicher.

Ihre Techniker nutzen täglich Datto, N-able und ConnectWise. Jedes Skript, jede Automatisierung und jeder geplante Task benötigt Anmeldedaten. Heute liegen diese in Skriptvariablen, benutzerdefinierten Feldern oder einem gemeinsamen Tresor, auf den jeder Zugriff hat. Der Clavitor-Proxy und das CLI ändern das, ohne Ihre Workflows zu verändern.

Das Proxy-Muster für RMM

Setzen Sie HTTPS_PROXY auf dem Endpunkt, und Ihre bestehenden Skripte funktionieren unverändert. Der Proxy fängt ausgehende HTTPS-Anfragen ab, löst clavitor://-Referenzen in den Headern auf und injiziert die echten Anmeldedaten. Ihr Skript sieht das Geheimnis nie. Ihre RMM-Konsole protokolliert es nie.

# Auf dem verwalteten Endpunkt — einmalige Einrichtung
$env:HTTPS_PROXY = "http://localhost:1983"

# Ihre bestehenden Automatisierungsskripte funktionieren unverändert
# Der Proxy löst clavitor://-Referenzen in den Request-Headern auf
Invoke-RestMethod -Uri "https://api.openai.com/v1/models" `
  -Headers @{ Authorization = "Bearer clavitor://OpenAI/key" }

PowerShell

PowerShell ist die tägliche Sprache eines MSP. Sowohl das CLI als auch der Proxy arbeiten nativ.

CLI — Einzelwerte

# Auflösen, verwenden, bereinigen — die Anmeldedaten existieren nur für eine Anweisung
$cred = clavitor-cli get "Client-Acme/VPN" --field password
Add-VpnConnection -Name "Acme" -ServerAddress "vpn.acme.com" -AuthenticationMethod MSChapv2
$secure = ConvertTo-SecureString $cred -AsPlainText -Force
Set-VpnConnectionUsernamePassword -ConnectionName "Acme" -Password $secure
Remove-Variable cred, secure

Render — Konfigurationsvorlagen

# Vorlage mit clavitor://-Referenzen (sicher in Ihrem RMM zu speichern)
clavitor-cli render monitoring-config.json | `
  Set-Content -Path "C:\ProgramData\Monitor\config.json"

Proxy — Transparente Injektion

$env:HTTPS_PROXY = "http://localhost:1983"

# Jedes Invoke-RestMethod und Invoke-WebRequest löst nun clavitor:// auf
Invoke-RestMethod -Uri "https://api.datto.com/v1/devices" `
  -Headers @{ Authorization = "Bearer clavitor://Datto API/key" }

Atera

Atera ersetzt Platzhalter in benutzerdefinierten Feldern durch Skriptparameter zur Laufzeit unter Verwendung der {[Atera.<level>.CustomField.<name>]}-Syntax. Übergeben Sie das Clavitor-Token als Parameter an ein einmaliges Installationsskript; spätere Skripte rufen das CLI auf dem Endpunkt auf.

Installation via IT-Automatisierungsprofil

Erstellen Sie in der Atera-Skriptbibliothek ein PowerShell-Skript Install Clavitor mit einem Parameter. Rufen Sie es im IT-Automatisierungsprofil, das es ausführt, mit dem Platzhalter für das Kundenfeld auf:

Install-Clavitor.ps1 -Token "{[Atera.Customer.CustomField.ClavitorToken]}"

Atera ersetzt den Wert, bevor der Agent seine Argumentliste liest. Das Skript:

param([Parameter(Mandatory)][string]$Token)
$Token | clavitor-cli init
Remove-Variable Token

Anmeldedaten zur Laufzeit auflösen

Sobald der Endpunkt registriert ist, lesen alle nachfolgenden Atera-Skripte Anmeldedaten aus dem Tresor — Atera hält nur den Token-Slot vor:

$pass = clavitor-cli get "Client-Acme/SQL Server" --field password
$secure = ConvertTo-SecureString $pass -AsPlainText -Force
Invoke-Sqlcmd -ServerInstance "sql.acme.local" `
  -Credential (New-Object PSCredential("sa", $secure)) -Query "SELECT 1"
Remove-Variable pass, secure

ConnectWise Automate

Automate ersetzt Extra Data Field (EDF) Makros in Skriptschritt-Argumenten unter Verwendung der {%^el:FieldName^%}-Syntax (EDF auf Computerebene). Das CLI wird über ein Automate-Skript installiert, das die Binärdatei herunterlädt und einen PowerShell-Schritt aufruft, wobei der Token als Parameter übergeben wird — der EDF-Wert wird ersetzt, bevor der Skriptschritt ausgeführt wird.

Automate-Skript: Installation

Erstellen Sie im Automate-Skripteditor das Skript mit zwei Schritten:

Schritt 1  Datei-Download von LTShare       clavitor-cli.exe → %windir%\Temp\
Schritt 2  Shell Execute (PowerShell)       Install-Clavitor.ps1 -Token "{%^el:ClavitorToken^%}"

Das {%^el:ClavitorToken^%}-Makro wird durch den EDF-Wert auf Computerebene ersetzt, bevor der PowerShell-Schritt ausgeführt wird. Halten Sie Token unter 255 Zeichen, um innerhalb des Ersetzungslimits von LabReplace zu bleiben. Das Skript selbst:

# Install-Clavitor.ps1
param([Parameter(Mandatory)][string]$Token)
$Token | clavitor-cli init
Remove-Variable Token

Automate-Skript: Ein Domänen-Passwort rotieren

Nachfolgende Skripte lesen aus dem Tresor und schreiben einen Status zurück in das EDF für das Dashboard:

$cred = clavitor-cli get "Client-Delta/Domain Admin" --field password
$secure = ConvertTo-SecureString $cred -AsPlainText -Force
Reset-ComputerMachinePassword `
  -Credential (New-Object PSCredential("administrator", $secure))
# Zeitstempel via Automate-Schritt "ExtraData Set Value" an EDF "LastRotation" zurückgeben
Write-Output (Get-Date -Format o)
Remove-Variable cred, secure

Datto RMM

Datto RMM stellt Site- und globale Variablen als Umgebungsvariablen mit dem Präfix $env: für PowerShell-Komponenten bereit; benutzerdefinierte Felder (UDFs) werden als $env:UDF_1 bis $env:UDF_30 bereitgestellt. Eine Komponente installiert das CLI; alles Folgende liest aus dem Tresor.

Komponente: Installation und Initialisierung

Definieren Sie eine Site-Variable ClavitorToken in der Datto-Konsole — sie erscheint innerhalb der Komponente als $env:ClavitorToken:

# Datto RMM Komponente: Clavitor CLI Bootstrapping
# Site-Variable "ClavitorToken" → $env:ClavitorToken zur Laufzeit
$env:ClavitorToken | clavitor-cli init

Komponente: API-Monitor via Proxy

Nachfolgende Komponenten schreiben clavitor://-Referenzen in die Request-Header — der Proxy löst diese auf dem Host auf. Die Anmeldedaten gelangen nie in den Speicher des Skripts oder in die Datto-Protokolle:

# Geplanter Monitor — läuft alle 15 Minuten
$env:HTTPS_PROXY = "http://localhost:1983"
$response = Invoke-RestMethod -Uri "https://api.client.com/v1/status" `
  -Headers @{ Authorization = "Bearer clavitor://Client-Bravo/Monitoring API" }

# Statuscode zurück in UDF_5 für das Datto-Dashboard schreiben
New-ItemProperty -Path "HKLM:\SOFTWARE\CentraStage" `
  -Name "Custom5" -Value $response.status -Force | Out-Null

Kaseya VSA

VSA-Agent-Prozeduren ersetzen #variable#-Makros zur Laufzeit durch PowerShell-Argumente und führen das Skript dann über die executePowershell-Schrittfamilie aus (executePowerShell64BitSystem, etc.). Ein benutzerdefiniertes Feld im Agenten-Datensatz hält den Clavitor-Token; die Prozedur übergibt ihn via stdin an den init-Befehl.

Agent-Prozedur: Installation

Fügen Sie ein Agent-Custom-Field ClavitorToken hinzu (Audit → Edit Profile → Custom Fields) und erstellen Sie dann eine Prozedur mit zwei Schritten:

Schritt 1  Datei von VSA-Server abrufen     clavitor-cli.exe → C:\Program Files\Clavitor\
Schritt 2  PowerShell ausführen (64 Sys)    "C:\Program Files\Clavitor\clavitor-cli.exe init" \
                                             stdin = "#vAgentConfiguration.ClavitorToken#"

Das #vAgentConfiguration.ClavitorToken#-Makro wird durch den Wert des benutzerdefinierten Feldes ersetzt, bevor VSA den Befehl ausführt — der Token erscheint nicht in der VSA-Prozedurhistorie.

Agent-Prozedur: Ein privilegiertes Passwort rotieren

Sobald initialisiert, liest jede spätere Prozedur aus dem Tresor:

# Wird via executePowerShell64BitSystem ausgeführt
$cred = clavitor-cli get "Client-Hotel/Local Admin" --field password
$secure = ConvertTo-SecureString $cred -AsPlainText -Force
Set-LocalUser -Name "Administrator" -Password $secure
Remove-Variable cred, secure

N-able N-central

Die Einheit der Automatisierung ist eine AMP (Automation Manager Policy) — eine PowerShell-basierte Richtlinie, die im Automation Manager erstellt wird. Benutzerdefinierte Eigenschaften auf Organisations-, Kunden- oder Site-Ebene können als Eingabeparameter an ein Run PowerShell Script-Objekt übergeben werden.

AMP: Installation mit Custom Property als Eingabe

Fügen Sie eine Custom Property ClavitorToken auf Kundenebene hinzu (Administration → Custom Properties). Erstellen Sie im Automation Manager eine AMP, deren Run PowerShell Script-Objekt den Eingabeparameter Token an diese Custom Property bindet. Das Skript:

param([Parameter(Mandatory)][string]$Token)
$Token | clavitor-cli init
Remove-Variable Token

Der Wert der Custom Property fließt als $Token ein. Er erscheint nie im exportierten XML der AMP oder im Audit-Log von N-central.

Skript-Repository: Anmeldedaten zur Laufzeit abrufen

Für Ad-hoc-Skripte, die über das Skript-Repository (Configuration → Repository → Scripts/Software) bereitgestellt werden, ist der Endpunkt bereits initialisiert — das Skript ruft lediglich das CLI auf:

$dbPass = clavitor-cli get "Client-Bcme/SQL Server" --field password
$secure = ConvertTo-SecureString $dbPass -AsPlainText -Force
Invoke-Sqlcmd -ServerInstance "sql.bcme.com" `
  -Credential (New-Object PSCredential("sa", $secure)) -Query "SELECT 1"
Remove-Variable dbPass, secure

N-able N-sight

N-sight (ehemals SolarWinds RMM) nutzt dieselbe Automation Manager Engine wie N-central, zusätzlich zu einem Script Manager für .ps1, AMP, Batch und andere Skripttypen. Das Muster spiegelt N-central wider: Eine AMP mit einem Eingabeparameter für den Token, danach wird alles zur Laufzeit aufgelöst.

Script Manager: Installation via Automated Task

Laden Sie eine Install-Clavitor.ps1 unter Settings → Script Manager mit einem Parameter für den Token hoch. Binden Sie diese als Automated Task an den Endpunkt; übergeben Sie den Token als Skriptargument aus der Einstellung auf Geräteebene:

param([Parameter(Mandatory)][string]$Token)
$Token | clavitor-cli init
Remove-Variable Token

Automated Task: Geplantes Backup mit Tresor-Anmeldedaten

Sobald initialisiert, ziehen geplante Tasks Anmeldedaten aus dem Tresor. Jeder Standard-Output bis zu 255 Zeichen wird an das N-sight-Dashboard zurückgegeben:

$pass = clavitor-cli get "Client-India/SQL Backup" --field password
$secure = ConvertTo-SecureString $pass -AsPlainText -Force
Backup-SqlDatabase -ServerInstance "sql.india.com" -Database "AppDB" `
  -Credential (New-Object PSCredential("backup-svc", $secure))
Write-Output "backup OK $(Get-Date -Format o)"
Remove-Variable pass, secure

NinjaOne

NinjaOne-Skripte, die auf dem Endpunkt laufen, können benutzerdefinierte Felder über integrierte Cmdlets lesen und schreiben: Ninja-Property-Get <name> gibt den Wert zurück, Ninja-Property-Set <name> <value> schreibt ihn zurück. Speichern Sie den Clavitor-Token in einem benutzerdefinierten Feld der Organisation (Typ Secure, damit er von der Konsole aus nur beschreibbar ist); das Installationsskript liest ihn einmalig aus.

Installationsskript: Token aus benutzerdefiniertem Feld lesen

Fügen Sie unter Administration → Library → Custom Fields ein Organisationsfeld clavitorToken vom Typ Secure hinzu. Führen Sie dann ein Installationsskript aus:

$token = Ninja-Property-Get clavitorToken
$token | clavitor-cli init
Remove-Variable token

Custom Action: API-Aufruf über den Proxy

Nach der Installation rufen Automatisierungen externe APIs über den Proxy auf — die Anmeldedaten werden niemals in eine Skriptvariable kopiert:

$env:HTTPS_PROXY = "http://localhost:1983"
$response = Invoke-RestMethod -Uri "https://api.client-echo.com/v1/status" `
  -Headers @{ Authorization = "Bearer clavitor://Client-Echo/Monitoring API" }

# Ergebnis an ein Geräte-Custom-Field für das Dashboard zurückgeben
Ninja-Property-Set lastApiStatus $response.status

Syncro

Syncro stellt Asset-Custom-Fields und Tags als Platform-Skriptvariablen unter Verwendung der {{asset_custom_field_<name>}}-Syntax bereit. Definieren Sie eine Skriptvariable vom Typ Platform und binden Sie diese an das Feld — Syncro ersetzt den Wert zur Laufzeit des Skripts durch einen PowerShell-Parameter.

Syncro-Skript: Installation

Erstellen Sie ein Asset-Custom-Field clavitor_token. Deklarieren Sie im Skripteditor eine Variable Token vom Typ Platform, die an {{asset_custom_field_clavitor_token}} gebunden ist; übergeben Sie diese an einen PowerShell-Parameter im Skriptkörper:

param([Parameter(Mandatory)][string]$Token)
$Token | clavitor-cli init
Remove-Variable Token

Das Quick-Help-Panel am unteren Rand jedes Syncro-Skripteditors listet alle verfügbaren Plattformvariablen für den Asset-, Kunden- und Ticket-Kontext auf.

Syncro-Skript: VPN-Verbindung mit Tresor-Anmeldedaten herstellen

Nach der Installation lösen Skripte und Automated Remediations Anmeldedaten aus dem Tresor auf und verwenden diese direkt:

$pass = clavitor-cli get "Client-Golf/VPN" --field password
$secure = ConvertTo-SecureString $pass -AsPlainText -Force
Add-VpnConnection -Name "Golf" -ServerAddress "vpn.golf.com" `
  -AuthenticationMethod MSChapv2 -Force
Set-VpnConnectionUsernamePassword -ConnectionName "Golf" -Password $secure
# Status an das Asset für das Syncro-Dashboard zurückschreiben
Rmm-Alert -Category "vpn-status" -Body "Golf connected $(Get-Date -Format o)"
Remove-Variable pass, secure

Warum das für MSPs wichtig ist

Jede RMM-Plattform speichert Anmeldedaten irgendwo — in benutzerdefinierten Eigenschaften, Site-Variablen, Extra Data Fields oder Skriptparametern. Jeder Techniker mit Zugriff auf die Konsole kann sie sehen. Jede Sicherheitsverletzung Ihrer RMM-Konsole legt die Anmeldedaten jedes Kunden offen.

Clavitor verlagert die Anmeldedaten aus dem RMM. Das RMM speichert nur den Agenten-Token (einer pro Kunde). Der Token gewährt einen eingeschränkten Zugriff auf den Tresor dieses Kunden. Eine Sicherheitsverletzung Ihrer RMM-Konsole legt Token offen, keine Anmeldedaten — und jeder Token ist per IP-Whitelist auf den Endpunkt beschränkt, auf dem er bereitgestellt wurde.

Eingeschränkt pro Kunde

Jeder Kunden-Tresor hat seinen eigenen Agenten-Token. Der Zugriff für Techniker wird durch den Umfang (Scope) gesteuert, nicht durch die Frage, "wer sich in die RMM-Konsole einloggen kann".

Protokolliert pro Skript

Jeder Zugriff auf Anmeldedaten wird protokolliert — welches Skript, welcher Endpunkt, welche Anmeldedaten, wann. Ihre Kunden können den Audit-Trail einsehen. Sie können beweisen, wer worauf zugegriffen hat.

Widerruf mit einem Klick

Kunde kündigt? Widerrufen Sie dessen Agenten-Token. Jeder Endpunkt hört sofort auf, Anmeldedaten aufzulösen. Keine Passwörter zum Rotieren, keine benutzerdefinierten Eigenschaften, die auf 200 Maschinen gelöscht werden müssen.

Hören Sie auf, Anmeldedaten in Ihrem RMM zu speichern.

Ein CLI. Jeder Kunde. Alle Anmeldedaten eingeschränkt, protokolliert und widerrufbar.