Đăng nhập Miễn phí mãi mãi Bắt đầu

Công cụ MSP

RMM của bạn đã thực hiện các lệnh gọi API.
Clavitor giúp chúng an toàn.

Kỹ thuật viên của bạn sử dụng Datto, N-able và ConnectWise hàng ngày. Mọi tập lệnh, mọi quy trình tự động hóa, mọi tác vụ theo lịch trình đều cần thông tin xác thực. Hiện nay, chúng nằm trong các biến tập lệnh, trường tùy chỉnh hoặc một két an toàn dùng chung mà ai cũng có thể đọc. Proxy và CLI của Clavitor sẽ thay đổi điều này mà không làm gián đoạn quy trình làm việc của bạn.

Mô hình proxy cho RMM

Đặt HTTPS_PROXY trên điểm cuối và các tập lệnh hiện có của bạn sẽ hoạt động mà không cần thay đổi. Proxy chặn các yêu cầu HTTPS gửi đi, phân giải các tham chiếu clavitor:// trong header và chèn thông tin xác thực thực. Tập lệnh của bạn không bao giờ tiếp cận được thông tin mật. Bảng điều khiển RMM của bạn cũng không bao giờ ghi lại nó.

# 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 là ngôn ngữ làm việc hàng ngày của MSP. Cả CLI và proxy đều hoạt động nguyên bản.

CLI — các giá trị đơn lẻ

# 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 — mẫu cấu hình

# 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 — chèn minh bạch

$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 thay thế các trình giữ chỗ trường tùy chỉnh vào các tham số tập lệnh trong thời gian chạy, sử dụng cú pháp {[Atera.<level>.CustomField.<name>]}. Truyền token Clavitor cho một tập lệnh cài đặt một lần dưới dạng tham số; các tập lệnh sau đó sẽ gọi ra CLI trên điểm cuối.

Cài đặt qua hồ sơ Tự động hóa CNTT

Trong thư viện tập lệnh Atera, tạo một tập lệnh PowerShell Cài đặt Clavitor với một tham số. Trong hồ sơ Tự động hóa CNTT thực thi nó, hãy gọi nó bằng trình giữ chỗ trường cấp khách hàng:

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

Atera thay thế giá trị trước khi agent đọc danh sách đối số của nó. Tập lệnh:

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

Phân giải thông tin xác thực khi chạy

Sau khi điểm cuối được đăng ký, mọi tập lệnh Atera sau đó sẽ đọc thông tin xác thực từ két an toàn — Atera chỉ giữ slot 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 thay thế các macro Trường Dữ liệu Bổ sung (EDF) vào các đối số của bước tập lệnh bằng cú pháp {%^el:FieldName^%} (EDF cấp máy tính). CLI được cài đặt thông qua một tập lệnh Automate, tập lệnh này tải xuống tệp nhị phân và thực thi một bước PowerShell với token được truyền dưới dạng tham số — giá trị EDF được thay thế trước khi bước tập lệnh thực thi.

Tập lệnh Automate: cài đặt

Trong trình chỉnh sửa tập lệnh Automate, tạo tập lệnh với hai bước:

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

Macro {%^el:ClavitorToken^%} được thay thế bằng giá trị EDF cấp máy tính trước khi bước PowerShell thực thi. Giữ token dưới 255 ký tự để không vượt quá giới hạn thay thế của LabReplace. Bản thân tập lệnh:

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

Tập lệnh Automate: luân phiên thông tin xác thực miền

Các tập lệnh tiếp theo đọc từ két an toàn và ghi trạng thái trở lại EDF để hiển thị trên 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))
# 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 hiển thị các biến site và toàn cục cho các thành phần PowerShell dưới dạng biến môi trường với tiền tố $env:; các trường do người dùng xác định (UDF) được hiển thị dưới dạng $env:UDF_1 đến $env:UDF_30. Một thành phần cài đặt CLI; mọi thao tác sau đó sẽ đọc từ két an toàn.

Thành phần: cài đặt và khởi tạo

Định nghĩa một biến site ClavitorToken trong bảng điều khiển Datto — nó xuất hiện bên trong thành phần dưới dạng $env:ClavitorToken:

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

