postiefs/laravel-filament-sso
Adds single sign-on to Filament admin panels, letting users authenticate through an existing OAuth or OIDC identity provider instead of separate credentials. Includes configurable provider settings and simple role and user mapping for Laravel apps.
redirectLogin() and allowLocalLogin() with ?local=1 is an explicit product decision already made for you: SSO-first with a documented escape hatch when the portal is down. Decide now whether that escape hatch is on for all environments or gated (env flag, IP allowlist, rate limiting, alerting on use) — this is the single highest-risk surface in the release.Adopt when all of the following hold:
?local=1 break-glass path.Look elsewhere when:
postiefs/laravel-sso directly or a broader identity package.Diligence before commit: verify the compatibility claims. The release advertises Filament 3/4/5 and Laravel 11/12/13, which is an unusually wide forward-looking matrix for a first release — confirm the CI matrix actually exercises the versions you run, and pin accordingly. Also confirm maintenance posture (release cadence, issue response, whether the portal vendor supports the plugin as part of the contract) and that postiefs/laravel-sso ^1.0 is itself maintained.
To executives: This is a small, targeted dependency that ships enterprise-grade sign-in for our admin panel without a build project. It gets us "Sign in with Microsoft 365", enforced sessions, and immediate revocation via the Postiefs portal — the controls enterprise buyers ask about — at the cost of a first-release, single-vendor dependency. Recommendation: adopt behind a time-boxed spike, with the break-glass local-login path explicitly gated and monitored, and a documented exit path (the underlying postiefs/laravel-sso works without Filament).
To engineering: Add postiefs/laravel-filament-sso and register SsoPlugin::make() on the panel provider. It puts the Microsoft 365 button under the login form, redirects to the portal, and runs the portal's session rules on every panel request including Livewire updates, plus a browser guard on every page. Authorization stays ours — app roles (Spatie) only; portal roles are never applied — so no permission model changes. Two things to own: the ?local=1 break-glass path needs environment gating, rate limiting, and alerting on use, and post-callback landing is hardcoded to the default panel, which needs fixing before we ship a second panel. Validate the Filament/Laravel version matrix in our own CI rather than trusting the release notes, and pin the version.
How can I help you explore Laravel packages today?