8.7 KiB
User
- User: Howard Enos (howard)
- Machine: Howard-Home
- Role: tech
Session Summary
Offboarded Tamra Matthews (Move-In Coordinator, Marketing/Sales) from Cascades of Tucson
after she left the facility in June 2026. Followed the canonical termination runbook
(docs/security/termination-procedures.md) and the Alma Montt offboarding (2026-06-25) as the
proven pattern. Work spanned the M365 cloud tenant (via the remediation-tool skill) and the
on-prem AD domain controller CS-SERVER (via the rmm skill); both passwords were vaulted.
Established live pre-state first: Tamra's M365 object (tamra.matthews@cascadestucson.com,
id 2d9cf0d1-2b0b-424e-9cd1-91eaac408837) is cloud-only (onPremisesSyncEnabled=null) with a
single O365 Business Standard license and membership in Sales, All Cascades, and
SG-SSPR-Eligible. The on-prem Tamra.Matthews is a separate, non-synced object in
OU=Marketing,OU=Departments with no explicit group memberships. All four mailbox-delegate
recipients (Crystal Rodriguez, Megan Hiatt, Meredith Kuhn, Ashley Jensen) resolved as
UserMailboxes; all three target groups were static (not dynamic), so removable.
Before mutating anything, surfaced one genuine compliance fork to Howard: unlike Alma (no PHI), Move-In Coordinator is a resident-intake / PHI-adjacent role, so the runbook's 7-yr Litigation Hold could apply. Howard authorized the Alma-style posture — shared-mailbox + zero-deletion, free the seat, no litigation hold (revisit if the PHI determination changes; hold remains available since the tenant has Business Premium/Exchange Plan 2).
Executed the M365 sequence (revoke sessions, block sign-in, vaulted password reset, convert to
SharedMailbox, grant the 4 delegates FullAccess+AutoMapping, hide from GAL, remove license, strip
3 groups), then the on-prem AD lockdown (reset password, Disable-ADAccount, move to
OU=Excluded-From-Sync). Verified every step against live state. Vaulted both passwords, wrote the
offboarding record, reconciled the AD current-state doc + share roster, and synced. Per Howard's
direction, AutoMapping was then fixed for all 4 delegates and a /save run before proceeding to a
breach check on Megan Hiatt.
Key Decisions
- No litigation hold despite PHI-adjacent role — Howard explicitly authorized the same preserve-but-no-hold posture as Alma. Documented the deviation in the offboarding record so the PHI-role/no-hold decision is auditable.
- Treated the M365 object as cloud-only and the AD object as separate —
onPremisesSyncEnabled=nullconfirmed the M365 account is cloud-mastered; the domain lockdown was a distinct operation on CS-SERVER (same split as Alma). - Removed license only AFTER shared-mailbox conversion — per runbook, so the mailbox is never a licensed-then-unlicensed user mailbox at risk of default-retention deletion.
- Fixed AutoMapping by spaced, one-at-a-time re-grants rather than leaving Megan/Meredith on manual-add — Howard wanted the box to auto-attach and stay.
Problems Encountered
- AutoMapping silently rolled back for 2 of 4 delegates. The first pass added all 4 in a rapid
loop with
AutoMapping:$true; the cmdlet echoed[FullAccess]for all 4, but a readback showed only Crystal + Ashley persisted — Megan + Meredith were NONE. Cause: rapid sequential AutoMapping writes contend on the samemsExchDelegateListLinkmultivalued attribute on Tamra's mailbox; a failed link-write aborts the wholeAdd-MailboxPermissiontransaction, so the middle writes lost the race and rolled back entirely. Resolved by re-granting one user at a time, spaced ~6-8s, withRemove-MailboxPermission→ poll-until-NONE →Add-MailboxPermission -AutoMapping $true→ verify-persists. Both took on the first spaced attempt. Logged toerrorlog.md(--friction). - Graph read-replica lag — immediately after
PATCH accountEnabled=false(HTTP 204), a verify read still showedaccountEnabled=true; a re-read seconds later showed false. Not a failure, just eventual consistency. Same lag bit the Meredith remove (still showed FullAccess right after the remove), handled with a poll-until-NONE loop. - msExchDelegateListLink not readable via REST — the Exchange Operator REST
Get-Mailboxschema doesn't expose the attribute, so AutoMapping can't be directly read; persistence of anAutoMapping:$truegrant (no rollback) is the success signal used instead.
Configuration Changes
- Created:
clients/cascades-tucson/docs/security/offboarding-2026-06-30-tamra-matthews.md(offboarding record). - Created:
clients/cascades-tucson/session-logs/2026-06/2026-06-30-howard-tamra-matthews-offboarding.md(this log). - Created (vault):
clients/cascades-tucson/tamra-matthews.sops.yaml(encrypted; m365_password + ad_password + metadata). Committed + pushed to the vault repo. - Edited:
clients/cascades-tucson/docs/servers/active-directory.md— OU=Marketing Tamra.Matthews row struck + annotated OFFBOARDED/disabled/Excluded-From-Sync. - Edited:
clients/cascades-tucson/docs/migration/share-group-roster-proposed-2026-06-25.md— Tamra(leaving)→(OFFBOARDED 2026-06-30)(4 lines). - Appended:
errorlog.md— EXO AutoMapping rollback friction entry.
Credentials & Secrets
- Tamra Matthews offboarding passwords (emergency/audit only; DO NOT re-enable without
authorization): vault
clients/cascades-tucson/tamra-matthews— fieldsm365_password,ad_password. Generated random, complexity-guaranteed; not pasted into chat/tickets. Scratchpad plaintext was scrubbed after vaulting.
Infrastructure & Servers
- M365 tenant: cascadestucson.com — Tenant ID
207fa277-e9d8-4eb7-ada1-1064d2221498 - Tamra M365 object id:
2d9cf0d1-2b0b-424e-9cd1-91eaac408837(cloud-only) - Removed license SKU:
f245ecc8-75af-4f8e-b61f-27d8114de5f3(O365 Business Standard) — seat freed - Delegate mailbox GUIDs: megan.hiatt
448588b1-cb16-41e4-95b3-a496ebf0c7e8; meredith.kuhn02ebe159-818e-4814-a72a-3620dea944a0 - Groups removed from:
Sales757e7628-ff38-477c-a5a1-71b27e94d365(Unified),All Cascades0344d8ae-bf3c-4b2f-b30b-c9fa93a20aa2(Unified),SG-SSPR-Eligibled6044864-a0ef-4c30-ba37-cdba7074437e(security) - On-prem DC: CS-SERVER (192.168.2.254),
cascades.local; GuruRMM agent id (live this session)c39f1de7-d5b6-45ae-b132-e06977ab1713. Tamra final DNCN=Tamra Matthews,OU=Excluded-From-Sync,DC=cascades,DC=local, Enabled=False. - Remediation apps used: Security Investigator (
bfbc12a4, Graph+EXO read), Exchange Operator (b43e7342, EXO write), User Manager (64fac46b, Graph user/group/license write), Tenant Admin (709e6eed, password reset — no PAA elevation needed for a non-admin target).
Commands & Outputs
- Block sign-in:
PATCH /users/{id}{"accountEnabled":false}→ HTTP 204 (verify lagged true→false). - Revoke sessions:
POST /users/{id}/revokeSignInSessions→ HTTP 200. - Password reset:
reset-password.sh … tamra.matthews …→[OK] no elevation needed(non-admin). - Convert shared: EXO
Set-Mailbox -Type Shared→RecipientTypeDetails=SharedMailbox. - Grants (final): all 4
Get-MailboxPermission -User <u>→["FullAccess"]. - License remove:
POST /users/{id}/assignLicenseremoveLicenses=[f245ecc8…] → 0 licenses. - Group removes:
DELETE /groups/{gid}/members/{id}/$ref→ 204 ×3. - AD lockdown (RMM cmd
a788a445…, exit 0):Set-ADAccountPassword -Reset+Disable-ADAccount+Move-ADObject→Enabled=False, DN inOU=Excluded-From-Sync, Groups=0. - AutoMapping fix: per-user
Remove-MailboxPermission→ poll NONE →Add-MailboxPermission -AutoMapping $true→ persists (Megan + Meredith, first spaced attempt).
Pending / Incomplete Tasks
- ALIS — Howard handling; unsure Tamra used ALIS. If she had a staff profile, disable it (M365 SSO tie already severed by the sign-in block).
- Breach check on Megan Hiatt — NEXT step this session. Megan's account carried a
CREDENTIAL_STUFFING_ACTIVEmarker in the April tenant inventory; Howard recalls an April remediation that should have stopped it — verify it held (/remediation-tool check megan.hiatt@…). - Litigation hold — not applied (Howard authorized); revisit only if Tamra's PHI-access determination or a legal hold changes.
Reference Information
- Offboarding record:
clients/cascades-tucson/docs/security/offboarding-2026-06-30-tamra-matthews.md - Termination runbook:
docs/security/termination-procedures.md - Prior offboarding (pattern):
docs/security/offboarding-2026-06-25-alma-montt.md - Vault:
clients/cascades-tucson/tamra-matthews - Cascades wiki:
wiki/clients/cascades-tucson.md