Thành phần: giám sát API qua proxy

Các thành phần tiếp theo ghi các tham chiếu clavitor:// vào header của yêu cầu — proxy phân giải chúng trên host. Thông tin xác thực không bao giờ đi vào bộ nhớ của tập lệnh hoặc nhật ký của 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

Các quy trình agent VSA thay thế các macro #variable# vào các đối số PowerShell trong thời gian chạy, sau đó thực thi tập lệnh thông qua nhóm bước executePowershell (executePowerShell64BitSystem, v.v.). Một Trường Tùy chỉnh trên bản ghi agent lưu trữ token Clavitor; quy trình truyền nó cho quá trình khởi tạo qua stdin.

Quy trình agent: cài đặt

Thêm một Trường Tùy chỉnh agent ClavitorToken (Audit → Edit Profile → Custom Fields), sau đó xây dựng một quy trình với hai bước:

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

Macro #vAgentConfiguration.ClavitorToken# được thay thế bằng giá trị Trường Tùy chỉnh trước khi VSA thực thi lệnh — token không xuất hiện trong lịch sử quy trình của VSA.

Quy trình agent: luân phiên thông tin xác thực đặc quyền

Sau khi khởi tạo, bất kỳ quy trình nào sau đó đều đọc từ két an toàn:

# 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

Đơn vị tự động hóa là AMP (Chính sách Quản lý Tự động hóa) — một chính sách dựa trên PowerShell được xây dựng trong Trình quản lý Tự động hóa. Thuộc tính Tùy chỉnh ở cấp tổ chức, khách hàng hoặc site có thể được truyền cho đối tượng Run PowerShell Script dưới dạng Tham số Đầu vào.

AMP: cài đặt với Thuộc tính Tùy chỉnh làm đầu vào

Thêm một Thuộc tính Tùy chỉnh ClavitorToken ở cấp khách hàng (Quản trị → Thuộc tính Tùy chỉnh). Trong Trình quản lý Tự động hóa, tạo một AMP có đối tượng Run PowerShell Script liên kết Tham số Đầu vào Token với Thuộc tính Tùy chỉnh đó. Tập lệnh:

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

Giá trị Thuộc tính Tùy chỉnh được truyền vào dưới dạng $Token. Nó không bao giờ xuất hiện trong XML được xuất của AMP hoặc trong nhật ký kiểm toán của N-central.

Kho Lưu trữ Tập lệnh: lấy thông tin xác thực trong thời gian chạy

Đối với các tập lệnh ad-hoc được đẩy qua Kho Lưu trữ Tập lệnh (Cấu hình → Kho Lưu trữ → Tập lệnh/Phần mềm), điểm cuối đã được khởi tạo — tập lệnh chỉ cần gọi 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 (trước đây là SolarWinds RMM) chạy cùng một công cụ Quản lý Tự động hóa như N-central, cộng với Trình quản lý Tập lệnh cho các loại tập lệnh .ps1, AMP, batch và các loại khác. Mô hình này tương tự N-central: AMP với Tham số Đầu vào cho token, sau đó mọi thứ khác sẽ được phân giải trong thời gian chạy.

Trình quản lý Tập lệnh: cài đặt qua Tác vụ Tự động hóa

Tải lên một Install-Clavitor.ps1 vào Cài đặt → Trình quản lý Tập lệnh với một tham số cho token. Đính kèm nó làm Tác vụ Tự động hóa trên điểm cuối; truyền token làm đối số tập lệnh từ cài đặt cấp thiết bị:

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

Tác vụ Tự động hóa: sao lưu theo lịch trình với thông tin xác thực trong két an toàn

Sau khi khởi tạo, các tác vụ theo lịch trình lấy thông tin xác thực từ két an toàn. Bất kỳ đầu ra chuẩn nào lên đến 255 ký tự sẽ hiển thị trở lại 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

