Cirreum.Runtime.Identity.Oidc 1.0.4

dotnet add package Cirreum.Runtime.Identity.Oidc --version 1.0.4
                    
NuGet\Install-Package Cirreum.Runtime.Identity.Oidc -Version 1.0.4
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Cirreum.Runtime.Identity.Oidc" Version="1.0.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Cirreum.Runtime.Identity.Oidc" Version="1.0.4" />
                    
Directory.Packages.props
<PackageReference Include="Cirreum.Runtime.Identity.Oidc" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Cirreum.Runtime.Identity.Oidc --version 1.0.4
                    
#r "nuget: Cirreum.Runtime.Identity.Oidc, 1.0.4"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Cirreum.Runtime.Identity.Oidc@1.0.4
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Cirreum.Runtime.Identity.Oidc&version=1.0.4
                    
Install as a Cake Addin
#tool nuget:?package=Cirreum.Runtime.Identity.Oidc&version=1.0.4
                    
Install as a Cake Tool

Cirreum Runtime Identity Oidc

NuGet Version NuGet Downloads GitHub Release License .NET

Runtime Extensions package for Cirreum Identity Oidc — the app-facing entry point for the OIDC webhook-style provisioning callback.

Overview

Install this package when your application uses an OIDC-compliant IdP (Descope, Auth0, Okta, etc.) that emits a pre-token webhook to a Cirreum Identity Oidc endpoint. Install the umbrella Cirreum.Runtime.Identity instead if you need multiple identity provider protocols (e.g. Oidc + Entra External ID).

This package contributes two extension methods:

  • builder.AddOidcIdentity(configure?) — registers the Oidc provider and, via the optional callback, app-provided IUserProvisioner implementations keyed per configured instance.
  • app.MapOidcIdentity() — maps the provisioning routes for every enabled Oidc instance.

Installation

dotnet add package Cirreum.Runtime.Identity.Oidc

Usage

using Microsoft.Extensions.Hosting;
using Microsoft.AspNetCore.Builder;

var builder = WebApplication.CreateBuilder(args);

builder.AddOidcIdentity(p => p
    .AddProvisioner<ClientABorrowerProvisioner>("clientA_descope")
    .AddProvisioner<ClientBBorrowerProvisioner>("clientB_descope"));

var app = builder.Build();

app.UseAuthentication();
app.UseAuthorization();

app.MapOidcIdentity();

app.Run();

App-provided provisioner class

Derive from the base that matches the instance's onboarding model:

using Cirreum.Identity.Provisioning;

public sealed class ClientABorrowerProvisioner(AppDbContext db)
    : SelfServiceUserProvisionerBase<BorrowerUser> {

    protected override Task<BorrowerUser?> FindUserAsync(string externalUserId, CancellationToken ct) =>
        db.Users.FirstOrDefaultAsync(u => u.ExternalUserId == externalUserId, ct);

    protected override async Task<BorrowerUser?> CreateSelfServiceUserAsync(
        ProvisionContext context, CancellationToken ct) {
        var user = new BorrowerUser {
            ExternalUserId = context.ExternalUserId,
            Email = context.Email,
            Roles = [BorrowerRoles.Default],
        };
        db.Users.Add(user);
        await db.SaveChangesAsync(ct);
        return user;
    }
}

See Cirreum.IdentityProvider for the full provisioner hierarchy (UserProvisionerBase<TUser>, InvitationUserProvisionerBase<TUser>, SelfServiceUserProvisionerBase<TUser>) and Cirreum.Identity.Oidc for the Oidc wire contract, configuration keys, and security model.

Configuration

{
  "Cirreum": {
    "Identity": {
      "Providers": {
        "Oidc": {
          "Instances": {
            "clientA_descope": {
              "Enabled": true,
              "Route": "/auth/clientA/provision",
              "SharedSecret": "<long-random-value>",
              "AllowedAppIds": "P2Xn9Kq..."
            },
            "clientB_descope": {
              "Enabled": true,
              "Route": "/auth/clientB/provision",
              "SharedSecret": "<long-random-value>"
            }
          }
        }
      }
    }
  }
}

See Cirreum.Identity.Oidc for the full per-instance settings reference.

Dependencies

  • Cirreum.Runtime.IdentityProvider — the RegisterIdentityProvider<> helper, IIdentityBuilder, and IdentityProviderMapping types
  • Cirreum.Identity.Oidc — the OIDC registrar, handler, and settings

Multi-protocol apps

If you need both Oidc and Entra External ID, install the umbrella Cirreum.Runtime.Identity instead — it exposes builder.AddIdentity(configure?) / app.MapIdentity() which register both providers and map all their routes.

License

MIT — see LICENSE.


Cirreum Foundation Framework
Layered simplicity for modern .NET

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Cirreum.Runtime.Identity.Oidc:

Package Downloads
Cirreum.Runtime.Identity

Runtime Extensions umbrella package for the Cirreum Identity provider family. Composes Cirreum.Runtime.Identity.Oidc and Cirreum.Runtime.Identity.EntraExternalId, and exposes app-facing AddIdentity() / MapIdentity() extensions that register all providers and map all provisioning routes.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.4 46 7/5/2026
1.0.3 119 5/10/2026
1.0.2 115 5/1/2026
1.0.1 119 4/28/2026
1.0.0 132 4/24/2026