A simple API that bridges FreeRADIUS with Microsoft Entra (Azure AD), enabling your RADIUS network to authenticate users against cloud identities.
FreeRADIUS can't directly talk to Microsoft Entra for authentication. EntraRadius acts as a translator between them, allowing your network infrastructure (VPN, WiFi, etc.) to authenticate users using their Microsoft 365 credentials.
User Login → FreeRADIUS → EntraRadius API → Microsoft Entra
↓
Memory Cache (for resilience)
- User tries to connect to your network (VPN, WiFi, etc.)
- FreeRADIUS sends credentials to EntraRadius via HTTP
- EntraRadius checks with Microsoft Entra if credentials are valid
- On success: User gets access + credentials are cached
- If Entra is down: EntraRadius falls back to the cache
This two-tier approach ensures your network stays accessible even when Microsoft services are temporarily unavailable.
# Configure your Entra details
# Edit appsettings.json with your TenantId and ClientId
# Run the API
dotnet run
# Test it
curl -X POST https://localhost:5001/api/radius/authenticate \
-H "Content-Type: application/json" \
-d '{"userName":"user@domain.com","password":"password"}'See CONFIGURATION.md for setup details.