jeffersongoncalves/filament-sso-server
Filament SSO Server turns your Filament admin panel into a central single sign-on provider. Manage OAuth clients and let connected Laravel and Filament applications authenticate users securely through one shared login, simplifying access across your ecosystem.
Architecture fit. jeffersongoncalves/filament-sso-server inverts the usual SSO posture: instead of the Filament panel consuming an identity provider, the panel becomes the identity provider for other applications. It sits on top of Laravel Passport's OAuth2 authorization server and exposes a Filament-native UI for managing clients, scopes, and tokens. For organizations already running a Filament admin console as the system of record for users, this is a low-ceremony way to make that console the IdP for internal tools without standing up Keycloak/Entra ID. It is not a fit if you need a standards-certified OIDC provider for third-party or non-Laravel relying parties — treat that as unproven until conformance is verified.
Integration feasibility. Mechanically straightforward for a Laravel team: composer require, publish config/migrations, generate Passport keys, register the plugin on a panel provider, then onboard relying parties through the UI. Realistic estimate is 1–2 engineer-days to a working staging flow with one relying party. The effort is not the install — it is the security review, key custody, and the runbook for the auth surface you have just created.
Technical risk. High, and concentrated in three places:
Key questions. (a) What exactly changed between 1.0.0 and 1.0.1 — is any of it a fix to a vulnerability or a behavioral change to token/refresh/logout handling? (b) Does the package implement OIDC (id_token, discovery, userinfo) or OAuth2 only? (c) Supported matrix for PHP, Laravel, Filament, and Passport — and does it conflict with an existing Passport install? (d) How are client secrets stored, hashed, and rotated? (e) Are redirect URIs strictly validated, and are grants restricted to authorization-code + PKCE? (f) What is the upgrade contract — is a breaking change possible within a ^1.0 constraint?
Stack fit. Assumes Laravel 10/11+ with Filament v3 and Passport. Confirm the Passport dependency is shared rather than bundled — a second Passport install or a diverging version pin is the most likely early integration failure. PHP 8.2+ is a reasonable floor to assume and should be verified from composer.json rather than inferred.
Migration path. Greenfield adoption, since there is no incumbent to migrate off. Sequence: read the 1.0.0→1.0.1 diff, pin exactly 1.0.1 (not ^1.0) in composer.json with a lockfile committed, install in a non-production environment, publish and review migrations before running them, then wire one low-risk internal relying party end to end. Do not enable this on a panel that already serves production admin traffic until key custody and token lifetimes are decided.
Compatibility. Three independent compatibility axes need sign-off from the platform owner: framework (Laravel major), UI (Filament major — plugin APIs churn across majors), and protocol consumer (does each relying party speak the OAuth2 flows actually implemented). Filament major upgrades should be treated as potentially breaking for this plugin even at a 1.0.x version, because that is typical for the Filament ecosystem.
Sequencing.
Maintenance. Single-maintainer dependency with infrequent, thin release communication. Budget for the possibility of vendoring or forking; the practical mitigation is to keep the package's footprint narrow (no custom grant types, no forked views) so a fork stays cheap. Track upstream Laravel, Passport, and Filament majors as the real forcing functions — this package will lag them.
Support. No commercial support and no evident security policy. Internal ownership must be assigned to a named engineer or team, and a private fork with a patching cadence should be pre-authorized before production, not negotiated during an incident.
Scaling. Token issuance and introspection are database-backed, so the auth database becomes a shared dependency across every connected application. Two consequences: it needs to be the most carefully provisioned database you run, and token-table growth needs a pruning policy. Validation on the relying-party side should be cheap and cacheable; if relying parties call back to validate on every request, that is a fan-in bottleneck worth designing out early.
Failure modes. In rough order of severity:
Ramp-up. One to two days for a Laravel-fluent engineer to a working staging integration. Add one to two weeks of calendar time, not engineer time, for security review, secrets management setup, and writing the runbook — the runbook being the deliverable that actually determines whether this is safe to operate. Recommend a two-week evaluation window in staging with at least one deliberate key-rotation and revocation drill before production commitment.
How can I help you explore Laravel packages today?