gauss-allianz/shibboleth-authentication-bundle
Symfony bundle that adds Shibboleth single sign-on authentication to your application, letting you integrate federated identity providers and protect routes with Shibboleth-based login.
Architecture fit. This is a Symfony bundle, not a Laravel package, so the first TPM-level finding is a stack mismatch: it cannot be dropped into a Laravel application. The bundle's model — read Shibboleth SP attributes injected by the web server (typically Apache mod_shib), map them to a Symfony user, and hand off to Symfony's security firewall — is conceptually portable, but the implementation is coupled to Symfony's bundle/config/DI conventions and its Security component interfaces. For a Laravel estate, the reusable asset is the pattern and attribute-mapping logic, not the code. A Laravel team would implement an equivalent as a custom auth guard plus middleware, or adopt a native SAML package instead.
Integration feasibility. Feasible only under specific preconditions: (a) the application sits behind a properly configured Shibboleth SP (native mod_shib or a FastCGI/authorizer shim) that terminates federation and sets Shib-* / eppn / mail-style headers; (b) the app server is never directly reachable, so those headers cannot be spoofed; (c) the target Symfony version falls inside the bundle's declared Composer constraints. None of these are verifiable from the repository metadata supplied — stars (0), dependents (0), and the opportunity score (28.96) all signal an unvalidated, likely single-author artifact, possibly extracted from one organization's internal deployment.
Technical risk. High, concentrated in four areas:
Key questions.
Stack fit. Treat this as reference architecture, not a dependency unless the estate is Symfony and the version matrix checks out. For Symfony: install behind an existing SP, wire the bundle's firewall factory, and define the attribute-to-user mapping explicitly in config rather than accepting defaults. For Laravel: do not attempt a bridge; either (i) implement a thin guard/middleware reading the same SP headers — small, auditable, and fully ours — or (ii) use a maintained SAML SP library and skip mod_shib entirely. The second option removes a moving part (the Apache module) but adds XML-signing and metadata-handling surface, so it is not automatically cheaper.
Migration path. If a legacy in-house Shibboleth integration exists, the bundle's value is as a clean-room template for consolidating attribute mapping and firewall config. Budget a spike to read the source and extract: which headers it trusts, how it resolves/creates users, whether it handles just-in-time provisioning, and what it does on logout. That extraction is a day or two of engineering and de-risks everything downstream.
Compatibility. Verify before committing: composer.json PHP and symfony/* constraints, presence of tests, last commit date, and whether the branch targets a maintained Symfony LTS. Apache-2.0 is commercially clean with an explicit patent grant — a genuine positive and the main reason to read rather than discard the source.
Sequencing.
Maintenance. Assume we maintain it. With zero dependents there is no upstream community to absorb framework changes; every Symfony major becomes our migration. The realistic TCO is "internal fork from day one," which is acceptable only if the code is small — auth adapters usually are — and if we consciously accept ownership.
Support. No vendor SLA, no issue-tracker responsiveness expectation, no security advisory channel. For an authentication component in a regulated or education context (GDPR, FERPA-adjacent data), that absence must be covered by internal security review and an incident runbook naming an owner.
Scaling. Low risk: the bundle is stateless per request — the SP does the federation work and the app reads headers. Horizontal scaling is unaffected. The real scaling constraint is organizational: each new application requires SP configuration and IdP attribute-release negotiation, which is coordination cost, not compute.
Failure modes. Enumerate and instrument them: SP down or misconfigured (all logins fail hard — no local fallback unless explicitly built); IdP metadata or certificate expiry (federated login breaks silently at rotation); attribute release narrowing by the IdP (user provisioning fails with confusing errors); header spoofing if the network boundary regresses (silent account takeover); session/logout divergence leaving valid local sessions after IdP logout. Each needs an alert and a documented response — IdP cert expiry in particular is the classic 2 a.m. page.
Ramp-up. Engineering: low-to-moderate — a competent Symfony/PHP developer reads the bundle in a day. The scarce skills are Shibboleth SP operations and federation metadata management, which usually sit with a network/identity team, not the app team. Secure that team's commitment before scoping, because it — not the package — determines the timeline.
Recommendation for decision. Do not adopt as a dependency on adoption signal alone; the 0/0/28.96 profile is disqualifying for a production auth path. Approve a two-day timeboxed source review plus SP feasibility spike. If the estate is Symfony and the version constraints hold, a small internal fork is defensible. If the estate is Laravel — as the brief implies — close it out and fund a native guard or SAML library instead.
How can I help you explore Laravel packages today?