Franz.Common.Http.Identity
2.3.3
dotnet add package Franz.Common.Http.Identity --version 2.3.3
NuGet\Install-Package Franz.Common.Http.Identity -Version 2.3.3
<PackageReference Include="Franz.Common.Http.Identity" Version="2.3.3" />
<PackageVersion Include="Franz.Common.Http.Identity" Version="2.3.3" />
<PackageReference Include="Franz.Common.Http.Identity" />
paket add Franz.Common.Http.Identity --version 2.3.3
#r "nuget: Franz.Common.Http.Identity, 2.3.3"
#:package Franz.Common.Http.Identity@2.3.3
#addin nuget:?package=Franz.Common.Http.Identity&version=2.3.3
#tool nuget:?package=Franz.Common.Http.Identity&version=2.3.3
Franz.Common.Http.Identity
HTTP, identity, and service integration for the Franz.Common framework on .NET 10.
Overview
The Franz.Common.Http.Identity package provides HTTP, identity, and service integration within Franz.Common. It is designed to compose with the rest of the framework rather than imposing unrelated infrastructure choices on every application.
Installation
dotnet add package Franz.Common.Http.Identity
Design principles
- Explicit composition: register only the capabilities the application needs.
- Clear boundaries: keep domain and application contracts independent from provider-specific infrastructure where the package's role permits it.
- Predictable behavior: make configuration, failure modes, and lifecycle ownership visible rather than relying on hidden conventions.
- Operational readiness: validate security, resilience, diagnostics, and compatibility for the actual deployment environment.
Usage and configuration
Follow the package-specific setup, configuration, and code examples below. Only configure external services when this package requires them, and keep secrets outside source control.
Package-specific guide
A utility library within the Franz Framework that enhances ASP.NET Core identity management for HTTP-based applications. This package provides tools for identity context access, dependency injection, and plug-and-play SSO providers (WS-Fed, OIDC, SAML2, Keycloak).
-Current Version: v2.3.3
- Part of the private Franz Framework ecosystem.
Features
Identity Context Access
IdentityContextAccessor: resolves identity consistently fromHttpContext(headers & claims).- Unified into
FranzIdentityContext(UserId, Email, FullName, Roles, TenantId, DomainId).
Dependency Injection
AddFranzHttpIdentity(): registers identity accessor and supporting services.
Authentication Providers (config-driven via
appsettings.json):AddFranzWsFedIdentity()– WS-Federation.AddFranzOidcIdentity()– OpenID Connect.AddFranzSaml2Identity()– SAML2 (via Sustainsys).AddFranzKeycloakIdentity()– Keycloak (OIDC + role normalization).
Claims Normalization
- All providers map claims into the same
FranzIdentityContext. - Ensures consistent user & tenant resolution across IdPs.
- All providers map claims into the same
Installation
dotnet add package Franz.Common.Http.Identity
Usage
1. Register Core Identity
builder.Services.AddFranzHttpIdentity();
2. Add a Provider
Identity providers are registered via DI extensions and configured in appsettings.json.
🔹 WS-Federation
builder.Services.AddFranzWsFedIdentity(builder.Configuration);
appsettings.json
"FranzIdentity": {
"WsFed": {
"MetadataAddress": "https://login.microsoftonline.com/{tenant}/federationmetadata/2007-06/federationmetadata.xml",
"Wtrealm": "https://myapp.example.com/"
}
}
🔹 OpenID Connect (OIDC)
builder.Services.AddFranzOidcIdentity(builder.Configuration);
appsettings.json
"FranzIdentity": {
"Oidc": {
"Authority": "https://login.microsoftonline.com/{tenant}/v2.0",
"ClientId": "my-client-id",
"ClientSecret": "super-secret",
"CallbackPath": "/signin-oidc"
}
}
🔹 SAML2
builder.Services.AddFranzSaml2Identity(builder.Configuration);
appsettings.json
"FranzIdentity": {
"Saml2": {
"EntityId": "https://myapp.example.com/",
"IdpMetadata": "https://idp.example.com/metadata",
"CallbackPath": "/signin-saml"
}
}
🔹 Keycloak (via OIDC)
builder.Services.AddFranzKeycloakIdentity(builder.Configuration);
appsettings.json
"FranzIdentity": {
"Keycloak": {
"Authority": "https://keycloak.example.com/auth/realms/myrealm",
"ClientId": "franz-web",
"ClientSecret": "super-secret",
"CallbackPath": "/signin-keycloak"
}
}
3. Access Identity in Your App
app.MapGet("/whoami", (IIdentityContextAccessor ctx) =>
{
var identity = ctx.GetCurrentIdentity();
return Results.Ok(new
{
identity.UserId,
identity.Email,
identity.FullName,
identity.Roles,
identity.TenantId,
identity.DomainId
});
});
Integration with Franz Framework
The Franz.Common.Http.Identity package integrates seamlessly with:
- Franz.Common.Identity → core identity contracts and models.
- Franz.Common.Http → HTTP utilities and middleware.
- Franz.Common.Headers → standardized header handling for identity propagation.
Contributing
This package is part of a private framework. Contributions are limited to the internal development team.
- Clone the repository @ Franz.Common
- Create a feature branch.
- Submit a pull request for review.
License
Licensed under the MIT License. See the LICENSE file for details.
Changelog
Version 1.6.2
Added
IdentityContextAccessor(HttpContext-based).Introduced
AddFranzHttpIdentity()DI extension.Added provider extensions:
- WS-Federation (
AddFranzWsFedIdentity). - OpenID Connect (
AddFranzOidcIdentity). - SAML2 (
AddFranzSaml2Identity). - Keycloak (
AddFranzKeycloakIdentity).
- WS-Federation (
Config-driven setup via
appsettings.json.Unified claims mapping into
FranzIdentityContext.
Version 1.3
- Upgraded to .NET 9.0.8
- Added new features and improvements
- Separated business concepts from mediator concepts
- Now compatible with both the in-house mediator and MediatR
Version 1.2.65
- Upgrade version to .NET 9
Version 1.6.20
- Updated to .NET 10.0
v2.0.1 – Internal Modernization
- Messaging and infrastructure refactored for async, thread-safety, and modern .NET 10 patterns.
- All APIs remain fully backward compatible.
- Tests, listeners, and pipeline components modernized.
Dependency maintenance — October 2026
This project's dependency references were reviewed and updated as part of the repository-wide .NET 10 maintenance pass. The intended target framework and public API remain unchanged. Verify the resolved direct and transitive dependency graph through the repository's dependency validation workflow before publishing. See the central dependency upgrade record.
| 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
- Franz.Common.Headers (>= 2.3.3)
- Franz.Common.Http (>= 2.3.3)
- Franz.Common.Identity (>= 2.3.3)
- Microsoft.AspNetCore.Authentication.OpenIdConnect (>= 10.0.14)
- Microsoft.AspNetCore.Authentication.WsFederation (>= 10.0.14)
- Sustainsys.Saml2 (>= 2.11.0)
- Sustainsys.Saml2.AspNetCore2 (>= 2.11.0)
- System.Drawing.Common (>= 10.0.14)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Franz.Common.Http.Identity:
| Package | Downloads |
|---|---|
|
Franz.Common.Http.Bootstrap
Shared utility library for the Franz Framework. |
|
|
Franz.Common.SSO
Shared utility library for the Franz Framework. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.3.3 | 149 | 10/28/2026 |
| 2.3.2 | 90 | 10/27/2026 |
| 2.3.1 | 164 | 10/26/2026 |
| 2.3.0 | 240 | 7/21/2026 |
| 2.2.19 | 157 | 7/19/2026 |
| 2.2.18 | 137 | 7/19/2026 |
| 2.2.17 | 147 | 7/12/2026 |
| 2.2.16 | 146 | 7/2/2026 |
| 2.2.15 | 154 | 6/29/2026 |
| 2.2.14 | 154 | 6/29/2026 |
| 2.2.13 | 140 | 6/29/2026 |
| 2.2.12 | 138 | 6/28/2026 |
| 2.2.11 | 137 | 6/28/2026 |
| 2.2.10 | 143 | 6/28/2026 |
| 2.2.9 | 149 | 6/28/2026 |
| 2.2.8 | 139 | 6/28/2026 |
| 2.2.7 | 148 | 6/7/2026 |
| 2.2.6 | 145 | 6/6/2026 |
| 2.2.5 | 154 | 6/4/2026 |
| 2.2.4 | 143 | 6/3/2026 |