Accedi Gratis per sempre Iniziare

Strumenti MSP

Il Suo RMM effettua già chiamate API. Clavitor le rende sicure.

I Suoi tecnici utilizzano quotidianamente Datto, N-able e ConnectWise. Ogni script, ogni automazione, ogni attività pianificata necessita di credenziali. Oggi si trovano in variabili di script, campi personalizzati o una cassaforte condivisa accessibile a tutti. Il proxy e la CLI di Clavitor cambiano questo scenario senza modificare i Suoi flussi di lavoro.

Il pattern proxy per RMM

Imposti HTTPS_PROXY sull'endpoint e i Suoi script esistenti funzioneranno invariati. Il proxy intercetta le richieste HTTPS in uscita, risolve i riferimenti clavitor:// nelle intestazioni e inietta le credenziali reali. Il Suo script non vedrà mai il segreto. La Sua console RMM non lo registrerà mai.

# 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 è il linguaggio quotidiano dell'MSP. Sia la CLI che il proxy funzionano nativamente.

CLI — valori singoli

# 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

Render — modelli di configurazione

# 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 — iniezione trasparente

$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 sostituisce i segnaposto dei campi personalizzati nei parametri dello script al momento dell'esecuzione, utilizzando la sintassi {[Atera.<level>.CustomField.<name>]}. Passi il token Clavitor a uno script di installazione monouso come parametro; gli script successivi eseguiranno la CLI sull'endpoint.

Installazione tramite profilo IT Automation

Nella libreria script di Atera, crei uno script PowerShell Install Clavitor con un parametro. Nel profilo IT Automation che lo esegue, invochi con il segnaposto del campo a livello cliente:

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

Atera sostituisce il valore prima che l'agente legga la sua lista di argomenti. Lo script:

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

Risolvere le credenziali al runtime

Una volta che l'endpoint è registrato, ogni script Atera successivo legge le credenziali dalla cassaforte — Atera detiene solo lo slot del token:

$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 sostituisce le macro Extra Data Field (EDF) negli argomenti dello script utilizzando la sintassi {%^el:FieldName^%} (EDF a livello di computer). La CLI si installa tramite uno script Automate che scarica il binario e invoca uno step PowerShell con il token passato come parametro — il valore EDF viene sostituito prima che lo step dello script venga eseguito.

Script Automate: installazione

Nell'editor di script Automate, crei lo script con due step:

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

La macro {%^el:ClavitorToken^%} viene sostituita con il valore EDF a livello di computer prima che lo step PowerShell venga eseguito. Mantenga i token sotto i 255 caratteri per rimanere entro il limite di sostituzione di LabReplace. Lo script stesso:

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

Script Automate: rotazione di una credenziale di dominio

Gli script successivi leggono dalla cassaforte e scrivono uno stato nell'EDF per il dashboarding:

$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 espone le variabili di sito e globali ai componenti PowerShell come variabili d'ambiente con il prefisso $env:; i campi definiti dall'utente (UDF) sono esposti come $env:UDF_1 fino a $env:UDF_30. Un componente installa la CLI; tutto ciò che segue legge dalla cassaforte.

Componente: installazione e inizializzazione

Definisca una variabile di sito ClavitorToken nella console Datto — essa appare all'interno del componente come $env:ClavitorToken:

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

Componente: monitor API tramite proxy

I componenti successivi scrivono riferimenti clavitor:// nelle intestazioni delle richieste — il proxy li risolve sull'host. La credenziale non entra mai nella memoria dello script o nei log di 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

Le procedure agent VSA sostituiscono le macro #variable# negli argomenti PowerShell al momento dell'esecuzione, quindi eseguono lo script tramite la famiglia di step executePowershell (executePowerShell64BitSystem, ecc.). Un campo personalizzato sul record dell'agente contiene il token Clavitor; la procedura lo passa all'inizializzazione tramite stdin.

Procedura agente: installazione

Aggiunga un campo personalizzato dell'agente ClavitorToken (Audit → Modifica Profilo → Campi Personalizzati), quindi crei una procedura con due step:

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#"

La macro #vAgentConfiguration.ClavitorToken# viene sostituita con il valore del campo personalizzato prima che VSA esegua il comando — il token non appare nella cronologia delle procedure di VSA.

Procedura agente: rotazione di una credenziale privilegiata

Una volta inizializzata, qualsiasi procedura successiva legge dalla cassaforte:

# 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

L'unità di automazione è un AMP (Automation Manager Policy) — una policy basata su PowerShell creata in Automation Manager. Le Proprietà Personalizzate a livello di organizzazione, cliente o sito possono essere passate a un oggetto Run PowerShell Script come Parametri di Input.

AMP: installazione con Proprietà Personalizzata come input

