Azure AD B2C → Microsoft Entra External ID
Proof of Concept — gefaseerde migratie met dual-authority-strategie · overzicht & live demo voor de bespreking met CROW
Endpoint:
ciamlogin.comProtocol: OIDC / OAuth 2.0
● Gemigreerd →
ciamlogin.com● Nog niet →
b2clogin.com
Keten: Zeno → SCIM → Graph → tenant
Migratie: bridge omhangen, Zeno blijft gelijk
Nog wachten op een B2C-testaccount van CROW om de identity-matching tussen beide routes end-to-end te bevestigen.
De repo Stichting-CROW/B2C_ScimEndpoint is een Azure Function App die als vertaallaag werkt:
Zeno pusht licentie-gebruikers, groepen en rollen via SCIM; de bridge vertaalt dat naar Microsoft Graph-calls tegen de directory.
Dit vult het openstaande Zeno/SCIM-punt (onderdeel 4 & 5) in.
Prettig voor de migratie: de SCIM-interface naar Zeno is directory-onafhankelijk — Zeno hoeft niet te wijzigen, alleen de bridge wordt omgehangen naar de Entra-tenant (nieuwe app-registratie + her-registratie van de directory-extensies).
Eén en dezelfde .NET-voorbeeldapplicatie (ASP.NET Core MVC, confidential client), afgeleid van de
WiU-tool, draait hier in twee vormen naast elkaar: geauthenticeerd tegen het oude
Azure AD B2C en tegen het nieuwe Entra External ID. Zo is concreet te
zien wat gelijk blijft (dezelfde app-code, login-flow en /api/me-aanroep) en wat structureel
anders wordt (één authority i.p.v. policies, domain_hint i.p.v. authority-switch, dual-issuer).
crowacceptatiesso; login via B2C-policy, gebruikersgegevens via CROW SSO.
crowssodevelopment; login via user flow + domain_hint, dual-issuer-validatie.
De /api/me-stap toont de bekende userendpoint-bevinding (HTTP 500, dual-issuer-patch ligt klaar).
- Automatische domein-routing is niet standaard — eigen voorportaal (
domain_hint) nodig. - Een bestaande CROW-backend gaf HTTP 500 op een Entra-token; dual-issuer-patch ligt klaar.
- Huidige inlog gebruikt vermoedelijk custom policies (IEF) — opnieuw op te bouwen.
- MFA: e-mailcode/passkey wél, Authenticator/TOTP niet in External ID.
- SAML-mechaniek generiek bewezen, nog niet tegen een echte productiekoppeling.
- Userendpoint dual-issuer maken; welke backends valideren nog hardcoded op B2C?
- Bevestigen hoe interne app-naar-app-koppelingen nu authenticeren.
- Toegang tot één echte productie-SAML-koppeling om te toetsen.
- Bevestigen of/welke custom policies opnieuw gebouwd moeten worden.
- Zeno/SCIM: app-registratie + extensies in de Entra-tenant; secrets roteren; eigenaarschap.