WP Guard Connector
Connects this WordPress site to the WP Guard portal — secure registration by API key, an HMAC-signed channel, heartbeat, desired-state sync, one-click SSO and event streaming. Self-updates from GitHub.
by WP Guard · github.com/vitaliikaplia/wp-guard-connector · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/vitaliikaplia/wp-guard-connector/archive/refs/heads/master.zipReadme
WP Guard Connector
WordPress plugin that connects a site to WP Guard — a central hub for managing access across a fleet of WordPress sites. Pure PHP, no dependencies, WordPress 6.0+.
Project: https://wpguard.top/
What it does
- Secure link to the portal over an HMAC-signed, per-site channel — both requests AND the portal's responses are signed (an mTLS-equivalent). The plugin verifies each response with the per-site secret before acting on it, so a forged reply (e.g. a fake SSO redeem trying to log an attacker into wp-admin) is rejected.
- Policy & user sync — the portal is the source of truth; the plugin applies the desired login policy and manages users and their roles.
- One-click SSO into wp-admin from the portal.
- Event streaming — sign-ins, updates and plugin changes are reported to the portal's activity log; the plugin also reports the available WordPress core version so the portal can alert when a site can update.
- Self-updates from this GitHub repository.
Connect a site
- In the WP Guard portal, add the site and copy its one-time API key.
- Install and activate this plugin.
- Go to Settings → WP Guard, set the portal URL, paste the API key, and click Connect.
Emergency off-switch
The site owner is never locked out. Add this to wp-config.php to fully disable
the connector and restore standard WordPress login:
define( 'WPGUARD_DISABLE', true );
Response-signature enforcement
The plugin verifies the portal's response signatures by default and refuses replies that are unsigned or forged. As an emergency valve only (e.g. a portal-side rollback that temporarily ships unsigned replies), you may accept unsigned responses with:
define( 'WPGUARD_REQUIRE_RESP_SIG', false );
Leave this ON (the default) in normal operation.
Cut-loose grace (forged-rejection hardening)
If the portal starts rejecting the site's syncs with an unsigned 401/404 — a genuine
removal (key rotated, site deleted), or an active attacker forging one to strip enforcement
— the plugin does not drop its cached login policy immediately. It suspends only the
login-page redirect (so the owner is never trapped) but keeps direct-password-login
blocks for a grace window, and restores standard login only once the rejection persists
past the window — or immediately if the portal returns a signed cut-loose. The default
window is one hour; tune it (in seconds) with:
define( 'WPGUARD_CUTLOOSE_GRACE', 3600 ); // 0 = clear immediately (old behaviour)
License
GPL-2.0-or-later