Entra.EventHandlers.AzureFunctions
1.4.0
See the version list below for details.
dotnet add package Entra.EventHandlers.AzureFunctions --version 1.4.0
NuGet\Install-Package Entra.EventHandlers.AzureFunctions -Version 1.4.0
<PackageReference Include="Entra.EventHandlers.AzureFunctions" Version="1.4.0" />
<PackageVersion Include="Entra.EventHandlers.AzureFunctions" Version="1.4.0" />
<PackageReference Include="Entra.EventHandlers.AzureFunctions" />
paket add Entra.EventHandlers.AzureFunctions --version 1.4.0
#r "nuget: Entra.EventHandlers.AzureFunctions, 1.4.0"
#:package Entra.EventHandlers.AzureFunctions@1.4.0
#addin nuget:?package=Entra.EventHandlers.AzureFunctions&version=1.4.0
#tool nuget:?package=Entra.EventHandlers.AzureFunctions&version=1.4.0
Entra.EventHandlers.AzureFunctions
Azure Functions hosting adapter for Microsoft Entra External ID and Workforce Authentication Event Handlers.
Provides minimal‑boilerplate hosting, full DI support, structured error handling, and complete testability.
License: Business Source License (BSL)
Author: Jakub Szubarga (Szubarga.NET)
✨ Features
- 🚀 Single Function → Multiple Entra event types
- 🔄 Automatic request deserialization & response serialization
- 🧠 Centralized event orchestration (routing, resolution, invocation)
- 🧩 Dynamic handler resolution via the orchestrator
- 🛡 Structured error mapping (400/500)
- 🧪 Fully unit‑testable
- 🪶 Minimal boilerplate
🧩 Minimal Router Function
public sealed class EntraEventRouterFunction(
ILogger<EntraEventRouterFunction> logger,
IEntraEventOrchestrator orchestrator,
IRequestAdapter requestAdapter,
IResponseAdapter responseAdapter)
: EntraEventRouterFunctionBase(logger, orchestrator, requestAdapter, responseAdapter)
{
[Function("Router")]
public Task<HttpResponseData> RunAsync(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = "router")]
HttpRequestData req) =>
InvokeAsync(req);
}
🛠 Dependency Injection
services.AddEntraEventHandlers();
Registers:
- Request/response adapters
- Event orchestrator
- Handler resolver
- All handlers implementing
IEntraEventHandler<,>
📦 Optional: Single‑Event Base Classes
public sealed class TokenIssuanceStartFunction(
ILogger<TokenIssuanceStartFunction> logger,
ITokenIssuanceStartHandler handler,
IRequestAdapter requestAdapter,
IResponseAdapter responseAdapter)
: TokenIssuanceStartFunctionBase(logger, handler, requestAdapter, responseAdapter)
{
[Function("TokenIssuanceStart")]
public Task<HttpResponseData> RunAsync(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = "tokenissuancestart")]
HttpRequestData req) =>
InvokeAsync(req);
}
📁 Samples
👉 AzureFunctionsSample
https://github.com/szubajak/entra-event-handlers/tree/main/samples/AzureFunctionsSample
The sample demonstrates:
- registering handlers with
AddEntraEventHandlers() - using the router function
- using single‑event function bases
- exposing functions with
[Function]and[HttpTrigger] - structuring a clean, minimal Function App for Entra event handling
📦 Related Packages
- Entra.EventHandlers.Abstractions — public protocol types (MIT)
- Entra.EventHandlers — core implementation layer for External ID (BSL)
- Entra.EventHandlers.Workforce — Workforce‑specific event models and builders (BSL)
- Entra.EventHandlers.AspNetCore — ASP.NET Core hosting adapter (BSL)
🔒 License
This package is licensed under the Business Source License (BSL).
See:
LICENSE— full BSL termsLICENSE-COMMERCIAL.md— commercial licensing terms
A commercial license is required for production use by organizations with more than 5 employees.
A commercial license covers the entire Entra Event Handlers ecosystem, including all current and future BSL‑licensed packages.
Commercial License Pricing
- Developer License — €99 / developer / year
- Team License — €399 / year
- Enterprise License — €1499 / year
📧 jakub.szubarga@gmail.com
The abstractions package is MIT‑licensed and can be used freely.
📘 Further Reading
For a deeper look into Microsoft Entra External ID Authentication Event Handlers, Workforce scenarios, and the design of this ecosystem, see:
➡️ Entra External ID — .NET Handlers Deep Dive
https://medium.com/@jakub.szubarga/entra-external-id-dotnet-handlers-a7447dc1e437
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Entra.EventHandlers (>= 1.3.4)
- Entra.EventHandlers.Hosting (>= 1.4.0)
- Microsoft.Azure.Functions.Worker (>= 2.52.0)
- Scrutor (>= 7.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.4.1 | 112 | 6/29/2026 |
| 1.4.0 | 105 | 6/29/2026 |
| 1.3.5 | 106 | 6/26/2026 |
| 1.3.4 | 103 | 6/25/2026 |
| 1.3.3 | 102 | 6/25/2026 |
| 1.3.2 | 100 | 6/18/2026 |
| 1.3.1 | 111 | 6/16/2026 |
| 1.3.0 | 100 | 6/11/2026 |
| 1.2.9 | 97 | 6/8/2026 |
| 1.2.8 | 99 | 6/8/2026 |
| 1.2.7 | 213 | 6/7/2026 |
| 1.2.6 | 109 | 6/6/2026 |
| 1.2.5 | 101 | 6/6/2026 |
| 1.2.4 | 109 | 6/5/2026 |
| 1.2.3 | 143 | 6/3/2026 |
| 1.2.0 | 132 | 6/3/2026 |
Includes Azure Functions hosting adapter for Microsoft Entra External ID and Workforce Authentication
Event Handlers. Provides request/response adapters, DI integration, router function, single-event
function base classes, unified execution pipeline, and structured error handling.