Các tập lệnh NinjaOne chạy trên điểm cuối có thể đọc và ghi các trường tùy chỉnh thông qua các cmdlet tích hợp: Ninja-Property-Get <name> trả về giá trị, Ninja-Property-Set <name> <value> ghi lại nó. Lưu trữ token Clavitor trong một trường tùy chỉnh của tổ chức (loại Bảo mật để chỉ ghi từ bảng điều khiển); tập lệnh cài đặt đọc nó một lần.

Tập lệnh cài đặt: đọc token từ trường tùy chỉnh

Trong Quản trị → Thư viện → Trường Tùy chỉnh, thêm một trường tổ chức clavitorToken loại Bảo mật. Sau đó chạy một tập lệnh cài đặt:

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

Hành động Tùy chỉnh: gọi API qua proxy

Sau khi cài đặt, các quy trình tự động hóa gọi các API bên ngoài qua proxy — thông tin xác thực không bao giờ được sao chép vào biến tập lệnh:

$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 hiển thị các trường tùy chỉnh và thẻ tài sản dưới dạng biến tập lệnh Nền tảng bằng cú pháp dấu ngoặc nhọn kép {{asset_custom_field_<name>}}. Định nghĩa một biến tập lệnh loại Nền tảng và liên kết nó với trường — Syncro thay thế giá trị vào một tham số PowerShell khi chạy tập lệnh.

Tập lệnh Syncro: cài đặt

Tạo một trường tùy chỉnh tài sản clavitor_token. Trong trình chỉnh sửa tập lệnh, khai báo một biến Token loại Nền tảng được liên kết với {{asset_custom_field_clavitor_token}}; truyền nó vào một tham số PowerShell trong phần thân tập lệnh:

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

Bảng Trợ giúp Nhanh ở cuối mỗi trình chỉnh sửa tập lệnh Syncro liệt kê mọi biến nền tảng có sẵn cho ngữ cảnh tài sản, khách hàng và ticket.

Tập lệnh Syncro: kết nối VPN với thông tin xác thực trong két an toàn

Sau khi cài đặt, các tập lệnh và Quy trình Khắc phục Tự động phân giải thông tin xác thực từ két an toàn và sử dụng chúng trực tiếp:

$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

Tại sao điều này lại quan trọng đối với MSP

Mọi nền tảng RMM đều lưu trữ thông tin xác thực ở đâu đó — thuộc tính tùy chỉnh, biến site, trường dữ liệu bổ sung, tham số tập lệnh. Mọi kỹ thuật viên có quyền truy cập bảng điều khiển đều có thể xem chúng. Mọi sự cố xâm phạm bảng điều khiển RMM của bạn sẽ làm lộ thông tin xác thực của mọi khách hàng.

Clavitor di chuyển thông tin xác thực ra khỏi RMM. RMM chỉ lưu trữ token agent (mỗi khách hàng một token). Token cấp quyền truy cập theo phạm vi cho két an toàn của khách hàng đó. Sự cố xâm phạm bảng điều khiển RMM của bạn sẽ làm lộ token, không phải thông tin xác thực — và mỗi token được whitelist theo IP vào điểm cuối mà nó được triển khai.

Phạm vi cho từng khách hàng

Mỗi két an toàn của khách hàng có token agent riêng. Quyền truy cập của kỹ thuật viên được kiểm soát theo phạm vi, không phải theo "ai có thể đăng nhập vào bảng điều khiển RMM."

Kiểm toán theo từng tập lệnh

Mọi truy cập thông tin xác thực đều được ghi lại — tập lệnh nào, điểm cuối nào, thông tin xác thực nào, khi nào. Khách hàng của bạn có thể xem dấu vết kiểm toán. Bạn có thể chứng minh ai đã truy cập cái gì.

Thu hồi chỉ bằng một cú nhấp chuột

Khách hàng rời đi? Thu hồi token agent của họ. Mọi điểm cuối ngừng phân giải thông tin xác thực ngay lập tức. Không cần luân phiên mật khẩu, không cần xóa thuộc tính tùy chỉnh trên 200 máy.

Ngừng lưu trữ thông tin xác thực trong RMM của bạn.

Một CLI. Mọi khách hàng. Mọi thông tin xác thực được giới hạn phạm vi, kiểm toán và có thể thu hồi.