-
Notifications
You must be signed in to change notification settings - Fork 844
feat: RFC 8705 mutual-TLS client authentication for CF app instance identity #3972
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
rkoster
wants to merge
132
commits into
cloudfoundry:develop
Choose a base branch
from
rkoster:feat/rfc8705-mtls-client-auth
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
132 commits
Select commit
Hold shift + click to select a range
fe24edc
feat(model): add tls_client_auth constant and logic to ClientAuthenti…
rkoster 91f18c9
feat(model): add CLIENT_AUTH_TLS_CLIENT_AUTH to TokenConstants
rkoster 8d21fd4
feat(model): add TlsClientAuthConfiguration model class
rkoster 7649861
feat(model): add tlsClientAuthConfiguration field to UaaClientDetails
rkoster 95a01db
fix(model): add equals/hashCode to TlsClientAuthConfiguration and Cla…
rkoster 5f18709
feat(model): add mtls_endpoint_aliases and tls_client_auth to OpenIdC…
rkoster 95fc065
feat(server): add java-buildpack-client-certificate-mapper-jakarta de…
rkoster f883780
feat(server): register ClientCertificateMapper filter for /oauth/mtls/*
rkoster ca390e3
feat(server): add TlsClientAuthentication cert chain validation service
rkoster ee6201f
feat(server): add isTlsClientAuth / validateTlsClientAuth to ClientDe…
rkoster b0c3b20
fix(server): deserialize TlsClientAuthConfiguration from additionalIn…
rkoster 5443718
feat(server): allow tls_client_auth in ClientCredentialsTokenGranter
rkoster 446a8a3
feat(server): add MtlsClaimsEnhancer UaaTokenEnhancer for cert-derive…
rkoster fa226ea
feat(server): add mtls_endpoint_aliases to OIDC discovery document
rkoster 40515e5
Fix @Value key in OpenIdConnectEndpoints to match ERB-emitted mtls.en…
rkoster 3964568
fix(server): add OAUTH_11 order constant and dedicated mTLS security …
rkoster f954da6
fix(server): handle flat String PEM in getTlsClientAuthConfiguration;…
rkoster 0ed40d4
fix(server): fix MtlsClaimsEnhancer for DB-loaded clients and Diego m…
rkoster 08da0cd
fix(review): address PR feedback on mTLS client auth
rkoster e038d5d
test: update OIDC discovery tests for mtls_endpoint_aliases and tls_c…
rkoster c9be2f0
fix(review): fix JsonProperty collision and support full cert chain i…
rkoster 901e4f8
test: update tlsClientAuthConfigRoundTripsViaJson for @JsonIgnore design
rkoster ad24fe6
feat: add subTemplate and audTemplates to TlsClientAuthConfiguration
rkoster 04a3dfd
test: fix audTemplates equality isolation in TlsClientAuthConfigurati…
rkoster 66d8173
refactor: restructure enhance() into phase 1/2 (vars + dot-notation)
rkoster 14f4eca
fix: document single-level nesting, add conflict test, restore comment
rkoster 16d366a
feat: add phase 3 sub/aud template rendering to MtlsClaimsEnhancer
rkoster 70a03f6
fix: static PLACEHOLDER pattern, StringBuilder, restore comment, rena…
rkoster f4fcdb0
feat: read tls-client-auth-sub-template and aud-templates from flat B…
rkoster e94d338
fix: apply token enhancer overrides after UAA defaults so sub/aud tem…
rkoster 046f03d
fix(review): isValidMethod accepts null method with CA-only config
rkoster 553992d
fix(review): use LdapName for RFC 2253-safe DN parsing in MtlsClaimsE…
rkoster 73483c5
test(review): confirm PKIX validation tolerates trust anchor in prese…
rkoster afc8801
fix(review): run ClientCertificateMapper filter before Spring Security
rkoster 36f1f57
fix(review): require tls_client_auth before deriving mTLS claims
rkoster 7b6af4f
feat: configure Tomcat connector to capture client certs without CA v…
rkoster 3e500b2
fix(review): parameterize isCa in signCert instead of hardcoding true
rkoster 2855b3a
feat: add per-client tls-client-auth-trusted-proxy-ca to TlsClientAut…
rkoster 3abec45
feat: read tls-client-auth-trusted-proxy-ca in ClientDetailsAuthentic…
rkoster d182fa7
feat: read tls-client-auth-trusted-proxy-ca in MtlsClaimsEnhancer.loa…
rkoster 90b506b
feat: capture genuine TLS peer certificate before ClientCertificateMa…
rkoster 84125c1
feat: register RawPeerCertificateCaptureFilter before ClientCertifica…
rkoster e65f611
fix(review): add behavioral proof that captured attribute survives Cl…
rkoster 1a19dbb
feat: validate raw TLS peer certificate against per-client trusted-pr…
rkoster f61ff3a
fix(review): log swallowed exceptions in isCertificateFromTrustedProxy
rkoster e0d5056
fix: resolve per-client TlsClientAuthConfiguration before fetching ce…
rkoster 8a34536
fix(review): use hasCertificateFromRequest() as a cheap early exit in…
rkoster 25e6a14
fix: resolve per-client TlsClientAuthConfiguration before fetching ce…
rkoster 1ba3a09
test: add stringPathInAdditionalInformationLoadsTrustedProxyCa for Mt…
rkoster 9a3c6fa
docs: clarify hasCertificateFromRequest javadoc covers raw TLS peer c…
rkoster db82bb5
feat: reject tls-client-auth-ca/tls-client-auth-trusted-proxy-ca when…
rkoster f14cfcf
fix: gate zone-endpoints client creation on uaa.mtls-enabled
rkoster c1b0326
fix: gate ClientAdminBootstrap YAML client config on uaa.mtls-enabled
rkoster febb328
fix(review): include clientId in checkMtlsClientConfigAllowed error m…
rkoster 949c829
fix: disable TLSv1.3 on the mTLS connector to work around JSSE PHA li…
rkoster 63b1df6
fix: advertise no acceptable-issuer constraint in the mTLS connector'…
rkoster 28d2b82
docs: update RawPeerCertificateCaptureFilter javadoc to describe the …
rkoster aa51177
feat: register FIPS Bouncy Castle JSSE provider for the mTLS connector
rkoster 1e0b698
feat: add BCJSSESSLContext, a BCJSSE-backed Tomcat SSLContext
rkoster 15e8c50
test: cover the fail-fast path when BCJSSE is not registered
rkoster 38febe6
feat: serve the mTLS connector's SSLContext from FIPS BCJSSE (TLS 1.3…
rkoster f687fa1
fix: derive BCJSSEUtil's implemented protocols/ciphers from BCJSSE, n…
rkoster b054b80
test: verify TLS 1.3 client-auth negotiation on the BCJSSE connector
rkoster 7496ce8
test: remove clientSocketOfferingBothTls12And13, unused after the TLS…
rkoster 9becf1c
fix(review): reject enhancer overrides of protected JWT claims
rkoster 838bfc3
fix(review): run mtls filters for zone-path mTLS requests too
rkoster a3f1173
docs(review): document tls_client_auth and topology-dependent trusted…
rkoster 78335c4
fix(review): scope tls-client-auth-trusted-proxy-ca to the proxy path…
rkoster aa07229
test(review): cover blank XFCC header and hasCertificateFromRequest i…
rkoster 29103f0
docs(review): correct trusted-proxy-ca guidance to strict path separa…
rkoster d2175c0
Merge remote-tracking branch 'origin/develop' into feat/rfc8705-mtls-…
rkoster 1163fc9
feat(review): add tls-client-auth-required-claims to TlsClientAuthCon…
rkoster ca7fc59
refactor(review): relocate claim-mapping extraction to TlsClientAuthe…
rkoster d84a180
feat(review): add certificateSatisfiesRequiredClaims to TlsClientAuth…
rkoster c565fe5
fix(review): enforce tls-client-auth-required-claims during tls_clien…
rkoster 4a772df
docs(review): document tls-client-auth-required-claims
rkoster 5b63fdd
fix(review): reject proxy-forwarded requests where ClientCertificateM…
rkoster 1f39eaf
fix(review): fail closed on client-details lookup failure in MtlsClai…
rkoster 5dbb65a
fix(review): enforce end-entity certificate constraints for tls_clien…
rkoster ed178dd
test(review): assert specific rejection messages in end-entity constr…
rkoster 24dadff
fix(review): allow secretless mTLS clients via the zone client API
rkoster 852b28b
fix(review): validate tls-client-auth-claim-mappings/templates/requir…
rkoster 6f99d70
fix(review): reject null/blank tls-client-auth-required-claims values
rkoster aff499d
fix(review): use possessive quantifier in PLACEHOLDER regex to preven…
rkoster 333a446
fix(review): fail token issuance instead of silently dropping cnf on …
rkoster c4d8aee
fix(review): bound template length to actually close the ReDoS gap
rkoster 1aeffdf
fix(review): apply end-entity certificate constraints to the trusted-…
rkoster 9883511
fix(review): fail fast if an existing BCJSSE provider isn't genuinely…
rkoster 225e574
docs(review): document uaa.mtls-enabled in the configuration reference
rkoster 0e78d80
fix(review): distinguish wrong-provider-class from wrong-FIPS-mode er…
rkoster a7b77e3
fix(review): only advertise tls_client_auth when mTLS is actually ena…
rkoster bf6149a
fix(review): only advertise the mtls_endpoint_aliases when mTLS is en…
rkoster 3384e00
fix(review): fail fast if an existing BCFIPS provider isn't genuinely…
rkoster 59b76c8
test(review): guard the tls_client_auth / mtls_endpoint_aliases coupl…
rkoster 0070a1c
docs(review): clarify that the mTLS TLS-layer change is connector-wide
rkoster 1babf25
docs(review): add REST Docs coverage for the /oauth/mtls/token endpoint
rkoster 2390647
docs(review): wire the tls_client_auth REST Docs snippets into the re…
rkoster c1bbd85
fix(test): enable uaa.mtls-enabled for pre-existing discovery-documen…
rkoster b31e33f
fix(review): keep outbound IdP auth methods separate from inbound tls…
rkoster d0a0497
fix(review): reject tls client auth in code exchange
rkoster b13db7c
fix(review): derive inbound mTLS solely from tls-client-auth-ca and f…
rkoster 36aa21f
test(review): make mTLS docs client secretless
rkoster cc5bf5d
fix(review): persist secretless mTLS docs client
rkoster 67f7cf2
fix(review): clear persisted mTLS docs client secret
rkoster 8ebd5eb
refactor(review): remove unused mTLS docs client binding
rkoster 3b889d4
docs: document CA-only inbound mTLS selection
rkoster be41a4e
fix: reject blank CA for secretless zone clients
rkoster 0a194a1
fix: narrow mTLS token endpoint boundary
rkoster e524955
docs: correct mTLS configuration references
rkoster d479e85
docs(review): render a TLS-capable mTLS curl and align client-auth se…
rkoster b8cc7bb
fix(review): normalize mTLS CA representations for zone clients
rkoster 47d9d72
fix(review): handle null zone client additional information
rkoster 8899760
fix(review): validate nested zone mTLS claim configuration
rkoster 6967990
fix(review): validate nested zone mTLS configuration
rkoster eaafe83
fix(review): fail closed for nested mTLS configuration
rkoster b912c12
Merge remote-tracking branch 'origin/develop' into feat/rfc8705-mtls-…
rkoster 34581fd
docs(review): align mTLS examples with JWT federation
rkoster 7abdc26
docs(review): retain opaque auth code example
rkoster 316de20
fix: extract all OU values from multi-valued RDNs
rkoster e902aef
docs(review): verify mTLS JWT certificate binding
rkoster 86174f3
docs(review): render required mTLS client ID
rkoster d3a2bda
fix(review): validate mTLS properties without mappings
rkoster 1e83ee7
fix(review): validate trusted proxy CA
rkoster bb516a8
test: remove invalid trusted proxy CA fixture
rkoster db63eeb
fix(review): validate configured client auth CA
rkoster 78e348f
test: use valid client auth CA in bootstrap tests
rkoster ad7a4df
fix(review): gate mTLS endpoint and require flat client config
rkoster 38a6a73
fix: remove nested mTLS client configuration
rkoster ca9398b
fix(review): require mTLS authentication for mTLS clients
rkoster 2bc2d2a
fix(review): validate and clear mTLS client config
rkoster aeb4398
fix(review): preserve flat mTLS client config on copy
rkoster 471ad57
test: reject expired mTLS client certificates
rkoster File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.