1. Systemarchitektur
EntraWatch fungiert als Serverless-Proxy-Applikation auf Basis von Cloudflare Pages und Workers. Das Frontend (Single Page Application) fragt Metadaten nicht direkt bei Microsoft an, sondern routet diese durch die Backend-Funktion /api/entra-data.ts. Dies verhindert die Offenlegung sensibler OAuth2-Secrets (Client ID & Secret) im DOM.
2. API Limitations & Fallbacks
Das System ist auf den Microsoft Entra ID Free Tier optimiert. Es nutzt die Graph API (v1.0), um Basis-Verzeichnisdaten auszulesen.
- User
signInActivity: Das PropertylastSignInDateTimewird vom Backend explizit via$selectangefordert. Liegt jedoch keine Entra ID P1/P2 Lizenz im Tenant vor, gibt die Microsoft Graph API diesen Wert alsnullzurück. Das Frontend fängt dies ab und zeigt "N/A (P1/P2 req.)" an. - Risk Events & Conditional Access: Diese Sicherheitsmetriken sind Bestandteil von Identity Protection und werden in der Free-Architektur nicht gerendert.
3. Darstellung von Geräten & Status
Im Modul "Devices" zeigt der Client das operatingSystem-Attribut als Text an. Gemäss dem Design-System SwissGrid-Fynnomat werden keine Icon-Bibliotheken eingebunden; Status wird über eckige Mono-Tags dargestellt (schwarz gefüllt = Aufmerksamkeit, z.B. Non-Compliant oder Disabled).
4. Enterprise Apps
Im Tab "Enterprise Apps" werden Application Registrations abgefragt. Gelesen werden die Felder appId (Client Identifier) sowie die signInAudience (z.B. AzureADMyOrg), um Fehlkonfigurationen (z.B. versehentliche Multi-Tenant-Freigaben) schnell zu sichten.