postiefs / laravel-filament-sso
Filament panel plugin for the Postiefs SSO portal: a Microsoft 365 sign-in button next to the local login, portal-controlled sessions and sign-out to the launchpad.
Requires
- php: ^8.2
- filament/filament: ^3.0|^4.0|^5.0
- postiefs/laravel-sso: ^1.0
Requires (Dev)
- laravel/pint: ^1.0
- orchestra/testbench: ^9.0|^10.0|^11.0
- pestphp/pest: ^3.0|^4.0|^5.0
- pestphp/pest-plugin-laravel: ^3.0|^4.0|^5.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Filament plugin for the Postiefs SSO portal (Microsoft 365). It works on Filament 3, 4 and 5 and Laravel 11, 12 and 13.
Everything about tokens, sessions, users and events lives in postiefs/laravel-sso; this package adds the
panel parts:
- a Sign in with Microsoft 365 button below the login form (the password login keeps working), or, if you prefer, everyone is sent to the portal
- the portal's session rules on every panel request, Livewire updates included: the portal's deadline, a session an administrator ended, access that was removed
- the browser guard on every page: an idle tab is signed out at the deadline, and a Livewire action that hits an ended session goes to the launchpad instead of showing an error
- Sign out of a portal session returns to the launchpad; a password login signs out as before
- after the callback, people land on the panel
Quick start
composer require postiefs/laravel-filament-sso php artisan sso:install
use Postiefs\SsoFilament\SsoPlugin; $panel->login()->plugin(SsoPlugin::make());
Set SSO_APP_ID, SSO_JWT_SECRET, SSO_URL, SSO_PUBLIC_URL, SSO_PORTAL_URL and SESSION_LIFETIME=720 in .env,
ask the SSO team to register https://your-app/sso/callback as the Callback URL, then php artisan sso:check.
Nothing changes until the app id and the secret are set.
Documentation
- Installation: Composer repositories, the plugin, the
.envkeys, who may sign in, a checklist - Usage and options: what the plugin adds,
redirectLogin(),allowLocalLogin(), the button, several panels - Compatibility: the supported versions and what differs between Filament 3, 4 and 5
- Troubleshooting: a table from symptom to cause and fix
- Testing: the package's own tests, and testing a panel that uses the plugin
The core package's docs cover the rest: how it works, configuration, users and roles, reference.
Tests
composer install vendor/bin/pest