ICC.gg Sign-In for OpenID Connect releases
A WordPress plugin that provides SSO (Single Sign-On) authentication against an OpenID Connect OAuth2 Identity Provider using Authorization Code Flow.
by ivancarlosti · github.com/ivancarlosti/wordpressiccopenidclient · website
Install
The author publishes release zips, so WP-CLI can install straight from GitHub:
wp plugin install https://github.com/ivancarlosti/wordpressiccopenidclient/releases/download/v5.4.1/icc-gg-sign-in-openid-connect.zipReadme
ICC.gg Sign-In for OpenID Connect
A WordPress plugin that provides SSO (Single Sign-On) authentication against an OpenID Connect OAuth2 Identity Provider using Authorization Code Flow.
Features
- Auto Login (SSO) — Automatically redirect users to the Identity Provider for authentication
- Login Button — Add a "Login with OpenID Connect" button to the WordPress login form
- Button-Only Login Mode — Show the OpenID Connect button while hiding the WordPress username/password form
- Login Button Logo — Upload a logo from the WordPress media library to display before the button text
- JWT Signature Verification — JWKS-based JWT validation to prevent token forgery
- User Auto-Creation — Automatically create WordPress users from IDP claims
- Link Existing Users — Link existing WordPress accounts to IDP identities
- Email Domain Restriction 🔒 — Restrict login to specific email domains (e.g.,
company.com) or full email addresses (e.g.,specificuser@gmail.com). Leave empty to allow all - Token Refresh — Automatic access token refresh for supported IDPs
- End Session Support — Redirect to IDP logout endpoint on WordPress logout
- Discovery Document Import — Auto-populate settings from
.well-known/openid-configuration - Shortcodes —
[icc_gg_sign_in_openid_connect_login_button]and[icc_gg_sign_in_openid_connect_auth_url]
Requirements
- WordPress 5.0+
- PHP 8.1+
- An OpenID Connect Identity Provider (Keycloak, Auth0, Okta, Azure AD, Google, etc.)
Installation
- Download the plugin or clone this repository into
/wp-content/plugins/ - Activate the plugin through the WordPress admin panel
- Go to Settings > OpenID Connect to configure
Quick Setup
Use the Discovery Document Import feature on the settings page:
- Enter your IDP's discovery URL (e.g.,
https://your-idp.com/.well-known/openid-configuration) - Click Load Configuration
- Fill in your Client ID and Client Secret
- Click Save Changes
Supported IDPs:
- Auth0:
https://{tenant}.{region}.auth0.com/.well-known/openid-configuration - Keycloak:
https://{domain}/realms/{realm}/.well-known/openid-configuration - Okta:
https://{domain}/.well-known/openid-configuration - Azure AD:
https://login.microsoftonline.com/{tenant}/v2.0/.well-known/openid-configuration - Google:
https://accounts.google.com/.well-known/openid-configuration
Configuration Reference
OAuth Client Settings
| Setting | Description |
|---|---|
| Login Type | Button on the login form, auto SSO redirect, or button-only (no password form) |
| Login Button Text | Custom text for the OpenID Connect login button |
| Login Button Logo | Optional logo from the media library shown before the button text |
| Client ID | The ID your client is recognized as by the Identity Provider |
| Client Secret | The secret key the IDP expects from your client |
| Scope | Space-separated list of scopes (e.g., openid profile email) |
| Login Endpoint URL | The authorization endpoint of your IDP |
| Token Validation Endpoint URL | The token endpoint of your IDP |
| Userinfo Endpoint URL | The user information endpoint |
| End Session Endpoint URL | The logout endpoint (optional) |
| JWKS URI | JWKS endpoint for JWT signature verification (strongly recommended) |
| Issuer | IDP issuer URL for JWT validation (auto-derived if not set) |
User Settings
| Setting | Description |
|---|---|
| Email Domain Restriction 🔒 | Space-separated list of allowed email domains (e.g., company.com) or full email addresses (e.g., specificuser@gmail.com). Leave empty to allow all |
| Link Existing Users | Match IDP identities to existing WordPress accounts by email |
| Create user if does not exist | Auto-create new WordPress users on first login |
| Redirect Back to Origin Page | Return users to the page they were on before login |
Environment Variables / Constants
All settings can be defined as PHP constants for added security and CI/CD support:
define( 'OIDC_CLIENT_ID', 'your-client-id' );
define( 'OIDC_CLIENT_SECRET', 'your-client-secret' );
define( 'OIDC_ENDPOINT_LOGIN_URL', 'https://idp.example.com/auth' );
define( 'OIDC_ENDPOINT_TOKEN_URL', 'https://idp.example.com/token' );
define( 'OIDC_ENDPOINT_USERINFO_URL', 'https://idp.example.com/userinfo' );
define( 'OIDC_ENDPOINT_LOGOUT_URL', 'https://idp.example.com/logout' );
define( 'OIDC_ENDPOINT_JWKS_URL', 'https://idp.example.com/certs' );
define( 'OIDC_CLIENT_SCOPE', 'openid profile email' );
define( 'OIDC_LOGIN_TYPE', 'button' );
define( 'OIDC_EMAIL_DOMAIN_RESTRICTION', 'company.com specificuser@gmail.com partner.org' );
define( 'OIDC_CREATE_IF_DOES_NOT_EXIST', true );
define( 'OIDC_LINK_EXISTING_USERS', true );
define( 'OIDC_ENFORCE_PRIVACY', false );
define( 'OIDC_REDIRECT_ON_LOGOUT', true );
define( 'OIDC_REDIRECT_USER_BACK', false );
define( 'OIDC_ENABLE_LOGGING', false );
define( 'OIDC_LOG_LIMIT', 1000 );
Redirect URI
The default redirect URI registered with your IDP should be:
https://your-site.com/wp-admin/admin-ajax.php?action=icc-gg-sign-in-openid-connect-authorize
If your IDP doesn't support query strings in redirect URIs, enable Alternate Redirect URI in settings to use:
https://your-site.com/icc-gg-sign-in-openid-connect-authorize
Hooks & Filters
The plugin provides many hooks for customization. See the main plugin file for the complete list including:
icc_gg_sign_in_openid_connect_user_login_test— Control whether a user can log in based on their claimicc_gg_sign_in_openid_connect_user_creation_test— Control whether a new user can be createdicc_gg_sign_in_openid_connect_alter_user_claim— Modify user claim data before user creationicc_gg_sign_in_openid_connect_alter_user_data— Modify user data before insertionicc_gg_sign_in_openid_connect_login_button_text— Customize the login button texticc_gg_sign_in_openid_connect_login_button_logo_id— Customize the login button logo attachment IDicc_gg_sign_in_openid_connect_user_logged_in— Action fired after successful login
Security
- JWKS-based JWT signature verification to prevent token forgery
- Cryptographically secure state generation (
random_bytes) - SSRF protection via
wp_safe_remote_*by default - SSL verification bypass restricted to local development environments only
- Nonce-protected settings forms
- Email domain restriction for access control
User Authentication & Creation
This plugin creates and authenticates WordPress users as a technical necessity of its core function — OpenID Connect Single Sign-On. User sessions are established only after successful authentication by the configured Identity Provider. User accounts are created only when explicitly enabled by the site administrator and only after the IDP has verified the user's identity.
Security measures protecting user login/creation:
| Measure | Description |
|---|---|
| JWT Signature Verification | All ID tokens are cryptographically verified via JWKS to prevent forgery |
| Secure State Generation | Anti-CSRF state values use random_bytes() to prevent code interception |
| SSRF Protection | All outbound requests use wp_safe_remote_*() by default |
| Core WordPress Functions | Uses wp_create_user(), wp_update_user(), wp_signon() — triggering all standard security plugin hooks |
| Email Domain Restriction | Administrators can restrict which email domains/addresses are allowed |
| Token Claim Validation | Validates exp, aud, iss, iat, and nonce claims on every token |
| Nonce Protection | All admin forms are protected against CSRF |
About OpenID Connect
OpenID Connect (OIDC) is an open authentication protocol standardized by the OpenID Foundation. It extends the OAuth 2.0 authorization framework to provide identity verification and single sign-on capabilities. This plugin implements the OIDC Authorization Code Flow as defined in the OpenID Connect Core 1.0 specification, enabling WordPress sites to delegate authentication to a trusted Identity Provider (IDP) rather than managing user credentials directly.
The OpenID Foundation is a non-profit international standardization organization that develops and maintains the OpenID Connect protocol and related specifications. This plugin is an independent implementation and is not affiliated with, endorsed by, or sponsored by the OpenID Foundation.
Credits
ICC.gg Sign-In for OpenID Connect is maintained by Ivan Carlos.
Based on OpenID Connect Generic by daggerhart.
🧑💻 Consulting and technical support
- For personal support and queries, please submit a new issue to have it addressed.
- For commercial related questions, please contact me for consulting costs.
Read the full README on GitHub →
Releases
| Tag | Published | Asset | Downloads |
|---|---|---|---|
| v5.4.1 | Aug 28, 2026 | icc-gg-sign-in-openid-connect.zip | 5 |
| v5.4.1 | Aug 28, 2026 | wordpressiccopenidclient-5.4.1.zip | 0 |
| v5.4.0 | Aug 28, 2026 | wordpressiccopenidclient-5.4.0.zip | 0 |
| v5.4.0 | Aug 28, 2026 | icc-gg-sign-in-openid-connect.zip | 1 |
| v5.3.1 | Aug 28, 2026 | icc-gg-sign-in-openid-connect.zip | 1 |
| v5.3.1 | Aug 28, 2026 | wordpressiccopenidclient-5.3.1.zip | 0 |
| v5.3.0 | Aug 28, 2026 | wordpressiccopenidclient-5.3.0.zip | 0 |
| v5.3.0 | Aug 28, 2026 | icc-gg-sign-in-openid-connect.zip | 1 |
| v5.2.4 | Aug 17, 2026 | icc-gg-sign-in-openid-connect.zip | 2 |
| v5.2.4 | Aug 17, 2026 | wordpressiccopenidclient-5.2.4.zip | 0 |
| v5.2.3 | Aug 17, 2026 | wordpressiccopenidclient-5.2.3.zip | 0 |
| v5.2.3 | Aug 17, 2026 | icc-gg-sign-in-openid-connect.zip | 2 |
| v5.2.2 | Aug 17, 2026 | wordpressiccopenidclient-5.2.2.zip | 0 |
| v5.2.2 | Aug 17, 2026 | icc-gg-sign-in-openid-connect.zip | 2 |
| v5.2.1 | Aug 17, 2026 | icc-gg-sign-in-openid-connect.zip | 2 |
| v5.2.1 | Aug 17, 2026 | wordpressiccopenidclient-5.2.1.zip | 0 |
| v5.2.0 | Aug 17, 2026 | icc-gg-sign-in-openid-connect.zip | 2 |
| v5.2.0 | Aug 17, 2026 | wordpressiccopenidclient-5.2.0.zip | 0 |
| v5.1.0 | Aug 16, 2026 | icc-gg-sign-in-openid-connect.zip | 0 |
| v5.1.0 | Aug 16, 2026 | wordpressiccopenidclient-5.1.0.zip | 0 |
| v5.0.1 | Aug 14, 2026 | wordpressiccopenidclient-5.0.1.zip | 0 |
| v5.0.1 | Aug 14, 2026 | icc-gg-sign-in-openid-connect.zip | 3 |
| v5.0.0 | Aug 14, 2026 | wordpressiccopenidclient-5.0.0.zip | 0 |
| v5.0.0 | Aug 14, 2026 | icc-gg-sign-in-openid-connect.zip | 1 |
| v4.0.4 | Aug 13, 2026 | icc-sign-in-openid-connect.zip | 2 |