Cascades caregiver shared-phone bypass pilot — 2026-04-29 evening into 2026-04-30 early morning continuation. Major work: - Adopted phased per-group CA rollout (corrects original tenant-wide §5 design that would have blocked off-site office users) - Step A: backfilled admin@ into excludeUsers on all 8 existing Cascades CA policies (mirrors sysadmin@ exclusion posture; Option 1 break-glass) - Outlook + Helpany + LinkRx assigned to Cascades - Shared Phones group and added to MHS kiosk app list (final dashboard: 5 caregiver apps) - Created cloud-only pilot user pilot.test@cascadestucson.com, SG-Caregivers-Pilot group, Business Premium license, vault entry pushed to Gitea vault repo - Built 4 CA changes: PATCH legacy all-users-MFA to exclude pilot group, CREATE 3 new Report-only policies (block off-network, block non-compliant, 8h sign-in frequency) with both admins excluded - Pilot phone wipe + re-enroll after first attempt stuck; PIN set, awaiting MHS to take over launcher and SDM sign-in prompt 6 new project/feedback memories. Resume point at top of new session log. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
24 KiB
2026-04-30 — Cascades caregiver bypass: phased CA design + admin exclusion + pilot user + 3 Report-only policies + phone wipe & re-enroll
User
- User: Howard Enos (howard)
- Machine: HOWARD-HOME
- Role: tech
- Session span: 2026-04-29 evening into 2026-04-30 early morning (continuation of 2026-04-29-howard-cascades-bypass-pilot-phase-b-buildout)
Resume point (READ THIS FIRST when picking back up)
The pilot phone is mid-enrollment after a wipe-and-re-enroll cycle. Howard has set the device PIN; the phone is showing "Syncing policies" while CloudDPC pulls the app payload from Managed Play. Next session resumes there.
What's still to do, in order
- Wait for MHS to take over launcher on the pilot phone. Once apps install (5-15 min from PIN-set), MHS becomes the kiosk launcher and shows the 5 caregiver apps (ALIS, Teams, Outlook, Helpany, LinkRx). One UI / Samsung default launcher should disappear.
- SDM sign-in prompt appears. Sign in as
pilot.test@cascadestucson.comwith the password fromclients/cascades-tucson/pilot-test-user.sops.yaml. Expected: password-only sign-in, NO MFA prompt (bypass working — pilot group is excluded from legacy all-users-MFA). - Compliance flips to compliant within ~5 min of sign-in (PIN check satisfied + Authenticator SDM registers pilot.test as the active shared-device user).
- Watch sign-in logs for 24-48h to validate Report-only policies (
CSC - Block caregivers off Cascades network,CSC - Block caregivers on non-compliant device,CSC - Caregiver sign-in frequency 8h) are firing as expected on the pilot user. - Flip Report-only → On when satisfied — three PATCHes in one batch.
- WiFiman cleanup — Howard removing manually from tenant.
Decisions still pending
- FIDO2 enrollment timing for
admin@,sysadmin@, and any future dedicated break-glass account. - When/whether to add a dedicated
breakglass@(currently sysadmin@ + admin@ are the de-facto break-glass under Option 1). - Audit retention 6yr — still deferred pending Azure pay-as-you-go subscription decision.
Session Summary
This session continued the 2026-04-29 caregiver shared-phone CA bypass pilot work after Howard interrupted with a btw replay correcting the original CA design. The original §5 design from user-account-rollout-plan.md was tenant-wide (includeUsers: All on policies 1-3) and would have blocked any office user signing in off-site who was not in SG-External-Signin-Allowed — a regression. Adopted the corrected design: phased per-group rollout scoped to SG-Caregivers-Pilot only. Legacy "Require multifactor authentication for all users" stays in place; its excludeGroups is PATCHed to remove the pilot group from scope. Office-staff posture unchanged. Saved to memory as project_cascades_ca_phased_rollout to prevent the design drifting back tenant-wide in future sessions.
After audit, both admin@ (Mike's) and sysadmin@ (Howard's) were already cloud-only Global Admins. sysadmin@ was excluded from all 8 existing CA policies; admin@ was in scope on 7 of 8. Howard chose Option 1 — mirror sysadmin@'s exclusion posture onto admin@ now, defer FIDO2 and dedicated break-glass for later. Step A executed: PATCHed admin@ into excludeUsers on all 8 existing CA policies, preserving the GuestsOrExternalUsers sentinel on policies that had it. Microsoft Graph CA policy reads have a ~5-second eventual-consistency window — initial verify-after-PATCH GETs returned stale state but the PATCHes had landed. Saved as feedback memory.
Outlook (added by Howard via Managed Play earlier in the day) was assigned to Cascades - Shared Phones group with intent required and added to the MHS kiosk app list alongside ALIS and Teams. Helpany (https://app.helpany.com/login) and LinkRx (https://pharmcare.linkrxnow.com/) were created as web apps, assigned to the same group, and added to the MHS kiosk. Final caregiver dashboard: ALIS, Microsoft Teams, Microsoft Outlook, Helpany, LinkRx. The pilot user pilot.test@cascadestucson.com was created cloud-only via the Tenant Admin SP, licensed with Business Premium (33 of 34 SPB seats free pre-pilot), and added to the new cloud-only group SG-Caregivers-Pilot. The first user creation lost the password to a script flow-control failure; an attempted PATCH-reset returned 403 because the Tenant Admin SP lacks a privileged directory role for password resets. Resolved by deleting and recreating the user with the password echoed up front. Vault entry written, encrypted, committed, and pushed end-to-end.
Built the four CA changes: PATCHed legacy all-users-MFA to exclude SG-Caregivers-Pilot, then created three new policies in Report-only — block caregivers off Cascades network, block caregivers on non-compliant device, and 8-hour sign-in frequency. Both admin accounts excluded from all three. Side discovery during the legacy PATCH: that policy already had excludeLocations: ['AllTrusted'] as a pre-existing tenant condition, meaning office staff already bypass MFA on Cascades trusted networks today. The pilot phone enrollment then went sideways twice — first on a saved QR (phone enrolled into a stuck partial dedicated mode, all custom policies state=unknown after hours and a reboot), and recovery required an Intune wipe + re-enroll with a fresh QR. Howard had to do normal Android setup first to update to Android 15 (Samsung FRP requirement), then factory reset, then scan from the welcome screen. Re-enrollment succeeded cleanly: new device record, all custom policies applied (compliance evaluated to nonCompliant pending PIN, restrictions and Wi-Fi compliant), device confirmed in the dynamic group. Howard set the PIN and the session ended with the phone showing "Syncing policies."
Key Decisions
- Phased per-group rollout, NOT tenant-wide cutover. Original §5 design would have collateral-damaged off-site office users. Corrected to
includeGroups: SG-Caregivers-Piloteverywhere; legacy all-users-MFA stays in place viaexcludeGroupsPATCH. Each future population gets the same per-group treatment when we expand. Memorialized inproject_cascades_ca_phased_rolloutto prevent regression. - Option 1 break-glass posture: no dedicated breakglass yet. Mirror
sysadmin@'s exclusion posture ontoadmin@so both daily-driver Global Admins are excluded from all 8 existing CA policies and all 3 new ones. FIDO2 deferred — Howard or Mike can enroll the YubiKey later. A real dedicatedbreakglass@can be added later if needed. Constraint:admin@andsysadmin@must always be able to sign in off-site without interference, which exclusion-everywhere guarantees. - Block grant directly for caregivers, not Require MFA. Caregivers have no personal device for MFA, so an MFA prompt they cannot satisfy is a worse UX than a clean block message. Future expansion to office staff will likely use MFA grants since office staff have MFA capability.
- All three new caregiver policies in Report-only at creation. Logs what would have happened during the validation window without enforcing.
CSC - Caregiver sign-in frequency 8h(session control) is also Report-only — flips to On together with the other two. - Do NOT delete legacy all-users-MFA until full phased rollout completes. Each new population gets added to its
excludeGroupsas it's onboarded. Only at the end of phased rollout (every population covered by a phased policy) does the legacy policy get deleted. This is the explicit anti-regression rule from the corrected design. - Delete-and-recreate the pilot user instead of granting Tenant Admin SP password-reset role. Tenant Admin SP can create users with passwords but cannot PATCH-reset existing user passwords (returns 403 — needs Authentication Administrator or User Administrator role). Granting that role broadens the SP's blast radius unnecessarily. The User Manager app (separate tier with the right scopes) is the right tool for password operations going forward.
- Wipe + re-enroll the stuck pilot phone instead of waiting longer. First enrollment attempt was stuck (all custom policies
state=unknownafter hours and a reboot) despite Intune metadata showing dedicated device mode. Cleanest path forward is destruction + clean enrollment, not deep diagnosis. Wipe via Graph then fresh QR scan resolved it cleanly. - Complete vault operations end-to-end (Howard feedback). When writing a new vault entry, do the full sequence (write → encrypt → commit → push) yourself; do not stop at "encrypted on disk, you push it." LF→CRLF Git warning on Windows is benign for SOPS yaml. Saved as feedback memory.
Problems Encountered
- Original CA design was tenant-wide and would have broken off-site office sign-ins. Howard caught this with a btw replay before any tenant-wide policies were built. Switched to phased per-group rollout. No production impact.
- Microsoft Graph CA policy reads are eventually consistent. Verify-after-PATCH GETs returned stale state for all 7 of 8 policies despite 204 PATCHes succeeding. A 5-second sleep before re-reading made the verify pass cleanly. Saved as feedback memory
feedback_graph_ca_policy_eventual_consistencyso future agents don't chase the same false-positive. - Tenant Admin SP cannot PATCH-reset existing user passwords (403 Authorization_RequestDenied). Lost a generated pilot password to script flow-control before it was echoed. Resolved by deleting + recreating the user, this time echoing the password up front. Saved as feedback memory
feedback_graph_password_reset_requires_role. - First pilot phone stuck after enrollment. All custom policies state=unknown for hours, zero apps detected, MHS not taking over launcher despite Intune showing
androidEnterpriseDedicatedDevice. Likely partial dedicated mode from a stale saved QR + residual setup state. Resolved by remote wipe (POST /managedDevices/{id}/wipe) + factory reset + fresh QR from the portal. - Samsung FRP / OS update gating dedicated re-enrollment. Phone needed Android 15 before dedicated mode would re-take cleanly. Howard had to do normal setup first to pull the OS update, then factory reset and re-scan from the literal welcome screen.
- Bash-in-PowerShell friction. Howard cannot directly run
bashfrom PowerShell. The trivial last-mile commit step on the vault repo had been handed off to him unnecessarily. Saved feedback memoryfeedback_complete_vault_operations_end_to_end— write + encrypt + commit + push the vault repo end-to-end going forward. - Ollama qwen3:14b hallucinated a different Cascades session during the /save narrative draft. Returned content about Entra Connect Sync setup, mailbox restoration, and Syncro ticket creation — none of which were in the prompt. Falled back to Claude-direct narrative writing per the skill's documented fallback. Tier 0 routing remains usable for shorter prose tasks but the qwen3 model demonstrably mixes context across prior Cascades work when the prompt is long. Worth a future test of qwen3-coder:30b or stricter prompting if /save Tier 0 routing is to be relied on.
Configuration Changes
Cascades tenant (207fa277-e9d8-4eb7-ada1-1064d2221498)
-
All 8 existing CA policies —
excludeUsersnow contains both471b13dc-3cf8-416b-a132-f5f3bc8d1cc8(sysadmin@) ande20f7f21-757a-48cd-bb24-7bdeeb1497d0(admin@).GuestsOrExternalUserssentinel preserved on the 3 policies that had it. Affected policies:- Microsoft-managed: Block legacy authentication (
ed1fe97a-9d99-408c-ae18-139d42f41803) - Microsoft-managed: Require phishing-resistant multifactor authentication for admins (
1be9295c-b23b-42ac-80a3-888eeb2003de) - Require MFA for admins (
3154dc8f-7321-42c9-adf4-a2517944a92c) - Require MFA for external and guest users (
49acf60d-3159-4ac9-8d48-35aa249e3209) - Block all legacy sign-ins that don't support MFA (
0a16bb5c-c7d2-4942-aa2a-b0551b872933) - Require MFA and a password change when high-risk users are detected (
9f123001-a95f-4e50-9860-4dd2254cccad) - Require MFA when risky sign-ins are detected (
76f1dd72-4003-4984-bb4a-6fcead072c2c) - Require multifactor authentication for all users (
7e87a1c7-4836-49df-8769-c4cccadd9dbe)
- Microsoft-managed: Block legacy authentication (
-
Legacy
Require multifactor authentication for all users(id7e87a1c7-4836-49df-8769-c4cccadd9dbe) —excludeGroupsnow containsSG-Caregivers-Pilot(0674f0bc-6ff4-49c7-802d-2abf591ba371). State remainsenabled. Pre-existingexcludeLocations: ['AllTrusted']preserved. -
NEW CA policy
CSC - Block caregivers off Cascades network(ide35614e1-e896-4a13-9407-076963af488f) — Report-only, includeGroups=SG-Caregivers-Pilot, excludeUsers=[admin@, sysadmin@], locations: include All exclude Cascades named loc (061c6b06-b980-40de-bff9-6a50a4071f6f), grant=BLOCK. -
NEW CA policy
CSC - Block caregivers on non-compliant device(idede985e2-ee7e-4521-88b2-34c847c3db20) — Report-only, includeGroups=SG-Caregivers-Pilot, excludeUsers=[admin@, sysadmin@], deviceFilterdevice.isCompliant -eq False, grant=BLOCK. -
NEW CA policy
CSC - Caregiver sign-in frequency 8h(id7d491c7a-ad90-4420-9990-40a1e676a76c) — Report-only, includeGroups=SG-Caregivers-Pilot, excludeUsers=[admin@, sysadmin@], sessionControls.signInFrequency{value: 8, type: hours, authenticationType: primaryAndSecondaryAuthentication, isEnabled: true}. -
NEW Entra group
SG-Caregivers-Pilot(id0674f0bc-6ff4-49c7-802d-2abf591ba371) — cloud-only, security-enabled, mail-disabled, mailNickname=SG-Caregivers-Pilot. One member:pilot.test@cascadestucson.com. -
NEW user
pilot.test@cascadestucson.com(id43919c7b-638c-4d38-9f94-89c1d07ce724) — cloud-only (onPremisesSyncEnabled: None), displayName "Pilot Test (Caregiver Bypass)", usageLocation US, accountEnabled true, forceChangePasswordNextSignIn false, licensed with Business Premium SPB SKU (cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46). Member ofSG-Caregivers-Pilot. Cloud-only test identity for the caregiver bypass pilot. Cleanup obligation: remove at end of pilot perproject_cascades_pilot_cleanupmemory. Password vaulted atclients/cascades-tucson/pilot-test-user.sops.yaml. -
NEW mobileApp
Microsoft Outlook(Managed Play, id6920b747-9b07-49d2-b420-67116d38f0b8) — assigned toCascades - Shared Phonesgroup (idea96f4b7-3000-45da-ab1f-ddb28f509526) with intent=required. Added to MHSkioskModeAppsarray. -
NEW mobileApp
Helpany(webApp, id97c294de-03ec-4053-b272-a4c956e408e9, appUrlhttps://app.helpany.com/login) — assigned required to shared-phones group, added to MHS kiosk. -
NEW mobileApp
LinkRx(webApp, ide4157faf-c47d-443d-96b3-59d7c4ba9ac2, appUrlhttps://pharmcare.linkrxnow.com/) — assigned required to shared-phones group, added to MHS kiosk. -
CSC - Android Shared Phones Restrictions(id070a76c2-a8c3-4f7f-9ba7-1f4ac5084184) — version bumped to 6.kioskModeAppsarray now contains 5 entries: ALIS, Microsoft Teams, Microsoft Outlook, Helpany, LinkRx. All other settings preserved from earlier session.
Pilot phone (SM-A146U serial R9TTC0JSDPJ)
- Wipe issued via
POST /managedDevices/c94e8086-81b8-4a2c-a86a-6bbf677cb72a/wipewithkeepEnrollmentData: false, keepUserData: false. Old Intune device record removed. - Re-enrolled as new Intune device record (id
1207c415-5a82-41a9-9bfd-eb37c0d680eb). Now Android 15 (auto-updated during the Howard-driven OS update step),deviceEnrollmentType: androidEnterpriseDedicatedDevice,ownerType: company,enrollmentProfileName: CSC - Android Shared Phones,managementAgent: googleCloudDevicePolicyController,complianceState: noncompliant(PIN now set, will re-evaluate on next sync). Confirmed inCascades - Shared Phonesdynamic group (3 of 3 members).
Vault (D:/vault, repo azcomputerguru/vault)
- NEW
clients/cascades-tucson/pilot-test-user.sops.yaml— pilot.test credential entry. Encrypted with both age recipients per.sops.yaml. Committed and pushed (commitb987410, range73de020..b987410).
claudetools repo (memory + session log additions)
Memory files added (will land in this session's commit):
.claude/memory/project_cascades_admin_accounts.md.claude/memory/project_cascades_pilot_cleanup.md.claude/memory/project_cascades_ca_phased_rollout.md.claude/memory/feedback_graph_ca_policy_eventual_consistency.md.claude/memory/feedback_graph_password_reset_requires_role.md.claude/memory/feedback_complete_vault_operations_end_to_end.md
Session log updates:
clients/cascades-tucson/session-logs/2026-04-29-howard-cascades-bypass-pilot-phase-b-buildout.md— UPDATE block at top of resume-point +[SUPERSEDED]marker on the original CA design correction table.clients/cascades-tucson/session-logs/2026-04-30-howard-cascades-ca-rollout-and-phone-reenroll.md— this file.
Commands & Outputs
admin@ exclusion backfill on 8 CA policies
# Pseudocode of the loop (full script ran via py heredoc)
for policy in graph_get('/v1.0/identity/conditionalAccess/policies').value:
users = policy.conditions.users
if ADMIN_ID not in users.excludeUsers:
users.excludeUsers.append(ADMIN_ID)
graph_patch(f'/v1.0/identity/conditionalAccess/policies/{policy.id}',
{'conditions': {'users': users}})
# Then sleep 5 and verify each — initial verify race-condition is expected.
Result: all 8 policies returned 204 on PATCH, all 8 verified post-sleep.
Outlook + Helpany + LinkRx kiosk update (PATCH on device restrictions)
curl -X PATCH ... \
https://graph.microsoft.com/beta/deviceManagement/deviceConfigurations/070a76c2-a8c3-4f7f-9ba7-1f4ac5084184 \
-d '{
"@odata.type": "#microsoft.graph.androidDeviceOwnerGeneralDeviceConfiguration",
"kioskModeApps": [
{"@odata.type":"#microsoft.graph.appListItem","name":"ALIS","appId":"fcbf803d-ceb7-4f4e-93ed-2be1b91a05f3"},
{"@odata.type":"#microsoft.graph.appListItem","name":"Microsoft Teams","appId":"0eb81676-299b-4eb2-bfd9-8be914a82f91"},
{"@odata.type":"#microsoft.graph.appListItem","name":"Microsoft Outlook","appId":"6920b747-9b07-49d2-b420-67116d38f0b8"},
{"@odata.type":"#microsoft.graph.appListItem","name":"Helpany","appId":"97c294de-03ec-4053-b272-a4c956e408e9"},
{"@odata.type":"#microsoft.graph.appListItem","name":"LinkRx","appId":"e4157faf-c47d-443d-96b3-59d7c4ba9ac2"}
]
}'
# HTTP 204
Pilot user create + license + group add
# Create group
POST /v1.0/groups { displayName: SG-Caregivers-Pilot, mailEnabled: false, securityEnabled: true, mailNickname: SG-Caregivers-Pilot }
# Create user
POST /v1.0/users {
accountEnabled: true,
displayName: "Pilot Test (Caregiver Bypass)",
mailNickname: pilot.test,
userPrincipalName: pilot.test@cascadestucson.com,
usageLocation: US,
passwordProfile: { password: <vaulted>, forceChangePasswordNextSignIn: false }
}
# License
POST /v1.0/users/{id}/assignLicense { addLicenses: [{ skuId: cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46, disabledPlans: [] }], removeLicenses: [] }
# Add to group
POST /v1.0/groups/{group_id}/members/$ref { @odata.id: https://graph.microsoft.com/v1.0/directoryObjects/{user_id} }
# Note: needed sleep ~10s after group create before add-member would succeed (eventual consistency)
Phone wipe + re-enroll
# Wipe
POST /beta/deviceManagement/managedDevices/c94e8086-81b8-4a2c-a86a-6bbf677cb72a/wipe \
-d '{"keepEnrollmentData": false, "keepUserData": false, "useProtectedWipe": false, "persistEsimDataPlan": false}'
# HTTP 204; managementState immediately became "wipeIssued"
# After Howard's factory reset + OS update + fresh QR scan, new device record:
# id 1207c415-5a82-41a9-9bfd-eb37c0d680eb, serial R9TTC0JSDPJ, Android 15
Reference Information
Cascades tenant
- Tenant ID:
207fa277-e9d8-4eb7-ada1-1064d2221498 - Tenant Admin SP appId:
709e6eed-0711-4875-9c44-2d3518c47063 - Cascades named location:
061c6b06-b980-40de-bff9-6a50a4071f6f(both WANs trusted) - Default domain:
cascadestucson.com
Pilot resources
- User:
pilot.test@cascadestucson.comid43919c7b-638c-4d38-9f94-89c1d07ce724 - Group:
SG-Caregivers-Pilotid0674f0bc-6ff4-49c7-802d-2abf591ba371 - Vault:
clients/cascades-tucson/pilot-test-user.sops.yaml - License: Microsoft 365 Business Premium SPB SKU
cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46
Admin accounts (Cascades)
admin@cascadestucson.com(Mike) — ide20f7f21-757a-48cd-bb24-7bdeeb1497d0— cloud-only Global Admin, excluded from all 8 existing CA policies + all 3 new ones, no FIDO2 yetsysadmin@cascadestucson.com(Howard) — id471b13dc-3cf8-416b-a132-f5f3bc8d1cc8— cloud-only Global Admin, excluded from all 8 existing CA policies + all 3 new ones, no FIDO2 yet
CA policy IDs (new)
CSC - Block caregivers off Cascades network—e35614e1-e896-4a13-9407-076963af488f— Report-onlyCSC - Block caregivers on non-compliant device—ede985e2-ee7e-4521-88b2-34c847c3db20— Report-onlyCSC - Caregiver sign-in frequency 8h—7d491c7a-ad90-4420-9990-40a1e676a76c— Report-only
Mobile app IDs (Cascades, beta endpoint — v1.0 hides Managed Play)
- ALIS (webApp) —
fcbf803d-ceb7-4f4e-93ed-2be1b91a05f3 - Microsoft Teams —
0eb81676-299b-4eb2-bfd9-8be914a82f91 - Microsoft Outlook (NEW) —
6920b747-9b07-49d2-b420-67116d38f0b8 - Helpany (NEW, webApp) —
97c294de-03ec-4053-b272-a4c956e408e9 - LinkRx (NEW, webApp) —
e4157faf-c47d-443d-96b3-59d7c4ba9ac2
Pilot phone state at session end
- Intune device id:
1207c415-5a82-41a9-9bfd-eb37c0d680eb - Old (wiped) device id:
c94e8086-81b8-4a2c-a86a-6bbf677cb72a— removed - Serial:
R9TTC0JSDPJ - Model: SM-A146U Samsung Galaxy A14 5G
- OS: Android 15
- Last sync: 2026-04-30T04:25:14Z
- Compliance: nonCompliant (re-evaluation pending after PIN set; will flip)
- Phone status when session ended: showing "Syncing policies"
Note for Mike
Two things to flag:
-
CA design change. The original §5 design in
user-account-rollout-plan.md(and the corresponding Track A item from earlier) was tenant-wide and would have blocked off-site office users — including yours — by policy 3 (the "block off-network unless allow-listed" one). I caught that with a btw replay before any of those tenant-wide policies were built. We're now on a phased per-group rollout: onlySG-Caregivers-Pilotis in scope today, legacy all-users-MFA still applies to everyone else exactly as before. When we expand to a new department, we add it to legacy'sexcludeGroupsand add it to the new policies'includeGroupsone population at a time. The corrected design is in.claude/memory/project_cascades_ca_phased_rollout.md— treat any "let's just push tenant-wide now that the pilot worked" suggestion as a regression of this decision and ping me. -
Your
admin@cascadestucson.composture changed. It's now excluded from all 8 existing CA policies + all 3 new ones, mirroringsysadmin@'s posture. Howard's call (Option 1). Net effect: your account no longer hits the admin-MFA policies — it's a CA-clean Global Admin. No FIDO2 enrolled yet. When you have time, enroll the YubiKey onadmin@(and ideally sit down and decide whether you want a dedicatedbreakglass@or to keep this Option 1 posture). Until then, your account's only protections are password + per-user Authenticator (no CA enforcement, no FIDO2). Not blocking, just noting the trade.
Session duration: ~7 hours (2026-04-29 ~21:00 PT through 2026-04-30 ~04:30 PT, with breaks while Howard drove the phone enrollment) Pilot status at session end: phone in "Syncing policies" state, pilot user vaulted, all CA changes live (legacy PATCH enforced, 3 new in Report-only)