Skip to content

Add ChromeOS Wi-Fi enrollment via ACME Device Attestation - #546

Merged
tashian merged 6 commits into
smallstep:mainfrom
llewis1234:docs/chromeos-wifi-enrollment
Aug 10, 2026
Merged

Add ChromeOS Wi-Fi enrollment via ACME Device Attestation#546
tashian merged 6 commits into
smallstep:mainfrom
llewis1234:docs/chromeos-wifi-enrollment

Conversation

@llewis1234

Copy link
Copy Markdown
Contributor

Summary

  • Adds a "ChromeOS with Google Workspace (ACME Device Attestation)" section to the wireless networks guide, covering RADIUS server config, the EAP-TLS Wi-Fi network setup in Google Admin, setting the issuer pattern, and verification/troubleshooting
  • Replaces the old inline Wi-Fi certificate auto-selection steps in the browser certificate setup guide with a pointer to the new section, since the two now depend on the same underlying device identity certificate

Blocked on #545 — this branch is stacked on top of it, so the diff below currently includes #545's changes too. Once #545 merges, this diff will automatically collapse down to just this PR's own changes and it'll be ready for review. Opening now as a draft so it's visible and trackable rather than sitting only in my fork.

Test plan

  • vale run against changed files (noise-filtered against house style — no unaddressed findings)
  • markdown-link-check run against changed files — all internal/external links resolve once Add ChromeOS device identity certificates tutorial #545 is merged
  • Visual preview via the docs renderer (not yet done — recommend before merge)

🤖 Generated with Claude Code

@CLAassistant

CLAassistant commented Aug 1, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

Comment thread tutorials/protect-wireless-networks.mdx Outdated
Comment thread tutorials/protect-wireless-networks.mdx Outdated

<Alert severity="info" mb={4}>
<div>
Skip Step 1 (credential) and the Wi-Fi resource created at the top of Step 3 for ChromeOS. Neither applies here: the client certificate comes from Certificate Manager directly, and the Wi-Fi network profile is delivered by Google Admin rather than by Smallstep.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Eventually we'll want these resources to still be created, so that the ChromeOS agent can get a full configuration, with more use cases automatically handled. We'll have to ensure that we have docs on root distribution for all use cases configured for ChromeOS.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, interesting. I understand why a credential might be valuable for this, but is the extension also going to be capable of taking over Wi-Fi or VPN config settings?

Comment thread tutorials/protect-wireless-networks.mdx Outdated
Comment thread tutorials/protect-wireless-networks.mdx
llewis1234 added a commit to llewis1234/smallstep_docs that referenced this pull request Aug 2, 2026
- Trim the redundant "not through MDM/Smallstep resources" clause.
- Trust store only needs the authority's root — ChromeOS's EAP-TLS
  handshake already includes the client intermediate.
- "No RADIUS traffic" isn't always a certificate-selection failure;
  it can also mean no device identity certificate was issued at all.

Per Herman's review comments on smallstep#546.
@llewis1234
llewis1234 force-pushed the docs/chromeos-wifi-enrollment branch from 0b3c143 to 3c51717 Compare August 2, 2026 21:55
Comment thread tutorials/connect-google-workspace-to-smallstep.mdx Outdated
5. Click **Continue**
6. Select **OpenID Connect (OIDC)** as the provider
7. Set a name, e.g. "Smallstep Google Workspace Sync"
8. Set the issuer URL to **https://container.googleapis.com/v1/projects/prod-us-central1-e5bd/locations/us-central1/clusters/primary**

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there any way to get a cleaner issuer URL?
(I think the answer is no, because it's a Google token and a Google URL...)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@hslatman Just a half-formed thought here: would it be worth the effort or even valuable at all to have a separate GCP project that acts as issuer for this? Maybe something branded, and that can be differentiated from the prod tenant.

Comment thread tutorials/protect-wireless-networks.mdx Outdated
llewis1234 and others added 5 commits August 3, 2026 15:57
- Trim the redundant "not through MDM/Smallstep resources" clause.
- Trust store only needs the authority's root — ChromeOS's EAP-TLS
  handshake already includes the client intermediate.
- "No RADIUS traffic" isn't always a certificate-selection failure;
  it can also mean no device identity certificate was issued at all.

Per Herman's review comments on smallstep#546.
Homelab-specific advice from testing this setup — not realistic
guidance for enterprise customers, who won't be running their own
FreeRADIUS server. Also addresses the ambiguity Carl flagged about
whether this implied running freeradius on the Chromebook itself.

Per Carl's review comment on smallstep#546.
@llewis1234
llewis1234 force-pushed the docs/chromeos-wifi-enrollment branch from 1493482 to e10033c Compare August 3, 2026 21:04
@llewis1234

Copy link
Copy Markdown
Contributor Author

All inline feedback addressed, and Carl's directly-pushed commit ("Some suggested updates") is merged in as-is:

  • Removed the redundant "not through MDM/Smallstep resources" clause (L801)
  • Added "no cert issued at all" as a cause in the "no RADIUS traffic" troubleshooting bullet (L853)
  • Trust store guidance corrected to just the root cert, since ChromeOS's EAP-TLS handshake already includes the client intermediate (L857)
  • Completed the incomplete Installation URL sentence in step 14 — confirmed via live testing in Google Admin that step 15's "Installation URL (see above)" is a real dropdown option, so no change was needed there (L164)
  • Removed the FreeRADIUS troubleshooting tip entirely — that was homelab-specific advice from my own testing setup, not realistic guidance for enterprise customers (L848)

Two threads are intentionally left open since they're follow-up architecture questions for Herman, not doc fixes: the WIF issuer URL cleanliness question and whether the extension will eventually take over Wi-Fi/VPN config.

Still in Draft — I'll mark it ready once #545 merges, since right now its diff includes #545's changes too.

tashian
tashian previously approved these changes Aug 5, 2026
@llewis1234
llewis1234 dismissed tashian’s stale review August 10, 2026 17:12

The merge-base changed after approval.

@tashian
tashian marked this pull request as ready for review August 10, 2026 17:12
@tashian
tashian requested a review from a team as a code owner August 10, 2026 17:12
@tashian
tashian merged commit 8b5201a into smallstep:main Aug 10, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants