fix: Align ADCSESC3 creation and composition requirements BED-9336 - #3201
Open
JonasBK wants to merge 5 commits into
Open
fix: Align ADCSESC3 creation and composition requirements BED-9336#3201JonasBK wants to merge 5 commits into
JonasBK wants to merge 5 commits into
Conversation
Contributor
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository YAML (base), Organization UI (inherited) Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
JonasBK
force-pushed
the
BED-9336-fix-esc3
branch
from
August 25, 2026 10:20
7531582 to
f8041cc
Compare
JonasBK
force-pushed
the
BED-9336-fix-esc3
branch
from
August 25, 2026 11:52
f8041cc to
3ab7ef7
Compare
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description
Fixes remaining ADCSESC3 creation/composition mismatches and restores the required publisher context for
EnrollOnBehalfOf.This PR is based on
BED-9336-adcs-host-validation(PR3). It relies on that PR’s sharedHostsCAServiceeligibility logic; it does not add new graph kinds or properties.ESC3 certificate-template requirements
Aligns CT1 and CT2 signature validation across ESC3 post-processing and composition:
AuthorizedSignatures.AuthorizedSignatures = 0.AuthorizedSignaturesrequirement.AuthorizedSignatures = 1.Enrollment-agent restrictions
Treats missing or uncollected enrollment-agent restriction data as unrestricted.
DelegatedEnrollmentAgentis only required when restrictions were successfully collected and the Enterprise CA explicitly reports restrictions.EnrollOnBehalfOf publisher requirements
EnrollOnBehalfOfis no longer created from globally compatible templates alone. For a CT1/CT2 pair, their selected publishers must satisfy the same target-domain requirements:eca1 and eca2 may be the same CA. The host qualification follows the shared PR3 rules, including in-forest validation when the CA forest is resolvable.
The EOB relationship remains template-to-template and therefore does not store CA provenance. ESC3 creation and composition consequently revalidate the exact selected CT1 and CT2 publisher CAs before producing or returning an ESC3 path. This prevents an EOB relationship justified by one CA pairing from being reused with another incompatible pairing.
Tests
Added or updated coverage for:
Stack
BED-9336-adcs-host-validationBED-9336-fix-esc3main.Motivation and Context
Resolves BED-9336.
Before these changes, ESC3 could produce an edge that composition could not reconstruct, or composition could accept a publisher/CA pairing that was not valid for the edge’s target domain. EnrollOnBehalfOf could also connect templates from isolated or incompatible PKI contexts because it did not require the selected publishers to share a valid, hosted target-domain chain.
This PR makes the EOB precondition and concrete ESC3 selection agree on the required CA trust, host, and domain context.
How Has This Been Tested?
The integration test package compiles successfully. The database-backed integration suite was not run in this environment.
Screenshots
N/A
Checklist: