Anmelden Für immer gratis Erste Schritte

MSP-Tools

Ihre RMM-Plattform führt bereits API-Aufrufe durch.
Clavitor macht diese sicher.

Ihre Techniker nutzen Datto, N-able und ConnectWise täglich. Jedes Skript, jede Automatisierung, jede geplante Aufgabe benötigt Anmeldedaten. Heute befinden sie sich in Skriptvariablen, benutzerdefinierten Feldern oder einem gemeinsam genutzten Tresor, den jeder einsehen kann. Der Clavitor-Proxy und die CLI ändern dies, ohne Ihre Arbeitsabläufe zu ä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 Headern auf und fügt die tatsächlichen Anmeldedaten ein. Ihr Skript sieht niemals das Geheimnis. Ihre RMM-Konsole protokolliert es niemals.

# On the managed endpoint — one-time setup
$env:HTTPS_PROXY = "http://localhost:1983"

# Your existing automation scripts work unchanged
# The proxy resolves clavitor:// references in request headers
Invoke-RestMethod -Uri "https://api.openai.com/v1/models" `
  -Headers @{ Authorization = "Bearer clavitor://OpenAI/key" }

PowerShell

PowerShell ist die tägliche Sprache des MSP. Sowohl die CLI als auch der Proxy funktionieren nativ.

CLI – Einzelwerte

# Resolve, use, scrub — the credential lives for one statement
$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

Rendern – Konfigurationsvorlagen

# Template with clavitor:// references (safe to store in your RMM)
clavitor-cli render monitoring-config.json | `
  Set-Content -Path "C:\ProgramData\Monitor\config.json"

Proxy – transparente Injektion

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

# Every Invoke-RestMethod and Invoke-WebRequest now resolves clavitor://
Invoke-RestMethod -Uri "https://api.datto.com/v1/devices" `
  -Headers @{ Authorization = "Bearer clavitor://Datto API/key" }

Atera

Atera ersetzt Sitzhalter für benutzerdefinierte Felder zur Laufzeit in Skriptparametern unter Verwendung der Syntax {[Atera.<level>.CustomField.<name>]}. Übergeben Sie das Clavitor-Token als Parameter an ein einmaliges Installationsskript; spätere Skripte rufen die CLI auf dem Endpunkt auf.

Installation über das IT-Automatisierungsprofil

Erstellen Sie in der Atera-Skriptbibliothek ein PowerShell-Skript Clavitor installieren mit einem Parameter. Rufen Sie im IT-Automatisierungsprofil, das es ausführt, den Sitzhalter für das Feld auf Kundenebene 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, liest jedes spätere Atera-Skript Anmeldedaten aus dem Tresor – Atera verwaltet nur den Token-Slot:

$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 Makros für Extra Data Fields (EDF) in Skriptschrittargumenten unter Verwendung der Syntax {%^el:FieldName^%} (EDF auf Computerebene). Die CLI wird über ein Automate-Skript installiert, das die Binärdatei herunterlädt und einen PowerShell-Schritt mit dem als Parameter übergebenen Token aufruft – der EDF-Wert wird ersetzt, bevor der Skriptschritt ausgeführt wird.

Automate-Skript: Installieren

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

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

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

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

Automate-Skript: Domänenanmeldedaten rotieren

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

$cred = clavitor-cli get "Client-Delta/Domain Admin" --field password
$secure = ConvertTo-SecureString $cred -AsPlainText -Force
Reset-ComputerMachinePassword `
  -Credential (New-Object PSCredential("administrator", $secure))
# Push timestamp back to EDF "LastRotation" via Automate's ExtraData Set Value step
Write-Output (Get-Date -Format o)
Remove-Variable cred, secure

Datto RMM

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

Komponente: Installieren und initialisieren

Definieren Sie eine Site-Variable ClavitorToken in der Datto-Konsole – sie wird innerhalb der Komponente als $env:ClavitorToken angezeigt:

# Datto RMM component: bootstrap Clavitor CLI
# Site variable "ClavitorToken" → $env:ClavitorToken at runtime
$env:ClavitorToken | clavitor-cli init

Komponente: API-Überwachung über den Proxy

Nachfolgende Komponenten schreiben clavitor://-Referenzen in Anforderungsheader – der Proxy löst sie auf dem Host auf. Die Anmeldedaten gelangen niemals in den Speicher des Skripts oder in die Protokolle von Datto:

# Scheduled monitor — runs every 15 minutes
$env:HTTPS_PROXY = "http://localhost:1983"
$response = Invoke-RestMethod -Uri "https://api.client.com/v1/status" `
  -Headers @{ Authorization = "Bearer clavitor://Client-Bravo/Monitoring API" }

# Push a status code back into UDF_5 for the Datto dashboard
New-ItemProperty -Path "HKLM:\SOFTWARE\CentraStage" `
  -Name "Custom5" -Value $response.status -Force | Out-Null

Kaseya VSA

VSA-Agent-Prozeduren ersetzen #variable#-Makros zur Laufzeit in PowerShell-Argumenten und führen dann das Skript über die executePowershell-Schrittfamilie (executePowerShell64BitSystem usw.) aus. Ein benutzerdefiniertes Feld im Agenturdatensatz speichert das Clavitor-Token; die Prozedur übergibt es zur Initialisierung über stdin.

Agenturprozedur: Installieren

Fügen Sie ein benutzerdefiniertes Agenturfeld ClavitorToken hinzu (Audit → Profil bearbeiten → Benutzerdefinierte Felder) und erstellen Sie dann eine Prozedur mit zwei Schritten:

