korotovsky/sso-idp-bundle
korotovsky/sso-idp-bundle is a lightweight Symfony bundle that turns your application into an SSO identity provider. Centralize authentication and enable single sign-on across multiple Symfony apps with minimal configuration and native security integration.
Architecture fit — fails on the first criterion. korotovsky/sso-idp-bundle is a Symfony 2 bundle, not a Laravel package. It ships as a Bundle subclass with a DependencyInjection\Extension, compiler passes, and service definitions in Symfony's XML/YAML DI format — none of which Illuminate\Container can load. There is no service provider, no facade, no config/*.php file, and no extra.laravel block in composer.json. A Laravel target will fail at autoload/bootstrap, not at runtime logic, so there is no "try it and see" spike available.
The second architecture issue is scope and direction. This implements the Identity Provider role — the party that authenticates users and mints assertions. A Laravel application is far more commonly a Service Provider asking "is this user who they claim?" Standing up an IdP from an application monolith is legitimate, but it is an architectural commitment: your app becomes the trust root for every downstream system, and that decision must be driven by a protocol standard (SAML 2.0, OIDC), never by the availability of an unmaintained bundle.
Integration feasibility: low, and the cost is asymmetric. Zero stars, empty star metadata, score 0, zero dependents is the signature of an abandoned or archived repository, not a merely niche one. Symfony 2.x reached end of life in 2018; PHP 5.x security support ended in December 2018. Porting onto Laravel 10/11 + PHP 8.2 means rewriting DI wiring, replacing Symfony\Component\HttpKernel request/response with Illuminate\Http, migrating session and security context onto Laravel guards, and re-validating every cryptographic primitive on a modern runtime. That is a fork-and-rewrite, not an integration.
Technical risk is severe and concentrated where "move fast" is never acceptable — authentication.
each(), create_function, dynamic property deprecation, stricter type juggling). The port is not a formality.Key questions for the requester — each one can kill the initiative:
socialiteproviders is the fit.The TPM leverage here is not adoption — it is scoping. Read the repository as a requirements specification: metadata endpoint, AuthnRequest handling, assertion signing and encryption, certificate lifecycle and rotation, attribute mapping, session and SLO semantics. That list is the estimate input for build-vs-buy, and it is the asset worth keeping.
Stack fit. Assume Laravel 10/11 on PHP 8.2+ as the only defensible target. Direct use is out. Three viable shapes, in order of preference:
ServiceProvider. Highest control, highest cost, and you inherit the security review obligation in full.Migration path. There is no upgrade path in the conventional sense — no Laravel version this was ever compatible with. Whichever of options 1 or 3 you choose, the first deliverable is a protocol reverse-engineering artifact: endpoint list, message formats, signing scheme, session/ticket lifecycle, logout semantics. That document, not the code, is the reusable asset and the thing you can hand to an auditor or a vendor.
Compatibility. Catalog hard blockers before estimating: PHP version floor (5.x), Symfony component pins (http-kernel, dependency-injection, security-core at 2.x), sensio/framework-extra-bundle-era conventions, and assumptions about Symfony session/security firewalls. Laravel already ships Symfony components at 6.x/7.x — a 2.x pin will produce Composer resolution conflicts the moment it sits beside a modern Laravel app. Expect composer why-not to be the first debugging session.
Sequencing — five gates, each able to stop the work, each with a TPM-owned exit criterion:
Recommendation to communicate: unless IdP is a genuine product differentiator, stand up Keycloak (or buy Okta/Auth0/Entra) and integrate over OIDC. It answers the customer's "do you support SSO?" in weeks with vendor-backed security, and removes an entire class of security work — and every related audit finding — from the roadmap.
Maintenance: total ownership. Zero dependents, zero stars, no visible release cadence means no upstream fixes, no PHP 8.x compatibility work, no dependency bumps. Every CVE in a transitive Symfony 2.x component becomes yours to patch or mitigate. Budget roughly 15–20% of one engineer's time indefinitely for security patching alone, plus a spike whenever PHP or Laravel ships a major. The TPM should treat that as a permanent line item in capacity planning, not a one-off migration cost.
Support: entirely internal. No vendor, no community, no Stack Overflow corpus for a package nobody uses. Incident response is internal, and the first responder may be whoever wrote the port — a bus factor of one unless you deliberately document the protocol and rotate ownership. If this lands in audit scope (SOC 2, ISO 27001), expect findings on unsupported/EOL components in the authentication path; that is a compliance cost carried on the roadmap, and it affects which enterprise deals you can accept.
Scaling: volume is not the constraint, state is. IdP traffic is low and bursty — login events, not API calls. The real concerns are stateful: the ticket/session store becomes a single point of failure, and key material must be shared across instances via a secrets manager or HSM, never local files. The sidecar route inherits a per-request Symfony 2 kernel boot, which is fine at SSO volumes but caps you to a handful of instances and complicates horizontal autoscaling in containers.
Failure modes, ranked by blast radius:
For the TPM, each of these needs a pre-written runbook, a named on-call owner, and a customer-comms template before launch — particularly the key-rotation and logout cases, which fail loudly and are visible to every downstream partner at once.
Ramp-up. A senior engineer fluent in both Symfony and Laravel needs roughly a week to map the code thoroughly enough to trust an estimate, and several weeks to port it responsibly. The TPM does not need the code — the TPM needs the protocol artifact, the threat model, and the build-vs-buy cost comparison. Those three documents are what convert this repository from a dependency decision into a defensible roadmap decision, and they are deliverable within two to three weeks regardless of which integration shape is ultimately chosen.
How can I help you explore Laravel packages today?