mi-lopez/oneloginsaml-bundle
OneLogin SAML bundle for PHP apps that adds SAML 2.0 single sign-on via OneLogin's toolkit. Configure your identity provider, support SP- and IdP-initiated logins, and map SAML attributes to local users. A lightweight way to add enterprise SSO without building a custom SAML stack.
Scope correction up front: despite the request framing this as a "Laravel/PHP package," mi-lopez/OneloginSamlBundle is a Symfony bundle, not a Laravel package. That distinction drives most of this assessment.
Architecture fit
security firewall as a custom authenticator. This is the idiomatic way to add SAML SP support to Symfony.php-saml toolkit, which carries the actual cryptographic and protocol logic. The bundle is a thin integration layer; the real risk sits one level down in the upstream toolkit.Integration feasibility
Technical risk (ranked)
hslavich/OneloginSamlBundle; this appears to be a downstream fork. There is no community to catch regressions, no security review, and no guarantee it tracks upstream fixes. Treat it as self-maintained vendored code, not a dependency.php-saml is not a fast-moving, well-resourced project. Verify the pinned version, whether it is current, and whether any known CVEs (XML signature wrapping, xmlsec handling, XXE) are patched in that pin. This is the single most important due-diligence item.InResponseTo replay protection, clock-skew tolerance, and encrypted assertions are all places where a thin or stale wrapper becomes an auth bypass. Any adoption requires a security review, not just a code review.Key questions to resolve before any commitment
24slides/laravel-saml2 or an OIDC/proxy approach instead.)hslavich/OneloginSamlBundle, and how far behind is it?onelogin/php-saml version is pinned, and what is its CVE and EOL status?Stack fit
hslavich/OneloginSamlBundle unless there is a specific, documented reason this fork exists. Adopting a zero-signal fork over a maintained upstream needs justification, not the reverse.24slides/laravel-saml2) or a thin service around onelogin/php-saml directly, giving you control over the pin.Migration path
NameID, email, groups) onto internal user records; decide JIT provisioning vs. pre-provisioning vs. SCIM.Compatibility
php-saml version explicitly and commit the lockfile. Verify PHP version support against the app runtime (the toolkit has historically lagged newer PHP releases).ext-openssl and typically ext-dom/ext-xml; confirm the container image has them.Sequencing Security review of the pinned toolkit → choose upstream vs. fork (or Laravel-native path) → staging integration with test IdP → attribute/role mapping → SLO and edge cases → flagged production cutover → decommission local auth later, not at cutover.
Maintenance
php-saml security advisories.Support
hslavich issues may or may not apply to this fork's state — an ambiguity that costs time during incidents.Scaling
Failure modes to instrument and alert on
NotOnOrAfter validation failures, easy to misdiagnose as a code bug.Invalid audience.NameID format mismatch (persistent vs. email vs. unspecified) → users authenticate but can't be matched to local accounts.InResponseTo validation → the security-review item that should block launch if unresolved.Ramp-up
Bottom line: if the stack is Symfony and you accept ownership of a lightly maintained fork plus a security review of the underlying SAML toolkit, this is a workable but low-leverage dependency — prefer the maintained upstream. If the stack is Laravel, this package is the wrong tool and the evaluation should pivot to a Laravel-native SAML package or a SAML-to-OIDC broker before any engineering time is spent.
How can I help you explore Laravel packages today?