jostkleigrewe/lib-php-eurip-sso
A PHP library for integrating EURIP single sign-on (SSO) into your applications, with helpers for authentication flows and session handling to simplify adding SSO support to Laravel or plain PHP projects.
JwtVerifier, structured OidcAuthenticationService, and dedicated controllers means the security-sensitive surface (token exchange, signature verification, key rotation) is now a maintained, tested dependency rather than a bespoke implementation your team owns. This is a strong argument for buy/adopt over build.eurip:sso:client-credentials) and token introspection (RFC 7662) unlock machine-to-machine product lines without a separate auth project.OidcSessionChangedEvent and a ready-made SessionMonitor.html.twig component make "single logout" a sellable enterprise feature rather than a compliance gap.sso_has_role / sso_has_permission / sso_has_group Twig helpers and claims DTO let you ship authorization-driven UI (role-gated nav, permission-aware actions) without per-page custom code.eurip:sso:cache-warmup and eurip:sso:test-connection turn "will login work after deploy?" into a pre-flight check, supporting faster deploy cadence and clearer on-call runbooks. eurip:sso:introspect supports support-engineering triage.OidcConstants interface→final class). This is a major-version-sized change delivered under a 0.x number — a PM should treat it as a scheduled migration workstream with QA on auth flows, not a patch bump.JwtVerifier is deliberately framework-agnostic — that supports reusing the same verification logic in workers, queue consumers, and non-HTTP entry points, and reduces lock-in if you later change front-end framework.Consider adopting when:
#[Autowire], #[Route], and #[AsEventListener], and removes the manual wiring escape hatches.Look elsewhere (or defer) when:
JwtVerifier and the PSR-based internals are portable; the rest is not.OidcController, OidcRouteLoader, EuripSsoFacade), removed service aliases, removed OidcClient methods, and the changed OidcClient constructor mean forked/overridden code will break.For executives (30 seconds):
The identity library we evaluated just shipped a substantial release. It now covers the full enterprise checklist — single logout, session monitoring, machine-to-machine authentication, and CLI/device login — plus command-line tooling that makes deploys and incident response safer. Two caveats: it now requires PHP 8.4 and Symfony 7/8, so adoption implies a runtime upgrade, and the release contains breaking API changes, so it is a planned migration, not a drop-in. Recommendation: fund the PHP/Symfony upgrade as a dependency, because this replaces custom auth code we would otherwise own — including the security-critical JWT verification we'd rather not hand-roll.
For engineering leadership:
v0.3.0 is effectively a 1.0-shaped release wearing a 0.3 label. The important change for us is architectural: JWT signature verification has been extracted into a dedicated, framework-agnostic
JwtVerifierwith explicit key-rotation retry behavior and real-keypair tests, and controller logic has been pulled into anOidcAuthenticationServicewith a typed error enum (OidcErrorCode). That is the difference between code we audit and code we maintain. Quality signals are credible — 60 tests, PHPStan Level 6 at zero errors, PSR-12 — and the new console commands give us a real pre-deploy health check. The costs are real: PHP 8.4+ floor, Symfony 7/8 only, and a long breaking-change list (removed facade, controller, route loader, service aliases, constants, and severalOidcClientmethods; constructor signature change). Treat this as a two-sprint migration with an auth-flow regression test suite, scoped alongside the runtime upgrade rather than on its own. If we're staying on PHP 8.2/8.3 this quarter, we should defer and pin to v0.2.x with eyes open that we're now on a legacy line.
For the delivery team:
Adopt v0.3.0 as part of the PHP 8.4 / Symfony 7+ upgrade, not before. Migration checklist: (1) delete any code implementing
OidcConstants— it is now a final class; (2) swapEuripSsoFacadeand the removed service aliases for FQCN constructor injection; (3) updateOidcClientconstruction to passJwtVerifieras the fifth argument, or go throughOidcClientFactory::create(); (4) move any JWKS preloading calls (preloadJwks,fetchAndCacheJwks,invalidateJwksCache) toJwtVerifier; (5) replace event::NAMEconstants with class-based dispatch and typed#[AsEventListener]; (6) drop the removed config keys and pointroutes.*at the new defaults. Then wireeurip:sso:test-connectionandeurip:sso:cache-warmupinto the deploy pipeline before switching traffic.
How can I help you explore Laravel packages today?