Enable WordPress SSO with Auth0 using miniOrange (SAML)
Enable WordPress SSO with Auth0 as the SAML IdP using the miniOrange SAML SP plugin, covering SP metadata, Auth0 SAML2 config, metadata exchange, and role mapping.
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 then WordPress (miniOrange SP) then Auth0 (IdP) then 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 then Plugins then Add New
- Search for “miniOrange SAML SSO”
- Install and activate WordPress SAML SP SSO
- Navigate to:
miniOrange SAML SSO then 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 then 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 then 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 then Usage
- Click Download Identity Provider Metadata
- Save the XML file
Step 7: Configure miniOrange with Auth0 Metadata
Option A (Recommended): Upload Metadata
- WordPress Admin then miniOrange SAML SSO then 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 then 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 then 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