Franz.Common.Http.Identity
1.6.19
dotnet add package Franz.Common.Http.Identity --version 1.6.19
NuGet\Install-Package Franz.Common.Http.Identity -Version 1.6.19
<PackageReference Include="Franz.Common.Http.Identity" Version="1.6.19" />
<PackageVersion Include="Franz.Common.Http.Identity" Version="1.6.19" />
<PackageReference Include="Franz.Common.Http.Identity" />
paket add Franz.Common.Http.Identity --version 1.6.19
#r "nuget: Franz.Common.Http.Identity, 1.6.19"
#:package Franz.Common.Http.Identity@1.6.19
#addin nuget:?package=Franz.Common.Http.Identity&version=1.6.19
#tool nuget:?package=Franz.Common.Http.Identity&version=1.6.19
Franz.Common.Http.Identity
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: 1.6.19
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
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
-
net9.0
- Franz.Common.Headers (>= 1.6.19)
- Franz.Common.Http (>= 1.6.19)
- Franz.Common.Identity (>= 1.6.19)
- Microsoft.AspNetCore.Authentication.OpenIdConnect (>= 9.0.9)
- Microsoft.AspNetCore.Authentication.WsFederation (>= 9.0.9)
- Microsoft.AspNetCore.Mvc.Core (>= 2.3.0)
- Sustainsys.Saml2 (>= 2.11.0)
- Sustainsys.Saml2.AspNetCore2 (>= 2.11.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Franz.Common.Http.Identity:
| Package | Downloads |
|---|---|
|
Franz.Common.SSO
Shared utility library for the Franz Framework. |
|
|
Franz.Common.Http.Bootstrap
Shared utility library for the Franz Framework. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.6.19 | 37 | 10/25/2025 |
| 1.6.15 | 186 | 10/20/2025 |
| 1.6.14 | 175 | 10/15/2025 |
| 1.6.3 | 182 | 10/9/2025 |
| 1.6.2 | 184 | 10/7/2025 |
| 1.5.9 | 185 | 9/24/2025 |
| 1.5.4 | 176 | 9/23/2025 |
| 1.5.3 | 213 | 9/21/2025 |
| 1.5.2 | 219 | 9/21/2025 |
| 1.5.0 | 214 | 9/21/2025 |
| 1.4.4 | 190 | 9/20/2025 |
| 1.3.14 | 303 | 9/18/2025 |
| 1.3.13 | 298 | 9/18/2025 |
| 1.3.5 | 300 | 9/17/2025 |
| 1.3.4 | 298 | 9/16/2025 |
| 1.3.3 | 298 | 9/16/2025 |
| 1.3.2 | 285 | 9/15/2025 |
| 1.3.1 | 106 | 9/12/2025 |
| 1.3.0 | 306 | 8/25/2025 |
| 1.2.65 | 199 | 3/3/2025 |
| 1.2.64 | 134 | 1/29/2025 |
| 1.2.63 | 151 | 1/27/2025 |
| 1.2.62 | 113 | 1/8/2025 |