JML Monitor för Microsoft Entra ID
Bakgrund
Jag ville förstå Joiner, Mover och Leaver-processer (JML) bättre i praktiken, hur access förändras över tid och hur access drift kan upptäckas i Microsoft Entra ID.
Samtidigt ville jag få mer praktisk erfarenhet av Microsoft Graph API och undersöka hur identitetsdata kan analyseras automatiskt istället för manuellt.
Det jag byggde
Jag utvecklade en enkel monitor som hämtar användare och gruppmedlemskap från Microsoft Entra ID och jämför aktuell data med tidigare snapshots.
Målet var att kunna upptäcka förändringar i access som annars lätt kan passera obemärkt.
Lösningen byggdes med:
- Microsoft Entra ID
- Microsoft Graph API
- Python
- JSON-baserad historiklagring
Det jag testade
Monitorn byggdes för att upptäcka scenarier som:
- Ny access
- Borttagen access
- Administrativa behörigheter
- SoD-konflikter (Segregation of Duties)
- Inaktiva konton med kvarvarande access
- Access som blivit kvar efter rollbyte eller offboarding
För att simulera en verklig miljö skapade jag användare, grupper och rolltilldelningar för olika funktioner och ansvarsområden.
Resultat
Monitorn kunde:
- Övervaka förändringar i gruppmedlemskap över tid
- Upptäcka access drift
- Identifiera potentiella governance-problem
- Visa Joiner-, Mover- och Leaver-scenarier
- Ge historisk insyn i hur access förändrats
Projektet visade också hur Microsoft Graph API kan användas för att automatisera delar av identitetsövervakning och accessgranskning.
Utmaningar
Under projektet behövde jag bland annat hantera:
- API-autentisering via Microsoft Graph
- Hantering av klienthemligheter på ett säkert sätt
- Historiklagring och jämförelse mellan olika körningar
- Logik för att identifiera riskfyllda accessförändringar
Jag upptäckte också att ett exponerat client secret snabbt kan bli en säkerhetsrisk, vilket ledde till att jag flyttade hemligheter till miljövariabler och separerade dem från källkoden.
Reflektion
Det mest intressanta med projektet var insikten att access drift ofta är svårt att upptäcka utan historik.
Om man bara tittar på dagens behörigheter är det svårt att veta om access nyligen lagts till, tagits bort eller blivit kvar efter att den egentligen borde ha försvunnit.
Projektet gav mig en bättre förståelse för governance, lifecycle management och varför kontinuerlig övervakning är viktig inom IAM.
Det gav mig också praktisk erfarenhet av Microsoft Graph API, gruppbaserad RBAC och identitetsrelaterad säkerhetslogik.
Teknisk notering
Jag använde AI som stöd för att skriva delar av Python-koden. Projektets fokus låg på IAM-logiken bakom lösningen – hur access drift kan upptäckas, hur gruppbaserad RBAC fungerar och hur Microsoft Graph API kan användas för att analysera identitetsdata över tid.