# Cascades Tucson — Intune / MDM Prerequisites Gap Check

- **Date:** 2026-04-19 (UTC)
- **Tenant:** `cascadestucson.com` (`207fa277-e9d8-4eb7-ada1-1064d2221498`)
- **Intune account ID:** `15b6c28c-47fa-40b0-a6af-b9e03ab959c3`
- **Method:** Read-only Graph API via Claude-MSP-Access app (no changes made)
- **Goal:** establish what's configured vs. what needs setup before enrolling 25 shared Android phones (AESDM) + 9 kitchen iPads (Intune DEM)

---

## Findings

| # | Prereq | Status | Notes |
|---|---|---|---|
| 1 | **MDM authority = Intune** | Not set (`null`) | `intuneAccountId` is populated so Intune is provisioned. Just the authority flag hasn't been toggled. One-click in the admin center. One-time irreversible choice. |
| 2 | **Apple MDM push certificate** | Not configured (`ResourceNotFound`) | Blocks ALL iPad/iOS management. Must generate at `identity.apple.com/pushcert` and upload. Annual renewal. |
| 3 | **Apple Business Manager / DEP token** | 0 tokens | Optional for 9 iPads — manual enrollment works without it, but lose management on factory reset. Recommended. |
| 3b | **Apple VPP token** | 0 tokens | Not required unless paid iPad apps need to be pushed. Skip for kitchen POS scenario. |
| 4 | **Managed Google Play enterprise** | `bindStatus: notBound` / `enrollmentTarget: none` | Blocks ALL Android Enterprise management (AESDM, dedicated, work profile). One-click bind in the admin center, sign in with a Cascades Google account. |

## Existing Intune objects

| Object | Count | Notes |
|---|---|---|
| Compliance policies | 0 | Clean slate |
| Device configuration profiles | 0 | Clean slate |
| Enrollment configurations | 5 | All are Microsoft built-in defaults (device limit, platform restrictions, WHfB, Windows 10 ESP, Windows Restore). None custom. |
| Android Device Owner enrollment profiles | 0 | None (need for AESDM / dedicated device mode) |
| Managed devices | 0 | None enrolled |

---

## Gap list — what Howard needs to do before enrolling devices

### Must-do (blocking)

1. **Set MDM authority to Intune.**
   Admin center → *Tenant administration → Mobile Device Management authority* → pick **Microsoft Intune**. Takes 5 seconds. Cannot be undone. Is a hard prerequisite for every step below.

2. **Upload Apple MDM push certificate.**
   Required for any iPad management. Process:
   - Intune admin center → *Devices → iOS/iPadOS → Enrollment → Apple MDM Push Certificate*
   - Download CSR from Intune
   - Upload CSR at `identity.apple.com/pushcert` using a *dedicated* Apple ID (recommend `mdm-push@cascadestucson.com` so turnover doesn't break it — not Meredith's personal, not kitchenipads@)
   - Download the `.pem` cert from Apple, upload back into Intune
   - **Annual renewal** on the same Apple ID — if the Apple ID is lost, ALL enrolled iPads must be wiped and re-enrolled

3. **Bind Managed Google Play account.**
   Required for AESDM and any Android Enterprise policies.
   - Intune admin center → *Devices → Android → Android Enterprise → Managed Google Play*
   - Click *Launch Google* → sign in with a dedicated Google account (recommend `managedplay@cascadestucson.com`, NOT a personal Google account)
   - Accept terms, link → bindStatus becomes `bound`

### Should-do (strong recommendation)

4. **Create Apple Business Manager account and link to Intune.**
   - Sign up at `business.apple.com` (free, takes ~15 min + an Apple ID verification phone call for the D-U-N-S number)
   - Create an MDM server entry in ABM named "Intune — Cascades"
   - Download ABM token, upload to Intune at *Enrollment → Apple → Enrollment program tokens*
   - For existing iPads: add their serial numbers to ABM manually (one-time)
   - For future iPads: buy them through Apple or an ABM-linked reseller and they auto-appear

### Not needed for current scope

5. **Apple VPP token** — only needed if pushing paid apps. Kitchen POS app is probably free or sideloaded.
6. **Windows Autopilot** — 89 Entra-registered Windows PCs exist, but Windows management is out of scope for this pass.

---

## Dependencies (do in this order)

```
Step 1 (MDM authority)
  │
  ├── Step 3 (Google Play bind) ──► can enroll Android phones
  │
  ├── Step 2 (Apple push cert) ──► can manually enroll iPads
  │        │
  │        └── Step 4 (ABM + token) ──► iPads auto-enroll + survive reset
```

Steps 1 and 3 together unlock the 25 Android phones. Steps 1 + 2 together unlock the 9 iPads (with ABM as the recommended polish).

---

## Policy scaffold (to be built after prereqs)

For the Android phones (AESDM):
- Enrollment profile: Android Enterprise *Corporate-owned, dedicated device*, mode = *AOSP multi-user* (this is AESDM) — generates a token/QR code for device enrollment
- Compliance policy: encryption on, screen lock 4+ digits, 2-min timeout, no developer options, no debugging, Android 11+
- Configuration profile: Wi-Fi (CSCNet), restrictions (no factory reset, no USB transfer, no unknown sources)
- Apps: Company Portal (system), Authenticator, Edge, ALIS (as web app), Teams — required, auto-install

For the kitchen iPads (Intune DEM):
- Create `dem-ipads@cascadestucson.com` user with Business Premium license assigned, mark as Device Enrollment Manager
- Enrollment profile: iOS/iPadOS, device-without-user-affinity, kiosk mode
- Compliance policy: passcode required, encryption on, no jailbreak
- Configuration profile: Wi-Fi (CSCNet VLAN 20), Single App Mode locked to the kitchen POS app, disable App Store, disable Settings
- Apps: kitchen POS app (required)

---

## Data sources

Raw Graph responses cached at `/tmp/remediation-tool/207fa277-e9d8-4eb7-ada1-1064d2221498/intune-prereqs/`:
- `org.json` — organization object (MDM authority field)
- `devicemgmt-beta.json` — deviceManagement root
- `apple-push.json` — Apple push cert
- `dep.json` — DEP tokens
- `vpp.json` — VPP tokens
- `gplay.json` — Managed Google Play binding
- `compliance.json`, `configs.json`, `enrollment.json` — existing policies
- `android-doe.json` — Android Device Owner enrollment profiles
- `managed-devices.json` — enrolled device inventory
