← Back
Entra ID + Cloudflare Access + SCIM
Detta labbet sattes upp för att förstå hur federation, provisioning och Zero Trust fungerar i praktiken mellan Entra ID och Cloudflare Access.
Målet var att:
- Använda Entra ID som Identity Provider
- Sätta upp OIDC authentication
- Sätta upp SCIM provisioning
- Automatisera sync av users och grupper
- Testa gruppbaserad access via Cloudflare Access
Arkitektur
Entra ID → OIDC → Cloudflare Access
Entra ID → SCIM → Cloudflare
Steg 1 — Skapa App Registration i Entra ID
Första steget var att skapa en App Registration i Entra ID.
- Gå till Entra Admin Center
- App registrations
- New registration
Val:
- Name → Cloudflare Access
- Supported account types → Single tenant
Redirect URI lämnades tom först.
Steg 2 — Skapa Identity Provider i Cloudflare
Efter App Registration skapades Identity Provider i Cloudflare Zero Trust.
- Cloudflare Dashboard
- Zero Trust
- Settings
- Authentication
- Add new
- Azure AD
Cloudflare genererade då redirect URI som behövdes i Entra ID.
https://team.cloudflareaccess.com/cdn-cgi/access/callback
Denna URI kopierades tillbaka till App Registration i Entra.
Steg 3 — Konfigurera Redirect URI
I Entra:
- App registrations
- Cloudflare Access
- Authentication
- Add platform
- Web
Redirect URI:
https://team.cloudflareaccess.com/cdn-cgi/access/callback
Här fastnade jag först eftersom redirect URI måste matcha exakt mellan systemen.
Steg 4 — API Permissions
Sedan lades Microsoft Graph permissions till.
- API permissions
- Add permission
- Microsoft Graph
Delegated permissions:
- openid
- profile
- email
- User.Read
- GroupMember.Read.All
Efter detta:
Utan admin consent fungerade inte vissa delar korrekt.
Steg 5 — Skapa Client Secret
Sedan skapades en Client Secret:
- Certificates & secrets
- New client secret
Cloudflare behövde:
- Application (client) ID
- Directory (tenant) ID
- Client Secret VALUE
Viktigt:
Det är VALUE som ska användas och inte Secret ID.
Detta skapade auth-problem innan jag upptäckte felet.
Steg 6 — Koppla Entra ID mot Cloudflare
I Cloudflare Zero Trust:
- Settings
- Authentication
- Azure AD
Följande fylldes i:
- Client ID
- Tenant ID
- Client Secret
Efter detta fungerade login via Entra ID mot Cloudflare Access.
Steg 7 — Testa Authentication Flow
En subdomän skapades:
test.krisby.dev
Sedan skapades en Access Application:
- Zero Trust
- Access
- Applications
- Add application
- Self-hosted
Domain:
test.krisby.dev
När sidan öppnades:
- Cloudflare redirectade till Entra ID
- Authentication skedde via Entra
- Token skickades tillbaka till Cloudflare
- Access gavs efter lyckad auth
Steg 8 — Sätta upp SCIM Provisioning
Efter att authentication fungerade sattes SCIM provisioning upp.
I Cloudflare:
Cloudflare genererade:
I Entra:
- Enterprise Applications
- Cloudflare Access
- Provisioning
Provisioning mode:
Automatic
SCIM endpoint och token klistrades in.
Steg 9 — Gruppbaserad Provisioning
Grupper skapades i Entra ID och tilldelades till Enterprise Application.
Efter sync började:
- Users syncas automatiskt
- Grupper syncas automatiskt
- Access hanteras gruppbaserat
Provisioning och deprovisioning fungerade sedan automatiskt via SCIM.
Lärdomar
- SCIM förenklar lifecycle management rejält
- Gruppbaserad access sparar mycket manuellt arbete
- Redirect URI måste matcha exakt
- Client Secret VALUE och Secret ID är inte samma sak
- Det är mycket lättare att förstå auth-flöden när systemen kör live