Feature: System-Level OIDC Authentication & Dynamic Provider Support ( #874 )#1051
Feature: System-Level OIDC Authentication & Dynamic Provider Support ( #874 )#1051Sipioteo wants to merge 30 commits intoHiEventsDev:developfrom
Conversation
…, a dedicated management UI, and a new event dispatch job.
…rresponding backend service.
…es when searching by `id`.
This reverts commit cfaff36.
Merge from a sub brench that i made by mistake
… identity providers, dynamic login/register forms, and a new CI/CD workflow.
… PHP version requirements for cron-expression and php-cors
…cons and configurable logos, and update OIDC provider registration.
…ironment variables and add a tutorial for setup.
…e and refine OIDC provider configuration with uppercase environment keys and explicit settings.
…remove explicit configuration.
…iceProvider` to `config/services.php` for improved cacheability.
…rt on both frontend and backend.
…hentication provider callback.
…ction` when hydrating domain objects if the corresponding setter expects it.
…dc` method in `LoginService` and update OIDC redirect URL generation to use the frontend URL.
…in, variant, and size props.
…ovider configuration and switch corporate SSO example to Zitadel.
|
Sorry for the aggressive reformatting, my linter is a bit aggressive 😅😅 |
…k-#1047 Feature/organization level webhook HiEventsDev#1047
|
Hi @daveearley ! 👋 Just a quick update regarding my recent submissions. To give you some context, I had to go ahead and implement these specific features because my non-profit organization needs them for our internal management. I have already successfully merged the last three PRs I published on my end, and everything is fully functional together. You can review the working code with all those changes combined right here: If it makes things easier for you, I’d be happy to open a single, global PR that includes all three updates so you can merge everything in one go. Just let me know what works best for your workflow! |
|
wow! amazing! would be great to have this built in, my orga will also be very happy with sso! |
|
Great work, thank you! I'll test this soon. |




Summary
This PR introduces a robust, dynamic OpenID Connect (OIDC) authentication layer at the system environment level. It allows instance administrators to configure one or multiple OIDC providers (e.g., Google, Microsoft, Zitadel) purely via environment variables without needing to alter core code.
This implementation follows a "No Auto-Provisioning" rule: it maps external identities to existing local accounts. This enhances security for closed environments while streamlining access for registered users.
Provider Compatibility & Testing
The implementation is designed to be strictly compliant with the OIDC standard.
Detailed Changes
1. Dynamic Environment Configuration
Administrators can now define active providers and their configurations dynamically in the
.envfile.AUTH_PROVIDERSlist and registers the corresponding Socialite drivers on boot.redirect_uriis automatically generated based on the application's base URL, reducing configuration errors.https://events.example.com/api/auth/{providerName}/callbackExample Configuration (.env):
2. Strict Authentication Flow & Mapping
The callback logic securely handles the OIDC payload:
AUTH_{provider}_IDENTIFIER_KEYto extract the ID. The database lookup is hardcoded to match this value against the localemailcolumn.3. UI Toggles & Smart Icons
The Login interface adapts to the active state:
AUTH_DISABLE_DEFAULT="true"is set, standard login/signup forms are hidden, showing only OIDC buttons.AUTH_{provider}_LOGO_URLor fall back to a generic icon.?show_login=1to the URL overrides the disable rule, allowing admin recovery if needed.Checklist
Resolutions
This PR resolves #874
Tutorial
I have added a more comprehensive tutorial into this file OIDC_ENV_TUTORIAL.md