Step 1  Get File from VSA Server     clavitor-cli.exe → C:\Program Files\Clavitor\
Step 2  Execute PowerShell (64 Sys)  "C:\Program Files\Clavitor\clavitor-cli.exe init" \
                                     stdin = "#vAgentConfiguration.ClavitorToken#"

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

Agenturprozedur: Privilegierte Anmeldedaten rotieren

Nach der Initialisierung liest jede nachfolgende Prozedur aus dem Tresor:

# Executed via executePowerShell64BitSystem
$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 ein AMP (Automation Manager Policy) – eine PowerShell-basierte Richtlinie, die in 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: Installieren mit benutzerdefinierter Eigenschaft als Eingabe

Fügen Sie eine benutzerdefinierte Eigenschaft ClavitorToken auf Kundenebene hinzu (Administration → Benutzerdefinierte Eigenschaften). Erstellen Sie in Automation Manager eine AMP, deren Run PowerShell Script-Objekt den Eingabeparameter Token an diese benutzerdefinierte Eigenschaft bindet. Das Skript:

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

Der Wert der benutzerdefinierten Eigenschaft fließt als $Token ein. Er erscheint niemals 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 (Konfiguration → Repository → Skripte/Software) bereitgestellt werden, ist der Endpunkt bereits initialisiert – das Skript ruft einfach die 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) verwendet dieselbe Automation Manager-Engine wie N-central sowie einen Skript-Manager für .ps1, AMP, Batch und andere Skripttypen. Das Muster spiegelt N-central wider: AMP mit einem Eingabeparameter für das Token, dann werden alle anderen zur Laufzeit aufgelöst.

Skript-Manager: Installation über automatisierte Aufgabe

Laden Sie ein Install-Clavitor.ps1 nach Einstellungen → Skript-Manager mit einem Parameter für das Token hoch. Hängen Sie es als automatisierte Aufgabe auf dem Endpunkt an; übergeben Sie das Token als Skriptargument aus der gerätebezogenen Einstellung:

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

Automatisierte Aufgabe: Geplantes Backup mit Tresor-Anmeldedaten

Nach der Initialisierung ziehen geplante Aufgaben Anmeldedaten aus dem Tresor. Jede Standardausgabe bis zu 255 Zeichen wird zurück an das N-sight-Dashboard weitergeleitet:

$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 ausgeführt werden, 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 das Clavitor-Token in einem organisationsweiten benutzerdefinierten Feld (Typ Sicher, sodass es von der Konsole aus schreibgeschützt ist); das Installationsskript liest es einmal.

Installationsskript: Token aus benutzerdefiniertem Feld lesen

Fügen Sie unter Administration → Bibliothek → Benutzerdefinierte Felder ein organisationsweites Feld clavitorToken vom Typ Sicher hinzu. Führen Sie dann ein Installationsskript aus:

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

Benutzerdefinierte Aktion: 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" }

# Push the result back to a device custom field for dashboarding
Ninja-Property-Set lastApiStatus $response.status

Syncro

Syncro stellt benutzerdefinierte Asset-Felder und Tags als Plattform-Skriptvariablen unter Verwendung der Doppelklammer-Syntax {{asset_custom_field_<name>}} bereit. Definieren Sie eine Skriptvariable vom Typ Plattform und binden Sie sie an das Feld – Syncro ersetzt den Wert zur Skriptausführungszeit in einem PowerShell-Parameter.

Syncro-Skript: Installieren

Erstellen Sie ein Asset-Benutzerdefiniertes Feld clavitor_token. Deklarieren Sie im Skripteditor eine Variable Token vom Typ Plattform, die an {{asset_custom_field_clavitor_token}} gebunden ist; übergeben Sie sie als 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 Ticketkontext auf.

Syncro-Skript: VPN mit Tresor-Anmeldedaten verbinden

Nach der Installation lösen Skripte und automatisierte Behebungen Anmeldedaten aus dem Tresor auf und verwenden sie 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
# Write status back to asset for Syncro dashboard
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 – benutzerdefinierte Eigenschaften, Site-Variablen, Extra-Datenfelder, Skriptparameter. Jeder Techniker mit Konsolenzugriff kann sie sehen. Jeder Einbruch in Ihre RMM-Konsole legt die Anmeldedaten jedes Kunden offen.

Clavitor verschiebt die Anmeldedaten aus dem RMM. Das RMM speichert nur das Agenten-Token (eines pro Kunde). Das Token gewährt bereichsbeschränkten Zugriff auf den Tresor dieses Kunden. Ein Einbruch in Ihre RMM-Konsole legt Token offen, nicht Anmeldedaten – und jedes Token ist per IP-Whitelist auf den Endpunkt beschränkt, auf dem es bereitgestellt wurde.

Bereichsbeschränkt pro Kunde

Jeder Kundentresor hat sein eigenes Agenten-Token. Der Zugriff von Technikern wird durch den Geltungsbereich gesteuert, nicht dadurch, wer sich in die RMM-Konsole anmelden kann.

Pro Skript auditiert

Jeder Zugriff auf Anmeldedaten wird protokolliert – welches Skript, welcher Endpunkt, welche Anmeldedaten, wann. Ihre Kunden können das Audit-Log einsehen. Sie können nachweisen, wer auf was zugegriffen hat.

Mit einem Klick widerrufen

Kunde geht? Widerrufen Sie sein Agenten-Token. Jeder Endpunkt hört sofort auf, Anmeldedaten aufzulösen. Keine Passwörter zu rotieren, keine benutzerdefinierten Eigenschaften auf 200 Maschinen zu löschen.

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

Eine CLI. Jeder Kunde. Alle Anmeldedaten bereichsbeschränkt, auditiert und widerrufbar.