php-istio/jwt-authentication-bundle
A Symfony bundle that authenticates requests using JWT tokens issued by Istio's request authentication policy, validating headers and claims so your PHP services can trust identity passed through the service mesh.
RequestAuthentication + AuthorizationPolicy) with app-side verification as defense-in-depth, versus building custom JWT middleware in-house. The package is small and single-purpose, so the realistic "buy" is borrowing ~a few hundred lines of glue rather than adopting a platform.firebase/php-jwt or lcobucci/jwt) or use a maintained Laravel equivalent" rather than "install this."Consider it when:
RequestAuthentication) inside the application, not just at the sidecar.AuthorizationPolicy doesn't silently expose endpoints.iss/aud/exp checks, and clock-skew handling — this package can compress that to a config block.Look elsewhere when:
For executives (one paragraph): This is a small open-source PHP component that lets a Symfony application verify identity tokens issued by Istio, the service-mesh layer we may use to secure internal service-to-service traffic. The new v2.0.0 release's only substantive change is added Symfony 6 support, delivered as a major version bump — meaning it's a maintenance/compatibility release, not a capability release. It is not a Laravel package and does not change our platform plans. Recommendation: do not adopt as a dependency for critical auth paths; instead treat it as a cheap reference design if and when we scope in-mesh identity verification, and budget a small amount of engineering to implement the equivalent in our own framework with a well-maintained JWT library. Cost of adoption is low; cost of depending on a single-maintainer auth component is not.
For engineering leads: v2.0.0 signals Symfony 6 compatibility via a major bump (expect breaking changes if you were on v1.1.0). Scope is narrow: validate Istio JWTs at the app layer, complementing — not replacing — mesh-level RequestAuthentication/AuthorizationPolicy. The codebase is small enough to audit in an afternoon, which is the right first step given the maintenance profile (one contributor's first PR constitutes the entire release). Concrete plan: (1) read the diff and the validation logic, (2) confirm JWKS caching and key-rotation behavior, (3) check iss/aud/exp/clock-skew handling and failure modes (fail-closed?), (4) if we're Laravel, port the validation contract into middleware over lcobucci/jwt rather than pulling in a Symfony bundle, (5) pin versions and add contract tests so a future major bump can't surprise us. Flag the bus-factor risk explicitly in the dependency review — for authentication code, that risk needs an owner and a migration-off path before it goes near production.
How can I help you explore Laravel packages today?