API WP Guardian¶
Introduction¶
Cette section s'adresse aux partenaires Plesk ou cPanel qui souhaitent vendre des VPS avec WP Guardian installé et sous licence. Nous fournissons une procédure étape par étape et des exemples d'appels API nécessaires à l'installation et à l'obtention de la licence WP Guardian sur le VPS d'un client.
Prérequis¶
En tant que partenaire Plesk ou cPanel, vous devez avoir accès à leurs API respectives : Key Administrator pour Plesk et Manage2 pour cPanel.
L'accès signifie que vous disposez des informations d'identification nécessaires pour utiliser les API, soit simplement $AUTH_TOKEN pour Key Administrator et la paire identifiant/mot de passe pour Manage2.
Remarque
Si vous ne disposez pas des identifiants mentionnés ci-dessus, veuillez contacter votre gestionnaire de compte Plesk ou cPanel.
Algorithme global et schémas détaillés¶
La procédure commence par la passation d'une commande par un client (étape 1) et termine avec la remise à la clientèle d'un VPS prêt à l'emploi (étape 6). En attendant, vous devez suivre les étapes suivantes :
(2) Créer un utilisateur WP Guardian.
(3) Créer une licence WP Guardian.
(4) Obtenir le snippet de la chaîne de connexion.
(5) Exécuter le snippet de chaîne de connexion sur le VPS du client.
Toutes les étapes ci-dessus sont similaires entre Key Administrator et Manage2, sauf l'étape 3. Par conséquent, vous trouverez deux sections séparées décrivant comment créer une licence WP Guardian avec Key Administrator et Manage2.
Pour vous aider à mieux comprendre les différences entre Key Administrator et Manage2, nous joignons le schéma détaillé de chacune de ces API. À partir de là, nous utilisons également la numérotation indiquée sur ces schémas (par exemple, API Request 2.1 ou Response 4.2). Si le texte vous semble difficile à suivre, consultez les schémas ci-dessous pour plus de clarté.
2. Créer un utilisateur WP Guardian¶
Pour créer un utilisateur via l'API WP Guardian, vous devez d'abord obtenir un jeton de gestion. Pour ce faire, contactez un représentant commercial de WP Guardian ou l'équipe Plesk Customer Success.
Une fois que vous avez obtenu le jeton de gestion, envoyez la requête avec le modèle suivant en ajoutant le jeton à l'en-tête Authorization :
Request 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"
}
Si l'étape Request 2.1 a été validée, vous obtiendrez une réponse similaire à ce modèle :
Response 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 réponse contient trois valeurs. Enregistrez-en deux (teamGuid et userToken) pour les utiliser ultérieurement :
- La valeur
teamGuidest utilisée pour mettre à niveau ou résilier une licence WP Guardian. - La valeur
userTokenpermet de connecter davantage de serveurs au compte de l'utilisateur.
Si Request 2.1 est incorrect, vous recevrez la réponse d'erreur suivante :
Réponse d'erreur : réponse de jeton non valide¶
HTTP/1.1 401 Unauthorized
Si l'utilisateur associé aux informations soumises existe déjà, vous recevrez la réponse d'erreur suivante :
Réponse d'erreur : l'utilisateur existe déjà.¶
HTTP/1.1 409 Conflict
3. Création d'une licence WP Guardian (Key Administrator)¶
Remarque
Un utilisateur de WP Guardian ne peut avoir qu'une seule licence active à la fois.
Vous créez une licence pour un utilisateur WP Guardian via l'API Key Administrator Partner.
Pour créer une licence, envoyez une demande suivant le modèle suivant :
Request 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"
}
]
}
sachant que
$AUTH_TOKENest un jeton nécessaire pour accéder à l'API Key Administrator Partner. Chaque partenaire Plesk dispose de ce jeton.uiddansactivationInfocorrespond àteamGuidpour Response 2.3.-
itemdansitemscorrespond au type de licence et peut prendre l'une des valeurs suivantes : -
WPG-PLSK-1-1M WPG-PLSK-5-1MWPG-PLSK-10-1MWPG-PLSK-30-1MWPG-PLSK-50-1M
!!! remarque
Pour voir la liste de tous les types de licences WP Guardian disponibles, consultez la section ["Constantes de Partner API 3.0"](https://docs.plesk.com/en-US/obsidian/partner-api-3.0/partner-api-30-constants.77835/){target=_blank} (`"category":"WP Guardian Keys"`).
Si l'étape Request 3.1 a été validée, vous obtiendrez une réponse similaire à ce modèle :
Response 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
}
Si Request 3.1 est incorrect, vous recevrez la réponse d'erreur suivante :
Réponse d'erreur : réponse de jeton non valide¶
HTTP/1.1 401
Content-Type: application/json
Content-Length: 77
{"code":"401","type":"6011","message":"The request requires authentication."}
Si l'utilisateur possède déjà une licence active, vous recevrez la réponse d'erreur suivante :
Réponse d'erreur : erreur tierce¶
HTTP/1.1 404
Content-Type: application/json
{"code":"404","type":"6101","message":"Third party server returned an error"}
3. Création d'une licence WP Guardian (Manage2)¶
Contrairement à Key Administrator, Manage2 ne prend pas en charge la création d'une licence déjà associée à un utilisateur spécifique. Vous devez créer d'abord une licence inactive, puis générer le lien d'activation de cette licence. Ensuite, envoyez ce lien au client. Une fois que le client ouvre le lien, la licence devient active et est associée au client.
Voyons comment procéder étape par étape.
Étape 1. Créez une licence WP Guardian inactive en envoyant une requête API selon le modèle suivant :
Request 3.1¶
GET https://manage2.cpanel.net/XMLlicenseAdd.cgi?output=json&packageid=P999994429&sites==500
Authorization Basic: login:password
sachant que
login:passwordest la paire identifiant/mot de passe nécessaire pour accéder à l'API Manage2. Chaque partenaire cPanel dispose de ce jeton.packageIDcorrespond au type de licence et peut prendre l'une des valeurs suivantes :- "P999994429": "WP Guardian 500 Sites"
- "P999994433": "WP Guardian 1000 Sites"
- "P999994441": "WP Guardian 10000+ Sites Pay As You Go"
- Le paramètre
sitesdoit correspondre au type de licence. Par exemple, si le type de licence estP999994429, alors le paramètresitesest 500, etc.
!!! remarque
Pour voir la liste de tous les types de licences WP Guardian disponibles, [utilisez l'API Manage2](https://docs.cpanel.net/manage2/api/manage2-api-list-package-information/){target=_blank}.
!!! remarque
[La sortie de l'API Manage2](https://docs.cpanel.net/manage2/api/manage2-api-list-package-information/){target=_blank} contient deux produits : "WP Guardian N Sites" et "WP Guardian (extension cPanel) N Sites Pack". Vous avez besoin du premier.
Si l'étape Request 3.1 a été validée, vous obtiendrez une réponse similaire à ce modèle :
Response 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"
}
Vous devez copier la valeur licenseid de la réponse pour l'utiliser ultérieurement.
Étape 2. Créez une licence WP Guardian inactive en envoyant une requête API selon le modèle suivant :
Request 3.3¶
{
GET https://manage2.cpanel.net/XMLlicenseInfo.cgi?output=json&liscid=17654729
Authorization Basic: login:password
}
sachant que liscid correspond à licenseid de la Response 3.2.
Si l'étape Request 3.3 a été validée, vous obtiendrez une réponse similaire à ce modèle :
Response 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
}
Étape 3. Enregistrez le lien d'activation reçu dans Response 3.4, puis envoyez-le au client. Assurez-vous que le client ouvre le lien. Ouvrir le lien active la licence et l'associe au client.
4. Obtenir le snippet de la chaîne de connexion¶
Le snippet de la chaîne de connexion est un script que vous devez obtenir de l'API WP Guardian. En exécutant le snippet sur le serveur d'un client, vous le connectez à WP Guardian.
Pour obtenir le snippet, envoyez une requête API selon le modèle suivant :
Request 4.1¶
GET https://app.wpguardian.io/api/v1/security-dashboard/connection-snippet
Authorization: Bearer $USER_TOKEN
Content-Type: application/json
$USER_TOKEN correspond à userToken de la Response 2.3.
Si la requête API est correcte, vous obtiendrez une réponse conforme au modèle suivant :
Response 4.2¶
{
"data": {
"expireAt": "2024-09-24T17:18:51.697Z",
"snippet": "<script to run on a client's VPS>"
}
}
5. Exécution du snippet sur le VPS d'un client¶
La dernière étape consiste à exécuter le snippet de chaîne de connexion reçu lors de l'étape précédente sur le VPS du client. Votre VPS avec WP Guardian est désormais prêt. Félicitations !
Remarque
Ce snippet connecte automatiquement le VPS d'un client à WP Guardian.
Si, pour une raison quelconque, le snippet échoue, vous pouvez résoudre le problème en [connectant manuellement un VPS à WP Guardian]( https://docs.wpguardian.io/index.html#connecting-servers-to-wp-guardian){target=_blank}.