fix: Avoid needless user escalation during auto-enroll #47676
+19
−10
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.
Auto-enroll was generating sudo prompts on machines without a TPM, which is pointless because without a TPM the ceremony cannot succeed.
The root cause is that auto-enroll was trying to gather device data (which needs sudo) before checking for a TPM (which does not need sudo). Changing the order of the operations (which is how EnrollDeviceInit is coded) resolves the issue. Other device trust operations are already careful to do that, so the problem is exclusive to auto-enroll. It's also arguably worse for auto-enroll, as it is an unprompted ceremony if the corresponding setting is enabled.
Changelog: Avoid tsh auto-enroll escalation in machines without a TPM