Aggiunga una Proprietà Personalizzata ClavitorToken a livello cliente (Amministrazione → Proprietà Personalizzate). In Automation Manager, crei un AMP il cui oggetto Run PowerShell Script leghi il Parametro di Input Token a quella Proprietà Personalizzata. Lo script:

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

Il valore della Proprietà Personalizzata fluisce come $Token. Non appare mai nell'XML esportato dell'AMP né nel log di audit di N-central.

Repository Script: recupero di una credenziale al runtime

Per gli script ad-hoc inviati tramite il Repository Script (Configurazione → Repository → Script/Software), l'endpoint è già inizializzato — lo script chiama semplicemente la CLI:

$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 (precedentemente SolarWinds RMM) esegue lo stesso motore Automation Manager di N-central, più uno Script Manager per script .ps1, AMP, batch e altri tipi. Il pattern rispecchia N-central: AMP con un Parametro di Input per il token, quindi tutto il resto si risolve al runtime.

Script Manager: installazione tramite Attività Automatica

Carichi un file Install-Clavitor.ps1 in Impostazioni → Script Manager con un parametro per il token. Lo alleghi come Attività Automatica sull'endpoint; passi il token come argomento dello script dall'impostazione a livello di dispositivo:

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

Attività Automatica: backup pianificato con credenziali della cassaforte

Una volta inizializzati, i task pianificati prelevano le credenziali dalla cassaforte. Qualsiasi output standard fino a 255 caratteri viene riproposto sul dashboard N-sight:

$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

Gli script NinjaOne in esecuzione sull'endpoint possono leggere e scrivere campi personalizzati tramite cmdlet integrati: Ninja-Property-Get <name> restituisce il valore, Ninja-Property-Set <name> <value> lo riscrive. Memorizzi il token Clavitor in un campo personalizzato dell'organizzazione (tipo Secure in modo che sia scrivibile solo dalla console); lo script di installazione lo legge una volta.

Script di installazione: lettura del token da campo personalizzato

In Amministrazione → Libreria → Campi Personalizzati, aggiunga un campo organizzativo clavitorToken di tipo Secure. Quindi esegua uno script di installazione:

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

Azione Personalizzata: chiamata API tramite proxy

Una volta installate, le automazioni chiamano API esterne tramite il proxy — la credenziale non viene mai copiata in una variabile di script:

$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 espone i campi personalizzati e i tag degli asset come variabili di script Platform utilizzando la sintassi a doppie parentesi {{asset_custom_field_<name>}}. Definisca una variabile di script di tipo Platform e la leghi al campo — Syncro sostituisce il valore in un parametro PowerShell al momento dell'esecuzione dello script.

Script Syncro: installazione

Crei un campo personalizzato dell'asset clavitor_token. Nell'editor di script, dichiari una variabile Token di tipo Platform legata a {{asset_custom_field_clavitor_token}}; la passi a un parametro PowerShell nel corpo dello script:

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

Il pannello Aiuto Rapido nella parte inferiore di ogni editor di script Syncro elenca ogni variabile di piattaforma disponibile per il contesto dell'asset, del cliente e del ticket.

Script Syncro: connessione VPN con credenziali della cassaforte

Dopo l'installazione, gli script e le Remediazioni Automatiche risolvono le credenziali dalla cassaforte e le utilizzano direttamente:

$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

Perché questo è importante per gli MSP

Ogni piattaforma RMM memorizza le credenziali da qualche parte — proprietà personalizzate, variabili di sito, campi dati extra, parametri di script. Ogni tecnico con accesso alla console può vederle. Ogni violazione della Sua console RMM espone le credenziali di ogni cliente.

Clavitor sposta le credenziali fuori dall'RMM. L'RMM memorizza solo il token dell'agente (uno per cliente). Il token concede un accesso con ambito limitato alla cassaforte di quel cliente. Una violazione della Sua console RMM espone token, non credenziali — e ogni token è concesso tramite whitelist IP all'endpoint su cui è stato distribuito.

Con ambito limitato per cliente

Ogni cassaforte cliente ha il proprio token agente. L'accesso dei tecnici è controllato dall'ambito, non da "chi può accedere alla console RMM".

Auditato per script

Ogni accesso alle credenziali viene registrato — quale script, quale endpoint, quale credenziale, quando. I Suoi clienti possono vedere la traccia di audit. Lei può dimostrare chi ha avuto accesso a cosa.

Revocato con un clic

Il cliente se ne va? Revoca il suo token agente. Ogni endpoint smette immediatamente di risolvere le credenziali. Nessuna password da ruotare, nessun campo personalizzato da cancellare su 200 macchine.

Smetta di memorizzare le credenziali nel Suo RMM.

Una CLI. Ogni cliente. Ogni credenziale con ambito limitato, auditata e revocabile.