Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Lightsaml Symfony Bridge Laravel Package

kidatsy/lightsaml-symfony-bridge

Symfony bridge for LightSAML that integrates SAML authentication into Symfony applications. Provides service container wiring and configuration for using the LightSAML toolkit to build Service Provider or Identity Provider flows.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. Unchanged. This is a Symfony bundle, not a Laravel package. It exists to wire the LightSAML PHP library into Symfony's dependency-injection container, event dispatcher, and security firewall. Laravel has no bundle/kernel-bundle concept and a materially different service container, HTTP kernel, and auth stack (guards/middleware vs. Symfony firewalls/listeners). There is no composer require-and-go path into a Laravel app; adopting it would mean either running a Symfony sidecar or porting the bundle's wiring by hand into Laravel service providers. Release 1.0.5 does not touch framework wiring, so the poor architectural fit stands.

Integration feasibility. Low-to-moderate and mostly indirect. The bundle's value is configuration glue over LightSAML (SP metadata generation, AuthnRequest handling, assertion validation, attribute mapping). In Laravel you would not reuse the bundle; you would reuse the underlying library (lightsaml/lightsaml or a maintained fork) and re-implement the glue. That is real work and duplicates what a Laravel-native SAML package already provides. Treat this repository as a reference implementation of the SSO flow, not as a dependency. 1.0.5 is an internal idiom change only — it neither improves nor worsens the porting surface.

Technical risk. Still high, and the new release slightly sharpens the concern rather than relieving it. 1.0.5 replaces Class::class with get_class() for instantiated objects and full namespaced strings otherwise, explicitly citing PHP 5.6 compatibility. That is a cosmetic refactor: no security-relevant changes to signature validation, canonicalization, XML parsing, or replay handling, and no framework or dependency-constraint movement. It also tells you something about the supported platform — a release line optimizing for PHP 5.6 (end-of-life December 2018) is anchored to a runtime your stack does not use. The repository still has essentially no community validation, no dependents, no visible CVE response process, and depends on a LightSAML generation that predates current SAML hardening expectations. SAML remains security-critical surface (signature validation, XML canonicalization, assertion replay, XXE). One patch release does not constitute a maintenance cadence or a security posture.

Key questions.

  • What is the actual driver: SAML SP for an enterprise IdP, or a general "SSO" checkbox? If the latter, OIDC via Socialite may be simpler.
  • Which IdP (Okta, Azure AD/Entra, ADFS, Shibboleth) and which bindings/profiles (SP-initiated only, or IdP-initiated, SLO)?
  • Is there an existing Laravel-native SAML package already approved, and why was this bundle surfaced (likely a Symfony-era artifact in a repo search)?
  • Who owns security review of assertion validation, and what is the audit/pen-test requirement?
  • Is there a hard dependency on LightSAML specifically, or would a maintained SAML library be acceptable?
  • Who maintains the package now, and is 1.0.5 the start of a maintenance line or a one-off patch? Is there a published security policy, CI, or CVE process?
  • Is there a branch or roadmap for PHP 8.x and Symfony 5/6, or is 5.6-era compatibility the intended target? Will the 5.6 support floor be dropped?
  • Does 1.0.5 imply the 1.0.x line was previously broken on PHP < 8.0 in instance-level ::class usages, and are there other latent runtime-incompatibility fixes queued behind it?

Integration Approach

Stack fit. Mismatch, unchanged. Target stack is Laravel (Eloquent, service providers, HTTP middleware, guards). This package targets Symfony 3-era kernels and, as of 1.0.5, still explicitly accommodates PHP 5.6. Do not attempt to install it into a Laravel composer.json as a runtime dependency; expect dependency-resolution failures and no framework integration.

Migration path. Recommended: do not migrate this package — replace its function. For a Laravel SP, evaluate a maintained Laravel SAML package (e.g., a php-saml-backed wrapper such as aacotroneo/laravel-saml2, or a maintained OneLogin/onelogin/php-saml integration) or OIDC via laravel/socialite if the IdP supports it. Use this repository only as a reading reference for LightSAML configuration shape (lightsaml config keys, SP metadata, attribute mapping) if you need to translate an existing Symfony setup. 1.0.5 does not change this calculus — it is a patch-level internal refactor with no API or behavior change, so there is no new upgrade or migration obligation to account for. If a Symfony service must remain (legacy app), keep it as a separate service and federate at the IdP or via a shared session/token — do not embed.

