Entra.EventHandlers.AzureFunctions
1.3.3
See the version list below for details.
dotnet add package Entra.EventHandlers.AzureFunctions --version 1.3.3
NuGet\Install-Package Entra.EventHandlers.AzureFunctions -Version 1.3.3
<PackageReference Include="Entra.EventHandlers.AzureFunctions" Version="1.3.3" />
<PackageVersion Include="Entra.EventHandlers.AzureFunctions" Version="1.3.3" />
<PackageReference Include="Entra.EventHandlers.AzureFunctions" />
paket add Entra.EventHandlers.AzureFunctions --version 1.3.3
#r "nuget: Entra.EventHandlers.AzureFunctions, 1.3.3"
#:package Entra.EventHandlers.AzureFunctions@1.3.3
#addin nuget:?package=Entra.EventHandlers.AzureFunctions&version=1.3.3
#tool nuget:?package=Entra.EventHandlers.AzureFunctions&version=1.3.3
Entra.EventHandlers.AzureFunctions
Azure Functions hosting adapter for Microsoft Entra External ID 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
- 🧩 Dynamic handler resolution via DI
- 🛡 Structured error mapping (400/500)
- 🧪 Fully unit‑testable
- 🪶 Minimal boilerplate
🧩 Minimal Router Function
public sealed class EntraEventRouterFunction(
ILogger<EntraEventRouterFunction> logger,
IEntraEventHandlerResolver resolver,
IRequestAdapter requestAdapter,
IResponseAdapter responseAdapter)
: EntraEventRouterFunctionBase(logger, resolver, requestAdapter, responseAdapter)
{
[Function("Router")]
public Task<HttpResponseData> RunAsync(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = "router")]
HttpRequestData req) =>
InvokeAsync(req);
}
🛠 Dependency Injection
Register all required components with a single call:
services.AddEntraEventHandlers();
This automatically registers:
- Request/response adapters
- Handler resolver
- All handlers implementing
IEntraEventHandler<,>
📦 Optional: Single‑Event Base Classes
If you prefer one function per event type:
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
A complete Azure Functions sample project is available in the repository:
👉 AzureFunctionsSample
https://github.com/szubajak/entra-event-handlers/tree/main/samples/AzureFunctionsSample
The sample demonstrates:
- registering handlers with
AddEntraEventHandlers() - using the router function (
EntraEventRouterFunctionBase) - using single‑event function bases
- exposing functions with
[Function]and[HttpTrigger] - structuring a clean, minimal Function App for Entra event handling
This is the recommended starting point for building real Entra Event Handler extensions on Azure Functions.
🔒 License
This package is licensed under the Business Source License (BSL).
A commercial license is required for production use by organizations with more than 5 employees.
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 and the design of this ecosystem, see the full article:
➡️ 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.3)
- Entra.EventHandlers.Hosting (>= 1.3.3)
- 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 |
Initial public release of the Azure Functions hosting adapter for Microsoft Entra External ID Authentication Event Handlers.
Includes request/response adapters, DI integration, router function, and function base classes.