Enable WordPress SSO with Auth0 using miniOrange (SAML)
This guide explains how to enable WordPress Single Sign-On (SSO) using the miniOrange SAML SP SSO plugin, with Auth0 as the Identity Provider (IdP).
- WordPress site:
https://example.com - SP plugin: miniOrange SAML SP SSO
- IdP: Auth0
- Protocol: SAML 2.0
Architecture
User → WordPress (miniOrange SP) → Auth0 (IdP) → WordPress
Auth0 authenticates the user and sends a SAML assertion back to WordPress.
Prerequisites
- WordPress admin access
- Auth0 admin access
- miniOrange WordPress SAML SP SSO plugin installed
- Public WordPress URL (HTTPS recommended)
Step 1: Install miniOrange WordPress SAML SP Plugin
- WordPress Admin → Plugins → Add New
- Search for “miniOrange SAML SSO”
- Install and activate WordPress SAML SP SSO
- Navigate to:
miniOrange SAML SSO → Service Provider Metadata
Step 2: Collect WordPress (SP) Metadata
From Service Provider Metadata tab, copy the following values:
| Field | Example Value |
|---|---|
| SP Entity ID / Issuer | https://example.com/wp-content/plugins/miniorange-saml-20-single-sign-on/ |
| ACS (AssertionConsumerService) URL | https://example.com/ |
| Audience URI | https://example.com/wp-content/plugins/miniorange-saml-20-single-sign-on/ |
| Recipient URL | https://example.com/ |
| Destination URL | https://example.com/ |
| NameID format | urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified |
| Metadata URL | https://example.com/?option=mosaml_metadata |
You will use these values when configuring Auth0.
Step 3: Create a New Auth0 Application for WordPress
⚠️ Do not reuse an Auth0 application created for another service (for example, Stripe).
- Auth0 Dashboard → Applications
- Click Create Application
- Name:
WordPress SAML SSO - Application type: Regular Web Application
- Click Create
Step 4: Enable SAML2 Web App Addon in Auth0
- Open the WordPress SAML SSO application in Auth0
- Go to Addons
- Enable SAML2 Web App
- Set Application Callback URL:
https://example.com/
(This must match the ACS URL from the miniOrange plugin.)
Step 5: Configure Auth0 SAML Settings (WordPress SP)
In SAML2 Web App → Settings, paste the following JSON configuration:
{
"audience": "https://example.com/wp-content/plugins/miniorange-saml-20-single-sign-on/",
"recipient": "https://example.com/",
"destination": "https://example.com/",
"signatureAlgorithm": "rsa-sha256",
"digestAlgorithm": "sha256",
"signResponse": false,
"nameIdentifierFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified",
"nameIdentifierProbes": [
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
]
}
Click Save.
Step 6: Download Auth0 Identity Provider Metadata
- In the same Auth0 application, open SAML2 Web App → Usage
- Click Download Identity Provider Metadata
- Save the XML file
Step 7: Configure miniOrange with Auth0 Metadata
Option A (Recommended): Upload Metadata
- WordPress Admin → miniOrange SAML SSO → IDP Configuration
- Click Upload IDP Metadata
- Set:
- Identity Provider Name:
Auth0
- Identity Provider Name:
- Upload the metadata XML file downloaded from Auth0
- Click Save
Option B: Manual Configuration (Alternative)
Use values from the Auth0 Usage tab:
| miniOrange Field | Auth0 Value |
|---|---|
| IDP Entity ID / Issuer | Auth0 Issuer |
| SAML Login URL | Auth0 Identity Provider Login URL |
| X.509 Certificate | Auth0 Certificate |
Step 8: Attribute Mapping (Free Plugin)
Go to:
miniOrange SAML SSO → Attribute / Role Mapping
In the free version of the plugin:
- NameID is mapped to:
- WordPress username
- WordPress email
No additional configuration is required, as Auth0 sends the email address as the NameID.
Step 9: Role Mapping (Free Plugin)
- Go to Attribute / Role Mapping
- Scroll to Role Mapping
- Select a Default Role (for example,
Subscriber) - Click Update
All SSO users will receive this role unless advanced role mapping is configured.
Step 10: Enable SSO Button on WordPress Login Page
- Go to miniOrange SAML SSO → Redirection & SSO Links
- Enable:
- ✅ Add a Single Sign-On button on the WordPress login page
- Save the settings
Optional:
- Add an SSO widget for SP-initiated login
- Configure post-login redirection
Step 11: Test WordPress SSO
- Open:
https://example.com/wp-login.php
- Click Login with SSO
- Authenticate using Auth0
- You should be redirected back and logged into WordPress
Common Issues & Fixes
❌ Invalid Audience
- Ensure the Audience in Auth0 exactly matches the miniOrange SP Entity ID
❌ Redirect Loop
- ACS URL mismatch
- Incorrect Application Callback URL in Auth0
❌ User Not Created
- Ensure WordPress allows user creation via SSO
- Ensure NameID contains an email address
Important Notes
- Each Service Provider (e.g., WordPress, Stripe) must have its own Auth0 application
- Auth0 can act as IdP for multiple SAML SPs simultaneously
- WordPress does not require Stripe-style role attributes
- Auth0 Actions are optional unless advanced role mapping is required
Final Checklist
✔ miniOrange plugin installed
✔ WordPress SP metadata collected
✔ New Auth0 application created
✔ SAML addon enabled
✔ Auth0 metadata uploaded to WordPress
✔ SSO button enabled
✔ Login works successfully
Conclusion
You have successfully enabled WordPress SSO using Auth0 with the miniOrange SAML SP plugin.
Auth0 now acts as a central Identity Provider, allowing consistent authentication across multiple platforms while keeping WordPress configuration simple and secure.
If needed, you can extend this setup with:
- WordPress role mapping via Auth0 Actions
- MFA and conditional access in Auth0
- Session sharing across applications
- Production security hardening
Related Guides
Automating JNLP Downloads with PowerShell Using Session Cookies
When managing remote servers or BMC interfaces, some resources such as JNLP (Java Network Launch Protocol) files require authentication via cookies and session handling. Manually downloading these files can be cumbersome. PowerShell provides a way to automate this process using web sessions and cookie management. Creating a Persistent Web Session A web session in PowerShell […]
Complete Guide to Downloading Files with PowerShell
Introduction PowerShell provides powerful tools for downloading files from web servers, with Invoke-WebRequest being the primary cmdlet for making HTTP requests. This guide covers everything from basic downloads to advanced scenarios involving authentication, cookies, and custom headers. Basic File Downloads Simple Download The most straightforward way to download a file: Download with Progress Bar PowerShell […]
The Complete Guide to Installing StorCLI on Linux and Windows
StorCLI (Storage Command Line Tool) is Broadcom’s powerful command-line utility for managing LSI MegaRAID and PRAID controllers. Whether you’re managing hardware RAID arrays on servers or workstations, StorCLI provides comprehensive control over your storage infrastructure. This guide will walk you through the complete installation process on both Linux and Windows systems. What is StorCLI? StorCLI […]