mirror of
https://github.com/openziti/ziti.git
synced 2026-09-10 16:55:41 +00:00
08145805d0
* backport openziti/ziti#4118 to release-v2.0.x disambiguate overlapping ext-jwt-signer kids by issuer - binds external JWT tokens to signers by exact issuer claim rather than by key ID, so signers drawing from a shared signing-key pool resolve deterministically - binds controller-issued tokens by key ID first, preserving controller token resolution and preventing an external signer configured with a controller's issuer from capturing controller access tokens - removes the external key-ID fallback so a token whose issuer matches no configured signer is not bound to an unrelated signer that happens to share its kid - adds GetControllerIssuerByKid to the TokenIssuerCache interface and implementation - skips disabled external signers in GetIssuerByKid so a disabled signer sharing a kid cannot poison resolution for an enabled one - adds an integration test with two HTTPS JWKS providers sharing a key and kid, covering the enabled-collision and disabled-poison cases - adds the test PKI files the new test reads (pki/root/certs/root.cert, pki/ctrl1/certs/server.chain.pem, pki/ctrl1/keys/server.key), copied byte-identical from main where they are generated by tests/testdata/create-pki.sh * backport openziti/ziti#4118 to release-v2.0.x clarifies ext-jwt token issuer binding comments and godoc - documents that controller issuers are keyed by controller id and that a controller issuer's key ID is the fingerprint of its TLS certificate - documents that an external kid match is ambiguous because signers can share a signing-key pool, and that a definitive binding requires resolving by issuer claim - clarifies the overlapping-kid test comment covering why issuer-claim binding is required when a disabled signer shares a kid