johnriveragonzalez/saml2-okta
Laravel package for integrating Okta SAML2 single sign-on into PHP applications. It helps configure SAML authentication and service/identity provider settings to streamline Okta SSO login flows for Laravel projects.
Architecture fit: filamentSaml2Okta is a Filament panel plugin that layers SAML 2.0 Service Provider (SP) authentication against Okta as the Identity Provider (IdP). Architecturally it is a thin auth adapter: it registers a Filament login route/provider, delegates protocol handling to a PHP SAML toolkit, and hands a resolved user back to Laravel's guard/session. That is the correct shape for the problem — SSO should not touch domain logic, and Filament's panel/provider abstraction is the right seam. It fits any Laravel app where a Filament admin panel needs enterprise-mandated SSO and where Okta is the sanctioned IdP.
Integration feasibility: Moderate. The expected path is composer require, publish config, populate SP entity ID / ACS URL / IdP metadata (or metadata URL), register an Okta SAML app, map attribute statements (email, firstName, lastName, groups), and enable just-in-time user provisioning or attribute-based matching to existing users. Most effort is on the Okta side and on identity-mapping decisions, not on PHP. Two non-obvious tasks drive the estimate: deciding the local user-matching key (email vs. Okta NameID/subject) and deciding whether group claims drive Filament role/permission assignment.
Technical risk:
onelogin/php-saml), Filament major version (v3 vs v4), and Laravel major. Version 2.x of the plugin implies a prior breaking line — v1→v2 upgrade notes are not evidenced here, so treat the v1/v2 boundary as unverified.Johnrivera7). Recent releases are documentation-only (SECURITY.md, README badge, changelog), which is a healthy hygiene signal but not evidence of active feature or security-patch cadence. Low release velocity is a supply-chain concern for an auth-critical dependency.SECURITY.md indicates automated package-health checks and a defined private vulnerability-reporting channel — both are meaningful for internal security review and procurement.Key questions:
SECURITY.md exists — is there a published response SLA, and is there a security contact with a track record?Stack fit: Assumes a conventional Laravel + Filament stack (Blade/Livewire admin surface, Eloquent users, standard session guard). No mismatch expected — the plugin targets the panel's own login flow rather than wrapping the whole app. It does not replace API auth; if the same app exposes machine or mobile clients, plan for token-based auth as a separate track.
Migration path:
2.0.x and read the v1→v2 changelog before upgrading anything. If already on v2.0.1, v2.0.2 is a documentation-only bump and is safe to take in a routine dependency refresh.Compatibility: Validate against the exact Filament major in use — Filament panel/auth APIs changed across 3→4, and a plugin pinned to one major will not silently work on the other. Verify PHP and Laravel version constraints against the platform's support window. Check tenant isolation if the app is multi-tenant: SAML config and IdP metadata may need to be per-tenant, which is a common gap in single-tenant-oriented plugins.
Sequencing:
Maintenance: Low code churn, but the burden shifts to configuration and certificate lifecycle, which is recurring and unbudgeted in most estimates. Pin the version, subscribe to GitHub releases, and track the pinned SAML toolkit's advisories independently of this package. The documentation-only v2.0.2 is a routine bump; expect no operational change and no regression risk beyond the version string.
Support: Community-supported, single maintainer, no commercial SLA. For enterprise use, that argues for either (a) a maintained fork or (b) treating the SAML protocol path as internally owned and reviewable. The new SECURITY.md gives a private disclosure channel — a prerequisite for most security reviews and a genuine procurement unblock, even though it changes no code.
Scaling: SAML is login-path only; steady-state cost is a session lookup, so throughput scaling is a non-issue. Watch two things instead: IdP metadata/certificate fetching on the login hot path (cache it, and never let a metadata URL outage block all logins), and JIT provisioning bursts or group-sync volume if group claims are large — Okta caps assertion/attribute size, and large group lists get truncated silently.
Failure modes:
NameID format and logins fail or, worse, users are mismatched.Ramp-up: A Laravel developer familiar with Filament needs roughly 1–3 days to a working staging integration, with the majority of that spent in Okta configuration and identity-mapping decisions rather than PHP. Add meaningful time for the security review (assertion validation, cert handling, disclosure policy), the pilot, and the break-glass runbook — realistically one to two weeks end-to-end for a production rollout by a small team. Okta admin access and coordination with the identity team should be secured before the sprint starts; that dependency, not the code, is the usual schedule risk.
How can I help you explore Laravel packages today?