Compatibility. Unchanged and still out of range. Modern PHP (8.2/8.3) and current Laravel are outside what this code was written for; 1.0.5 is a backwards-compatibility tweak toward older PHP, not a forward-port. Symfony 3.x bundle conventions (Bundle class, Resources/config, XML/YAML service definitions, services.yml compiler passes) have no Laravel equivalent. LightSAML itself is effectively dormant; pinning to maintained forks is required regardless, which further distances the bundle from anything installable.

Sequencing.

  1. Confirm requirements with the IdP: protocol (SAML vs OIDC), flows, attribute claims, SLO, signing/encryption.
  2. Spike a Laravel-native SP against the IdP in a sandbox; capture metadata exchange and an end-to-end login.
  3. Security review of assertion/signature handling and replay protections in the chosen library.
  4. Implement attribute mapping and JIT user provisioning (or explicit user linking) in a Laravel guard/listener.
  5. Add integration tests with a mock IdP; document cert rotation and metadata refresh.
  6. Only if a Symfony service must interoperate, design the IdP-level or token-level federation boundary.

Release 1.0.5 introduces no step here. It is not a trigger to re-open the Symfony-bundle path.

Operational Impact

Maintenance. Effectively unmaintained, with one caveat now recorded: rather than "no releases since 2017," there has been a single subsequent patch (1.0.5) consisting of a class-name resolution idiom change for PHP 5.6 compatibility. One cosmetic patch does not establish triage, cadence, or a security-response capability, and the repository still has negligible stars/dependents. If adopted (which I'd advise against), your team owns the code permanently — including patching transitive security issues in the SAML stack. Budget for a fork-and-own model or, better, choose a maintained dependency. The 5.6-targeting nature of 1.0.5 makes fork-and-own more likely, not less, since your runtime is not the one being optimized for.

Support. Community support is nonexistent; no vendor. A single recent patch release does not constitute a support channel or an escalation path. Escalation is internal only. For a security-adjacent auth component, that is a hard gap — SSO outages block every user, and there is no external party to call.

Scaling. SAML SPs scale fine horizontally (stateless assertions, shared session/cache for request-ID/replay tracking). The bundle itself is not the scaling concern; the concern is that an unsupported stack becomes a bottleneck for every auth change request. Attribute mapping and session stores need to be designed for multi-instance (Redis/session), not file-based. Nothing in 1.0.5 bears on this.

Failure modes.

  • Dependency resolution failure on install (Composer conflicts), including the 5.6-era assumptions the 1.0.x line encodes.
  • Latent runtime incompatibilities of the kind 1.0.5 patched — other < PHP 8.0 constructs may remain and surface only on specific code paths at login time.
  • Silent breakage after IdP metadata/certificate rotation if refresh isn't automated.
  • Signature/canonicalization validation gaps → auth bypass or XXE if the 2017 library is used unpatched.
  • Clock skew and assertion expiry causing intermittent login failures.
  • No replay protection if request IDs aren't persisted → assertion replay risk.
  • Attribute drift when the IdP changes claims → users mis-provisioned or denied.
  • Single-point failure: broken SSO locks out all users, including admins — need a break-glass local admin path.

Ramp-up. Low to start (Laravel SAML packages have decent docs) but high for anyone trying to use this bundle, since they must first learn Symfony bundle conventions, then translate — and now also reconcile a PHP 5.6 compatibility floor with a modern runtime. Realistic effort for a competent Laravel engineer: 1–2 days to spike a native SAML package end-to-end against a test IdP; 1–2 weeks to production-harden (guard, provisioning, tests, cert rotation, runbook). Attempting to port this bundle would consume multiples of that with a worse security posture. Recommend the native path and retire this artifact from consideration; 1.0.5 is noted and does not change the recommendation.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route