OAuth2 app-registratie
Hoe de OAuth2-koppeling werkt: app-registratie, admin consent, PKCE, en hoe tokens worden behandeld.
Het model
ServiceChanger gebruikt een multi-tenant Microsoft-app-registratie. Wanneer jij admin consent geeft, wordt in jouw tenant een enterprise application (service principal) aangemaakt die de goedgekeurde application permissions draagt. Alle Graph-toegang verloopt daarna via die service principal in jouw tenant.
Je geeft dus niet ServiceChanger als geheel toegang, maar je autoriseert een app in je eigen tenant met precies de scopes die je hebt goedgekeurd. Die kun je op elk moment intrekken.
De consent-flow
- Je start de koppeling en wordt doorgestuurd naar Microsoft.
- De aanvraag gebruikt OAuth2 met de Authorization Code-flow en PKCE (S256). Er komen geen client-side secrets of certificaten in jouw browser aan te pas.
- Microsoft toont de gevraagde application permissions. Je keurt ze goed als admin.
- Microsoft maakt de service principal aan en geeft een authorization code terug.
- ServiceChanger wisselt die code in voor tokens via een confidential client (de client secret blijft server-side).
.default, wat betekent: ken precies de permissions toe die op de app-registratie staan en die jij hebt goedgekeurd, niet meer.
Tokens
- Tokens worden server-side beheerd, niet in de browser.
- De tokencache wordt versleuteld opgeslagen (AES-256) en niet als platte tekst bewaard.
- Refresh verloopt via de standaard Microsoft-identity-mechanismen; er worden geen wachtwoorden of certificaten van jouw beheerders opgeslagen.
Meerdere tenants
Elke tenant koppel je apart en krijgt zijn eigen service principal en zijn eigen regels. Handig voor holdings of managed-service-omgevingen. Tenants delen geen regels of data met elkaar.
Wat je als admin kunt controleren
In Azure Portal > Microsoft Entra ID > Enterprise Applications > ServiceChanger zie je:
- De exacte verleende permissions.
- Welke gebruiker consent heeft gegeven en wanneer.
- Sign-in- en audit-activiteit van de service principal.
Intrekken
Verwijder de enterprise application in Azure Portal, of gebruik Disconnect in ServiceChanger. Daarna vervalt de toegang volledig. Bestaande groepslidmaatschappen blijven zoals ze op dat moment zijn.