WP Guardian API¶
はじめに¶
このトピックは、WP Guardian がインストールされライセンスが付与された VPS を販売したい Plesk パートナーまたは cPanel パートナーを対象としています。 クライアントの VPS に WP Guardian をインストールしてライセンスを付与するために必要な手順と API 呼び出しの例を示します。
前提条件¶
Plesk または cPanel のパートナーはそれぞれ、対応する API にアクセスできる必要があります: Plesk の場合は Key Administrator、cPanel の場合は Manage2。
アクセス権があるということは、API を使用するために必要な認証情報 (Key Administrator の場合は基本の $AUTH_TOKEN、Manage2 の場合はログイン/パスワードのペア) があることを意味します。
注
上記の認証情報がない場合は、Plesk または cPanel のアカウント マネージャにお問い合わせください。
全体的なアルゴリズムと詳細なスキーム¶
手順は、クライアントが注文するところ (ステップ 1) から始まり、使用準備のできた VPS をクライアントに提供することで終了します (ステップ 6)。 その間に、次の手順を実行する必要があります。
(2) WP Guardian ユーザーを作成する。
(3) WP Guardian ライセンスを作成する。
(4) 接続文字列スニペットを取得する。
(5) クライアントの VPS で接続文字列スニペットを実行する。
上記のすべての手順は、ステップ 3 を除けば Key Administrator と Manage2 で類似しています。 そのため、Key Administrator と Manage2 を使用して WP Guardian ライセンスを作成する方法について、2 つの別々のセクションで示します。
Key Administrator と Manage2 の違いをよりよく理解できるよう、これらの API の詳細な図を用意しています。 それ以降は、これらの図に示されている番号も使用します (たとえば、API リクエスト 2.1 や応答 4.2)。 テキストの内容が理解できない場合は、以下の図を参照して理解を深めてください。
2. WP Guardian ユーザーを作成する¶
WP Guardian API 経由でユーザーを作成するには、まず管理トークンを取得する必要があります。 そのためには、WP Guardian の営業担当者または Plesk カスタマーサクセスチームにお問い合わせください。
管理トークンを取得したら、Authorization ヘッダにトークンを追加して次のパターンのリクエストを送信します。
リクエスト 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"
}
リクエスト 2.1 が成功すると、次のパターンの応答が返されます。
応答 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"
}
}
応答には 3 つの値が含まれます。 後で使用するために、そのうちの 2 つ (teamGuid と userToken) を保存します。
teamGuidは、WP Guardian ライセンスをアップグレードまたは終了するために使用されます。userTokenは、より多くのサーバをユーザーのアカウントに接続するのに役立ちます。
リクエスト 2.1 が正しくない場合は、次のエラー応答が返されます。
エラー応答: 無効なトークン応答¶
HTTP/1.1 401 Unauthorized
送信された情報を持つユーザーが既に存在する場合は、次のエラー応答が返されます。
エラー応答: ユーザーは既に存在します¶
HTTP/1.1 409 Conflict
3. WP Guardian ライセンスを作成する (Key Administrator)¶
注
各 WP Guardian ユーザーは、一度に 1 つのアクティブライセンスのみを持つことができます。
WP Guardian ユーザーのライセンスは、Key Administrator パートナー API を介して作成します。
ライセンスを作成するには、次のパターンのリクエストを送信します。
リクエスト 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"
}
]
}
ここで
$AUTH_TOKENは、Key Administrator パートナー API にアクセスするために必要なトークンです。 これは各 Plesk パートナーが持っています。activationInfoのuidは、応答 2.3 のteamGuidです。-
itemsのitemはライセンスの種類であり、次のいずれかになります。 -
WPG-PLSK-1-1M WPG-PLSK-5-1MWPG-PLSK-10-1MWPG-PLSK-30-1MWPG-PLSK-50-1M
!!! 注
利用可能なすべての WP Guardian ライセンスの種類のリストを確認するには、["Partner API 3.0 Constants" セクション](https://docs.plesk.com/en-US/obsidian/partner-api-3.0/partner-api-30-constants.77835/){target=_blank} (`"category":"WP Guardian Keys"`) を参照してください。
リクエスト 3.1 が成功すると、次のパターンの応答が返されます。
応答 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
}
リクエスト 3.1 が正しくない場合は、次のエラー応答が返されます。
エラー応答: 無効なトークン応答¶
HTTP/1.1 401
Content-Type: application/json
Content-Length: 77
{"code":"401","type":"6011","message":"The request requires authentication."}
ユーザーが既にアクティブなライセンスを持っている場合は、次のエラー応答が返されます。
エラー応答: サードパーティエラー¶
HTTP/1.1 404
Content-Type: application/json
{"code":"404","type":"6101","message":"Third party server returned an error"}
3. WP Guardian ライセンスを作成する (Manage2)¶
Key Administrator とは異なり、Manage2 は特定のユーザーにバインドされたライセンスの作成をサポートしていません。 まず非アクティブなライセンスを作成し、ライセンスのアクティベーションリンクを生成してから、そのリンクをクライアントに送信します。 クライアントがリンクを開くと、ライセンスがアクティブになり、クライアントにバインドされます。
各ステップをどのように実行するかを見てみましょう。
ステップ 1. 次のパターンの API リクエストを送信して、非アクティブな WP Guardian ライセンスを作成します。
リクエスト 3.1¶
GET https://manage2.cpanel.net/XMLlicenseAdd.cgi?output=json&packageid=P999994429&sites==500
Authorization Basic: login:password
ここで
login:passwordは、Manage2 API にアクセスするために必要なログイン/パスワードのペアです。 これは各 cPanel パートナーが持っています。packageIDはライセンスの種類であり、次のいずれかになります。- "P999994429": "WP Guardian 500 Sites"
- "P999994433": "WP Guardian 1000 Sites"
- "P999994441": "WP Guardian 10000+ Sites Pay As You Go"
sitesパラメータはライセンスの種類と一致する必要があります。 たとえば、ライセンスの種類がP999994429の場合、sitesパラメータは 500 になります。
!!! 注
利用可能なすべての WP Guardian ライセンスの種類のリストを確認するには、[Manage2 API](https://docs.cpanel.net/manage2/api/manage2-api-list-package-information/){target=_blank} を使用します。
!!! 注
[Manage2 API の出力](https://docs.cpanel.net/manage2/api/manage2-api-list-package-information/){target=_blank}には、「WP Guardian N Sites」と「WP Guardian (cPanel Addon) N Sites Pack」という 2 つの製品が含まれていますが、必要なのは前者です。
リクエスト 3.1 が成功すると、次のパターンの応答が返されます。
応答 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"
}
後で使用するために、応答から licenseid 値をコピーする必要があります。
ステップ 2. 次のパターンの API リクエストを送信してアクティベーションリンクを生成します。
リクエスト 3.3¶
{
GET https://manage2.cpanel.net/XMLlicenseInfo.cgi?output=json&liscid=17654729
Authorization Basic: login:password
}
ここで、liscid は応答 3.2 の licenseid です。
リクエスト 3.3 が成功すると、次のパターンの応答が返されます。
応答 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
}
ステップ 3. 応答 3.4 で受信したアクティベーションリンクを保存し、クライアントに送信します。 クライアントにリンクを必ず開いてもらう必要があります。 リンクを開くと、ライセンスがアクティブ化され、クライアントにバインドされます。
4. 接続文字列スニペットを取得する¶
接続文字列スニペットは、WP Guardian API から取得する必要があるスクリプトです。 クライアントのサーバ上でスニペットを実行すると、WP Guardian に接続されます。
スニペットを取得するには、次のパターンの API リクエストを送信します。
リクエスト 4.1¶
GET https://app.wpguardian.io/api/v1/security-dashboard/connection-snippet
Authorization: Bearer $USER_TOKEN
Content-Type: application/json
ここで、$USER_TOKEN は応答 2.3 の userToken です。
API リクエストが正しければ、次のパターンの応答が返されます。
応答 4.2¶
{
"data": {
"expireAt": "2024-09-24T17:18:51.697Z",
"snippet": "<script to run on a client's VPS>"
}
}
5. クライアントの VPS でスニペットを実行する¶
最後のステップは、前のステップで受信した接続文字列スニペットをクライアントの VPS で実行することです。 これが完了すると、WP Guardian が搭載された VPS の準備は完了です。 おつかれさまでした。
注
スニペットは、クライアントの VPS を WP Guardian に自動的に接続します。
何らかの理由でスニペットが失敗した場合は、[VPS を WP Guardian に手動で接続]( https://docs.wpguardian.io/index.html#connecting-servers-to-wp-guardian){target=_blank} することで問題を解決できます。