Skip to main content

Customer Prerequisites

Infrastructure

RequirementModel A (App Service)Model B (Self-hosted)
Server / computeAzure App Service (Linux, B1+ recommended)Linux host or Kubernetes/k3s node; ~1 vCPU / 1 GB minimum
Operating systemManaged by AzureAny container host (Docker 24+ / containerd)
Runtime.NET 10 (provided by App Service).NET 10 ASP.NET runtime, packaged inside the container image
Persistent storageApp Service filesystem (holds the SQLite metadata file)A PersistentVolume for the SQLite file — run a single replica, SQLite is single-writer
SSL certificateManaged certificate, or a custom domain certificate on App ServiceTLS terminated at the reverse proxy / ingress (e.g. cert-manager + Let's Encrypt)
DNSCNAME/A record for the portal hostname → App ServiceA/CNAME → your ingress or reverse proxy

Azure requirements

  • Azure subscription — required only for Model A. Not needed for Model B.
  • Microsoft Entra ID — required for both models; Entra is the identity provider and the source of every piece of data CET2 shows. Entra ID P1 is recommended (needed for Conditional Access step-up and other governance features).
  • Intune licensing — the customer tenant must be Intune-licensed and actively enrolling devices, or the device/compliance/app pages will simply be empty (this is expected, not a bug).

Administrative access required

RoleWhereWhy
Global Administrator (or Privileged Role Admin + Application Admin)Customer tenantGrants admin consent to the CET2 Data application; assigns directory roles to its service principal
Application AdministratorMSP / home tenantCreates and manages the two app registrations
Intune AdministratorCustomer tenantUseful for validating Intune data/actions; not required to run CET2
Privileged Role AdministratorCustomer tenantAssigns User Administrator / Authentication Administrator directory roles to the Data application's service principal — required only if enabling user disable/enable and Temporary Access Pass

Information checklist

Collect this from the customer before you start the deployment.

ItemWhy requiredExample
Tenant ID (Directory ID)Registered in CET2's tenant registry; used for token-issuer validation39aa2547-df4b-4d7d-ba70-22e645f16847
Tenant / organisation nameDisplayed in the portalContoso Ltd
Primary domainTenant identity, onboarding mappingcontoso.onmicrosoft.com / contoso.com
Azure subscription ID (Model A only)Hosts the App Service / Key Vaultxxxxxxxx-…
Consent administrator accountThe admin who will grant consent and assign rolesadmin@contoso.com (Global Admin)
Public portal URLUsed as the SPA redirect URI and API basehttps://cet.contoso.com
Certificate detailsThe Graph app-only certificate whose public key is uploaded to the Data appCN, thumbprint, expiry date
RBAC requirementsWho should get access, and at what level"Helpdesk group → Service Desk, scoped to Contoso"
Allowed users / groupsRBAC assignment targetsHelpdesk group object ID
Intune statusConfirms data will actually populate"Intune active, ~120 devices enrolled"
Sensitive-action scopeWhether disable/enable, reset access, and wipe should be enabled"View-only" vs "full remediation"

Continue to Azure App Registrations.