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

Openid Connect Bundle Laravel Package

itk-dev/openid-connect-bundle

Symfony bundle for OpenID Connect authentication. Configure OIDC providers, handle login and logout, discover endpoints, validate tokens, and map claims to users for secure single sign-on in Symfony applications.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Framework-fit check before anything else. Despite the "Laravel/PHP" framing, this is a Symfony bundle (itk-dev/openid-connect-bundle), not a Laravel package. It will not drop into a Laravel app. The first decision it informs is whether OIDC work justifies introducing a Symfony service alongside your Laravel estate, or whether you stay in-ecosystem (Socialite, league/oauth2-client, a hosted IdP SDK). That is an architecture decision, not a library pick.
  • Build vs. buy for OIDC — and the "buy" case just got stronger. OpenID Connect is security-critical plumbing: discovery, authorization code flow, ID token signature checks, JWKS rotation, nonce/state handling, clock skew. As of 6.1.0 the bundle now ships PKCE itself (previously something we assumed we'd have to verify or add), along with configurable scopes and config-bound validation. That is real scope removed from a hand-rolled implementation — roughly the 1–3 sprint-weeks saving still holds, but with fewer "we'll add that ourselves" asterisks.
  • Roadmap unblocking for enterprise/SSO asks. If a B2B customer or procurement review has "SSO / OIDC / no local passwords" on the checklist, this is a plausible accelerator for a Symfony-based internal tool or admin surface — enough to ship a pilot without committing to an identity vendor. Configurable scopes in 6.1.0 matters concretely here: Entra ID, Okta, and Keycloak all want slightly different scope sets, and that used to be a fork-or-patch conversation.
  • Runtime topology decision, newly explicit. 6.1.0 stops holding provider instances between requests and documents a worker-mode contract, with a CI gate (Igor) against state leaks. If you run Symfony under RoadRunner, Swoole, or FrankenPHP worker mode, this release is the difference between "probably fine" and "designed for it." If you run classic PHP-FPM, this is neutral-to-positive hygiene.
  • Support-load forecasting. Provider error callbacks (access_denied, misconfigured redirect URIs, tenant mismatches) are now handled rather than crashing into a 500. That's a tangible reduction in auth-related support tickets during a pilot — small feature, disproportionate operational value.
  • Use cases it fits: internal admin/dashboard SSO against Keycloak, Entra ID, Auth0, or Okta; small B2B portals where the customer is the IdP; replacing bespoke password auth on a back-office service; Symfony services running in long-lived worker runtimes.
  • Use cases it does not support: SAML, SCIM provisioning, step-up auth, MFA policy orchestration, or multi-tenant identity brokering. Those are separate roadmap items and separate buys.

When to Consider This Package

Consider it when all of these hold:

  • Your target service is genuinely Symfony 6/7, and you control that codebase.
  • Scope is a relying party (RP) — you are the client, not the IdP.
  • You accept pinning an exact version (now 6.1.x) and reading the source before trusting it.
  • You have engineering capacity to vendor or fork under MIT if the maintainer goes quiet.
  • The alternative is hand-rolling the flow, and hand-rolling is the worse option.

6.1.0 specifically shifts two evaluation criteria in its favour:

  • The spike got cheaper. The new docs on developing against a mock identity provider mean you can validate the flow before your customer's IdP access arrives. That removes the most common reason these evaluations stall.
  • The worker-mode question is answered. If your platform team asks "does this leak state across requests in a persistent worker?", there is now a documented contract and a CI gate rather than an assumption.

Look elsewhere when:

  • You are Laravel-first. Use Socialite (socialiteproviders/*), league/oauth2-client with a provider package, or a hosted IdP SDK. Do not adopt a Symfony bundle to solve a Laravel problem. Nothing in 6.1.0 changes this.
  • You need a support contract, SLA, or security disclosure process. MIT + no meaningful star count + no downstream dependents means no vendor, no CVE feed you can rely on, no peer-reviewed upgrade path. A healthy minor release is not the same thing as a maintained dependency — the maturity signal is unchanged by this release.
  • You're in a regulated or high-traffic path where auth outages are incidents. Auth deserves a maintained dependency or a paid IdP.
  • You need SAML, SCIM, or fine-grained authorization — out of scope by design.
  • You can't fund a security review. For auth code, "it's MIT and it works in the demo" is not a risk posture.

Practical evaluation gate before adoption: 30-minute spike against the mock IdP (now documented) followed by one against your real IdP; a read of token validation, PKCE generation, and JWKS caching code; a check of commit cadence and open-issue responsiveness. If any of those fail, fall back to league/oauth2-client + a maintained provider, or a hosted IdP.

How to Pitch It (Stakeholders)

For executives: There's a small, free, MIT-licensed component that implements OpenID Connect sign-in for Symfony applications. It could compress an SSO pilot from weeks to days and let us demo "log in with the customer's identity provider" without buying an identity platform. The latest release (6.1.0) is a genuine step forward: it adds PKCE, per-provider scope configuration, graceful handling of identity-provider error responses, and explicit support for modern long-running PHP runtimes — plus documentation and CI that make it cheaper to evaluate and harder to misconfigure. The caveat hasn't moved: no meaningful star count, no downstream projects depending on it, no vendor behind it. That means low license cost, non-trivial ownership cost — we'd own security review, version pinning, and a fork contingency. My recommendation is a timeboxed spike, not a platform commitment: prove it against one real IdP in a non-critical service, and keep a documented exit to a maintained client library or a paid IdP. Also flag the framework mismatch — this is Symfony, so if the target service is Laravel we should be evaluating Laravel-native options instead, and none of this release changes that.

For engineering: 6.1.0 is a minor release with no breaking changes, and it closes three of the things you'd have flagged in review: PKCE is now implemented in-bundle, provider instances are no longer held between requests (with a documented worker-mode contract and an Igor CI gate guarding against state leaks), and scopes plus config bounds are validated with clearer failure messages. Treat it as an accelerator with a known blast radius. Pin 6.1.x, vendor it, read the ID-token validation, PKCE, and JWKS caching paths before trusting them, add integration tests against a containerized Keycloak using the new mock-IdP docs, and write down the fork plan on day one. If the service is Laravel, stop — this bundle isn't for you; use league/oauth2-client with a maintained provider or Socialite.

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.
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels