Build an SSO System (PHP, WHMCS/Pterodactyl/Virtualizor)

Job ID: 31217434

Budget: $50 – $250 CAD

Goal: Allow users to seamlessly sign into our various management panels and services using 1 account on a unified login page.

Why do we want SSO?
We want to use SSO for our client accounts with the intent of ease of use for our users on the following services:
- Billing Panel (WHMCS)
- Game Panel (Pterodactyl Panel)
- VPS Panel (Virtualizor)

None of these apps natively support SSO authentication, so some modification would have to be made to allow them to support the SSO system.

Project Details
We want to create an SSO system that forces each of these services to be logged into via a unified login page.

WHMCS should be the primary source of data, where the user can change their name, password, etc… It also has 2FA, so if the user could setup 2FA via the billing panel and have to use it on the SSO login page, that would be ideal.

The account that the system logs into can be matched via email on all of these services. The email will always be a unique identifier which makes it great for this purpose.

This is a framework we can use to save some time - https://github.com/bshaffer/oauth2-server-php

Process
An idea of the process of logging in would be the following:
1. User requests Billing (ex. billing.domain.com)
2. Billing checks to see if user is logged in by sending to SSO (ex. accounts.domain.com)
3. SSO redirects back to Billing with the user’s info, if they are logged in already or displays login form and allows them to login, before sending them back to Billing with their info
Related categories: PHP WHMCS OAuth Web Development