WP OAuth Server plugin turns your WordPress site into an OAuth Server. It allows you to login into Rocket Chat, Invision Community, WordPress, Odoo, EasyGenerator, Salesforce, Zapier, Moodle, ServiceNow, Edunext, Wickr, Freshdesk, FreshWorks, ServiceNow, ShinyProxy, Knack database, Circle.so, Tribe.so, Tribe, Mobilize, Nextcloud, Church Online, iSpring LMS, Academy of Mine, BoardEffect, TalentLMS, Laravel, PowerSchool, PowerSchool, Joomla, HubSpot, Shopify, MeritHub, Bookstack, Pimcore, 360 Learning, EventMobi, Synology, Drupal, Piano Analytics, Zerotier, and any other OAuth 2.0 compliant applications using WordPress credentials.
You can checkout the below video tutorial to know how to setup SSO with your OAuth/OpenID Compliant Applications.
Basically, the OAuth Server plugin allows users to login into applications that are OAuth 2.0 compliant, using their WordPress login credentials. As it’s name suggests, it follows the OAuth 2.0 protocol. Along with that, it also supports OpenID Connect (OIDC), and JWT protocols.
The primary goal of the OAuth Server plugin is to enable Single Sign On so that users do not need to remember username and password for each application.
Once Single Sign On is enabled, users do not need to store sensitive information to login into different applications.
The discovery url / well-known endpoint can be used to get metadata about your Identity Server. It will return information about the OAuth/OpenID endpoints, issuer URL, supported grant types, supported scopes, key material along with claims in the JSON format. These details can be used by the clients to create an OpenID server request. The well known configuration URL is accessible via /.well-known/openid-configuration, in relation to the issuer URL.
JWT Token Verification
JWT signing enables the token’s recipient to confirm that the token actually received includes all of the information encoded by the issuer in its original, unaltered form.
HS256, a symmetric signature algorithm, indicates that the signature is generated and verified using the same secret key. It is supported in the free version of the plugin.
RS256, an asymmetric signature algorithm is different from a symmetric algorithm in that a pair of private and public keys is used to sign and validate the data respectively instead of a single secret key.
Why RSA algorithm should be used?
The use of a public and private key pair makes RS256 more secure in comparison to HS256 where the public key is shared and might be compromised whereas in RS256, even if you do not have the control over your client, your data remains secure as it is signed using a private key. The premium version of the plugin supports the RS256 algorithm.
Postman collection JSON is a file that can be used for testing the configuration of OAuth 2.0 flow in the WP OAuth Server plugin without configuring an external OAuth Client by generating the access token and the API call to the resource endpoint subsequently.
LIST OF POPULAR OAUTH CLIENTS SUPPORTED
- Invision Community (IPB Forum)
- Knack database
- iSpring LMS
- Church Online
- Academy of Mine
- 360 Learning
- Piano Analytics
WORDPRESS OAUTH / OPENID CONNECT SERVER USE CASES
- If you want to use your WordPress site as an Identity Server / OAuth Server / OAuth Provider and use WordPress user’s login credentials to login into your client site / application then you can use this plugin. You can also decide what kind of User data / attributes you want to send while Single Sign On into your client site / application.
- If you want to login to your Mobile app / Single Page web app (SPA) using your WordPress credentials, then you can use the Authorization code with PKCE flow grant type to achieve your use case.
- Single set of credentials will be used to login to multiple WordPress websites.
- You can access the NGINX resources using NGINX Authentication. Once you login into your client application using WP OAuth Server credentials, you will get JWT. Your client application can further use it for NGINX Authentication.
- Membership sync or role mapping is used to sync the memberships or roles assigned to your users from OAuth Server to OAuth/OpenID Client.
- Custom Attribute Mapping is useful if you want to send any additional attributes (other than the default ones) from your WordPress usermeta table to your OAuth/OpenID Client.
WORDPRESS OAUTH / OPENID CONNECT SERVER FREE VERSION FEATURES
- Supports Login with WordPress for Single Client application
- Protocol Support: OAuth 2.0, OpenID Connect (OIDC)
- Discovery document / well-known endpoint for automatic configuration
- JWT signing using HS256 or RS256 algorithm (Note: In RS256 algorithm, the keys will be common for all the free version installations)
- Postman collection for testing OAuth 2.0 flow without actually configuring the client application
- Server Response: Sends User ID, username, email, first name, last name, display name in the response
- Grant types Supported: Authorization Code grant
- Multi-Site Support: Use the plugin in WordPress Multisite network environment. You can configure individually in all the subsites.
- Master Switch: Block / unblock OAuth API calls between OAuth Clients and Server
- Token Length: Change the access token length
- OAuth API Documentation
- Setup guides to configure the plugin with various OAuth Clients (more coming soon)
WORDPRESS OAUTH / OPENID CONNECT SERVER PREMIUM VERSION FEATURES
- All FREE version features
- Supports Login with WordPress for Multiple Client applications
- Server Response: Sends all the profile attributes along with roles, allows to send custom attributes from usermeta table and also customize the attribute names that need to be sent in server response
- Grant Types Supported: Authorization Code Grant, Implicit Grant, Password Grant, Client Credentials Grant, Refresh Token Grant, Authorization Code grant with PKCE flow
- Token Lifetime: Configure the access token and refresh token expiry time
- Enforce State Parameter: Based on client configuration, you can enable or disable state parameter
- Authorize / Consent prompt: Enable / disable the consent screen
- Redirect / Callback URI Validation: Enable / disable this feature, based on dynamic redirect to a different pages for certain conditions
- JWT Signing Algorithm: Supports signing algorithms HSA and RSA (with dynamic keys for each client setup)
- Additional endpoints: Provides Introspection endpoint, OpenID Connect Single logout endpoint, Revoke endpoint
A grant is a method of acquiring an access token. Deciding which grants to implement depends on the type of client the end user will be using, and the experience you want for your users.
WE SUPPORT FOLLOWING GRANTS:
- Authorization code grant : This code grant is used when there is a need to access the protected resources on behalf of the user on another third party application.
- Implicit grant : This grant relies on resource owner and registration of redirect uri. In authorization code grant users need to ask for authorization and access token each time, but here access token is granted for a particular redirect uri provided by a client using a particular browser.
- Client credential grant : This grant type heads towards specific clients, where access token is obtained by client by only providing client credentials. This grant type is quite confidential.
- Resource owner password credentials grant : This type of grant is used where the resource owner has a trust relationship with the client. Just by using username and password, provided by resource owner authorization and authentication can be achieved.
- Refresh token grant : Access tokens obtained in OAuth flow eventually expire. In this grant type client can refresh his or her access token.
- Authorization code grant with PKCE flow : This grant type is used for public clients like mobile and native apps, Single Page web apps, where there is a risk of client secret being compromised.
REST API AUTHENTICATION
Rest API is very much open to interact. Creating posts, getting information of users and much more is readily available.
It secures unauthorized access to your WordPress sites/pages using our WordPress REST API Authentication plugin .
From your WordPress dashboard
Plugins > Add New
- Search for
OAuth 2.0 server. Find and Install
OAuth 2.0 server
- Activate the plugin from your Plugins page
- Download OAuth 2.0 server.
- Unzip and upload the
miniorange-oauth-logindirectory to your
- Activate miniOrange OAuth from your Plugins page.
I need to customize the plugin or I need support and help?
Please email us at firstname.lastname@example.org or Contact us. You can also submit your query from plugin’s configuration page.
I want a demo or trial of the plugin
For the demo or trial of the plugin, you can submit a request from the Trials Available tab in the plugin or directly email us at email@example.com
The plugin is not working on my localhost
If you are using the plugin on localhost, please make sure your site is reachable from your OAuth Client side. If not, you can host your WordPress site publicly to make it work.
Do I need to pay for all the users in my database while upgrading to premium?
No, the pricing in the plans is only for the ACTIVE USERS. An active user is the one who performs the SSO. For example, if you have 5000 users in the database but only 1000 of them perform the SSO, then you would need to pay only for the 1000 users.
Can I get discount if purchasing multiple licenses?
Yes, you are eligible for a discount, if you are purchasing more than 1 license. You can contact us at firstname.lastname@example.org.
Do you support membership/role sync?
How can I disable the consent screen?
Yes, you can enable/disable consent screen using the premium plan.
Contributors & Developers
“WP OAuth Server ( Login with WordPress )” is open source software. The following people have contributed to this plugin.Contributors
Interested in development?
- Added compatibility with WP 6.3
- Improved feedback form.
- Removed unnecessary console logs.
- Bug fix – Custom OAuth Client logo image link fixed.
- Updated support email address.
- Complete UI revamp for a more user-friendly and intuitive experience
- Backend simplification for improved performance and reliability
- Bug fixes and performance enhancements
- Added compatibility with WP 6.2
- Fixed the deactivation feedback form issue
- Added Custom Login URL feature
- Fixes for empty scope
- Set RSA algorithm as default
- Disabled Enforce State by default
- Fixed the demo email issue
- phpcs fixes
- updated FAQ
- Added scope based response filter
- Minor bug fixes
- Made compatible for WP Multisite
- Added debug logs
- Compatibility with WordPress version 6.1
- Added RSA algorithm support with common keys
- Authorize endpoint fix
- Other bug fixes
- Fixed issue with gravity form
- Fixed the client secret migration issue
- Readme update
- Discovery/.well-known/issuer url now supported
- Added support for HS256 algorithm for JWT token verification
- Added postman collection to test configurations
- Client secret is now stored in encrypted format
- Vulnerability fixes
- Code improvements
- Token Post Response header already sent warning fix
- Database Query Optimization
- CORS issue fix
- Added trial option of the premium
- Licensing page changes
- Added compatibility with WP 5.9
- Improved performance of website by setting autoload to false
- Support for email attribute in the userinfo endpoint
- Link to the OAuth API documention
- Client specific UI improvements
- Security Fixes
- UI improvement – Copy button for endpoints and client credentials
- Bug fix for supplied_redirect_uri
- Consent screen on every login
- permission_callback warning fix
- minor bug fixes
- added copy button to copy the client credentials and endpoints
- readme update
- minor UI updates
- added compatibility with WP 5.7
- minor bug fixes
- fixed compatibility with Brizzy
- added compatibility with WP 5.6
- minor bug fixes
- fixed issue with deactivation form
- added compatibility with WP 5.5
- Added compatibility with WordPress v5.5
- Added UI fixes
- Updated demo plan fixes
- Minor bugfixes and compatibility fixes
- Licensing tab fix
- Added fixes for some features
- Added option to disable authorize screen
- Added Compatibility with WordPress v5.4
- Performance Improvements
- Fixed bug where blank scope led to blank screen
- Fixed “Deny” button resulting in clicking “Allow”
- Fixed unaccounted bytes error notice on activation
- Updated plugin licensing
- Minor UI Improvements
- Added fixes for Loopback Request failure
- Updated Endpoints based on REST API and Authorize Consent Screen
- Minor Bugfixes
- Fixed migration issue
- Fixed bug where bearer access_token was not recognized.
- Updated Endpoints
- Updated Installation Steps
- Compatibility changes for miniOrange OAuth Single Sign On
- Updated registration form
- Advertised Introspection Endpoint
- Added compatibility for WordPress Version 5.2
- Added fixes for OpenID Connect flow
- Added fixes for OTP related issue
- Updated Endpoints
- Added alternative for Sign Up
- Advertised Scope Based Response
- Fixed conflicts for function generateRandomString()
- Advertised new features as per new Licensing Plan
- Added Compatibility for Rocket.chat
- Fixed OTP related issue
- Updated Licensing Plan
- Added Visual Tour fixes
- Added bugfixes
- Added missing files
- New Features
- Major UI Revamp
- Added Feature Tour
- Compatibility with WordPress 5.1
- Added Feedback Form and Updated UI
- Added support for Invision Community and Rocket.chat
- Updated UI
- Fixed the PHP7.2 Compatibility issue
- Changes in the title
- Added features
- Added support for multiple client
- Initial Release