API di WP Guardian¶
Introduzione¶
Questa sezione è rivolta ai partner Plesk o cPanel che desiderano vendere VPS con WP Guardian installato e concesso in licenza. Di seguito forniamo una procedura dettagliata ed esempi delle chiamate API necessarie per l'installazione e la concessione in licenza di WP Guardian sul VPS di un cliente.
Prerequisiti¶
In qualità di partner Plesk o cPanel, devi avere accesso alle API corrispondenti: Key Administrator per Plesk e Manage2 per cPanel, rispettivamente.
Avere accesso significa disporre delle credenziali necessarie per utilizzare le API, ovvero le credenziali di base $AUTH_TOKEN per Key Administrator e la coppia login/password per Manage2.
Nota
Se non disponi delle credenziali sopracitate, contatta il tuo account manager di Plesk o cPanel.
Algoritmo generale e schemi dettagliati¶
La procedura inizia con l'ordine da parte del cliente (passaggio 1) e termina con la consegna al cliente di un VPS pronto all'uso (passaggio 6). Tra i due, sono previsti i seguenti passaggi:
(2) Creazione di un utente WP Guardian.
(3) Creazione di una licenza di WP Guardian.
(4) Ottenimento dello snippet della stringa di connessione.
(5) Esecuzione dello snippet della stringa di connessione sul VPS del cliente.
A eccezione del passaggio 3, tutti i passaggi sopra elencati sono simili sia per Key Administrator sia per Manage2. Pertanto, ci saranno due sezioni separate che descrivono come creare una licenza di WP Guardian con Key Administrator e Manage2.
Per aiutarti a comprendere meglio le differenze tra Key Administrator e Manage2, qui sotto puoi trovare gli schemi dettagliati relativi a ciascuna di queste API. Da qui in poi, inoltre, la spiegazione utilizza la numerazione indicata in tali schemi (ad esempio, Richiesta API 2.1 o Risposta 4.2). Se a un certo punto non riesci più a seguire il testo, fai riferimento agli schemi sottostanti per avere chiarimenti.
2. Creazione di un utente WP Guardian¶
Per creare un utente tramite l'API di WP Guardian, è necessario prima ottenere un token di gestione. Per farlo, contatta un rappresentante commerciale di WP Guardian o il team di assistenza clienti di Plesk.
Una volta ottenuto il token di gestione, usa il seguente modello per inviare la richiesta aggiungendo il token all'intestazione Authorization:
Richiesta 2.1¶
POST https://app.wpguardian.io/api/v1/security-dashboard/management/users HTTP/1.1
Authorization: Bearer $MANAGEMENT_TOKEN
Content-Type: application/json
{
"email": "john.doe@example.com",
"firstName": "John",
"lastName": "Doe"
}
Se Richiesta 2.1 ha esito positivo, riceverai una risposta secondo il seguente modello:
Risposta 2.3¶
HTTP/1.1 201 Created
{
"data": {
"userGuid": "1092a1a6-a716-400d-aba5-ad853a330561",
"teamGuid": "1247c8bc-6d5d-41f6-9bda-007a6e6fb20c",
"userToken": "368ded8f-883a-4759-9f28-8906c3e5136c"
}
}
La risposta contiene tre valori. Salvane due (teamGuid e userToken) per usarli in seguito:
teamGuidviene utilizzato per aggiornare o terminare una licenza di WP Guardian.userTokenconsente di connettere più server all'account dell'utente.
Se Richiesta 2.1 non risulta corretta, riceverai la seguente risposta di errore:
Risposta di errore: risposta token non valido¶
HTTP/1.1 401 Unauthorized
Se un utente con le informazioni inviate esiste già, riceverai la seguente risposta di errore:
Risposta di errore: risposta utente già esistente¶
HTTP/1.1 409 Conflict
3. Creazione di una licenza di WP Guardian (Key Administrator)¶
Nota
Ogni utente WP Guardian può avere una sola licenza attiva alla volta.
È possibile creare una licenza per un utente WP Guardian tramite la Partner API di Key Administrator.
Per creare una licenza, invia la richiesta secondo il seguente modello:
Richiesta 3.1¶
POST https://api.central.plesk.com/30/keys?return-key-state=yes
Authorization: Basic: $AUTH_TOKEN
Content-Type: application/json
{
"activationInfo": { "uid": "1247c8bc-6d5d-41f6-9bda-007a6e6fb20c" },
"items": [
{
"item": "WPG-PLSK-1-1M"
}
]
}
dove
$AUTH_TOKENè un token necessario per accedere alla Partner API di Key Administrator. Ogni partner di Plesk ne ha uno.uidinactivationInfocorrisponde ateamGuidda Risposta 2.3.-
iteminitemsè il tipo di licenza, e può avere uno dei seguenti valori: -
WPG-PLSK-1-1M WPG-PLSK-5-1MWPG-PLSK-10-1MWPG-PLSK-30-1MWPG-PLSK-50-1M
!!! nota
Per visualizzare l'elenco di tutti i tipi di licenza di WP Guardian disponibili, fai riferimento alla sezione ["Costanti Partner API 3.0"](https://docs.plesk.com/en-US/obsidian/partner-api-3.0/partner-api-30-constants.77835/){target=_blank} (`"category":"Chiavi di WP Guardian"`).
Se Richiesta 3.1 ha esito positivo, riceverai una risposta secondo il seguente modello:
Risposta 3.4¶
HTTP/1.1 201 Created
{
"ownerId": "700540512",
"keyIdentifiers": {
"keyId": 17654729,
"keyNumber": "WPG.17654729.0000",
"activationCode": "AB1234-CD5678-EF9012-GH123-IJ456",
"activationLink": "https://app.wpguardian.io/licensing/activate-license?code=AB1234-CD5678-EF9012-GH123-IJ456&product=WP+Guardian+1+Site"
},
"parentKeyIdentifiers": null,
"activationInfo": {
"uid": "1247c8bc-6d5d-41f6-9bda-007a6e6fb20c",
"activated": true
},
"ipAddressBinding": null,
"nickname": "",
"productConfigurationId": null,
"items": [
{
"externalId": null,
"item": "WPG-PLSK-1-1M"
}
],
"creationDate": "2024-09-12T10:34:11.741Z",
"lastModificationDate": "2024-09-12T10:34:11.763Z",
"updateDate": "2024-10-12T00:00:00.000Z",
"expirationDate": "2024-10-22T00:00:00.000Z",
"susExpirationDate": null,
"susStatus": null,
"supportExpirationDate": null,
"supportStatus": null,
"status": "ACTIVE",
"terminated": false,
"suspended": false,
"ownerSuspended": false,
"autoRenew": true,
"restrictIPBinding": false,
"frauds": [],
"lastReportingDate": null,
"lastReportingIp": null,
"lastReportingOs": null,
"childKeyIdentifiers": [],
"overridingKeyIdentifiers": null
}
Se Richiesta 3.1 non risulta corretta, riceverai la seguente risposta di errore:
Risposta di errore: risposta token non valido¶
HTTP/1.1 401
Content-Type: application/json
Content-Length: 77
{"code":"401","type":"6011","message":"The request requires authentication."}
Se l'utente ha già una licenza attiva, riceverai la seguente risposta di errore:
Risposta di errore: errore terze parti¶
HTTP/1.1 404
Content-Type: application/json
{"code":"404","type":"6101","message":"Third party server returned an error"}
3. Creazione di una licenza di WP Guardian (Manage2)¶
A differenza di Key Administrator, Manage2 non supporta la creazione di una licenza già associata a un utente specifico. Per prima cosa, si crea una licenza non attiva, si genera il link di attivazione per la licenza e infine lo si invia al cliente. Quando quest'ultimo apre il link, la licenza diventa attiva e vincolata al cliente.
Vediamo come procedere.
Passaggio 1. Crea una licenza di WP Guardian non attiva inviando la richiesta API secondo il seguente modello:
Richiesta 3.1¶
GET https://manage2.cpanel.net/XMLlicenseAdd.cgi?output=json&packageid=P999994429&sites==500
Authorization Basic: login:password
dove
login:passwordcorrisponde alla coppia login/password necessaria per accedere all'API di Manage2. Ogni partner di cPanel ne è dotato.packageIDcorrisponde al tipo di licenza, e può avere uno dei seguenti valori:- "P999994429": "WP Guardian 500 Sites"
- "P999994429": "WP Guardian 1000 Sites"
- "P999994441": "WP Guardian 10000+ Sites Pay As You Go"
- il parametro
sitesdeve corrispondere al tipo di licenza. Ad esempio, se il tipo di licenza èP999994429, il parametrositesdeve essere 500, e così via.
!!! nota
Per vedere l'elenco di tutti i tipi di licenza di WP Guardian disponibili, [usa l'API di Manage2](https://docs.cpanel.net/manage2/api/manage2-api-list-package-information/){target=_blank}.
!!! nota
[L'output dell'API di Manage2](https://docs.cpanel.net/manage2/api/manage2-api-list-package-information/){target=_blank} contiene due prodotti: "WP Guardian N Sites" e "WP Guardian (cPanel Addon) N Sites Pack". A te occorre il primo.
Se Richiesta 3.1 ha esito positivo, riceverai una risposta secondo il seguente modello:
Risposta 3.2¶
{
"monthly_price": "21.34",
"status": 1,
"yearly": 0,
"reason": "Activated EXAMPLECOMPANY license on in the 'example' group.",
"price": "0.00",
"promoinfo": "",
"licenseid": "17654729"
}
Dalla risposta, è necessario copiare il valore licenseid per utilizzarlo in seguito.
Passaggio 2. Crea un link di attivazione inviando la richiesta API secondo il seguente modello:
Richiesta 3.3¶
{
GET https://manage2.cpanel.net/XMLlicenseInfo.cgi?output=json&liscid=17654729
Authorization Basic: login:password
}
dove liscid corrisponde a licenseid da Risposta 3.2.
Se Richiesta 3.3 ha esito positivo, riceverai una risposta secondo il seguente modello:
Risposta 3.4¶
{
"licenses": {
"17654729": {
"accounts": 1,
...
"activation_link": "https://app.wpguardian.io/licensing/activate-license?code=A00300-GEX111-577J59-A6AG72-AEKX66&product=WP+Guardian+500+Sites ",
...
}
},
"reason": "OK",
"status": 1,
"version": 0.7
}
Passaggio 3. Salva il link di attivazione ricevuto in Risposta 3.4 e invialo al cliente. Assicurati che il cliente apra il link. L'apertura del link attiva la licenza e la vincola al cliente.
4. Ottenimento dello snippet della stringa di connessione¶
Lo snippet della stringa di connessione è uno script che devi ottenere dall'API di WP Guardian. Eseguendo lo snippet sul server di un cliente, lo si connette a WP Guardian.
Per creare lo snippet, invia la richiesta API secondo il seguente modello:
Richiesta 4.1¶
GET https://app.wpguardian.io/api/v1/security-dashboard/connection-snippet
Authorization: Bearer $USER_TOKEN
Content-Type: application/json
dove $USER_TOKEN corrisponde a userToken da Risposta 2.3.
Se la richiesta API ha esito positivo, riceverai una risposta secondo il seguente modello:
Risposta 4.2¶
{
"data": {
"expireAt": "2024-09-24T17:18:51.697Z",
"snippet": "<script to run on a client's VPS>"
}
}
5. Esecuzione dello snippet sul VPS di un cliente¶
L'ultimo passaggio consiste nell'eseguire sul VPS del cliente lo snippet della stringa di connessione ricevuto durante il passaggio precedente. Una volta fatto ciò, il VPS con WP Guardian è pronto all'uso. Complimenti!
Nota
Lo snippet connette automaticamente il VPS di un cliente a WP Guardian.
Se, per qualsivoglia motivo, lo snippet non funziona, puoi risolvere il problema [connettendo manualmente un VPS a WP Guardian]( https://docs.wpguardian.io/index.html#connecting-servers-to-wp-guardian){target=_blank}.