ToolUp.AuthProviders.Oidc.Shared 0.39.2

Prefix Reserved
dotnet add package ToolUp.AuthProviders.Oidc.Shared --version 0.39.2
                    
NuGet\Install-Package ToolUp.AuthProviders.Oidc.Shared -Version 0.39.2
                    
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="ToolUp.AuthProviders.Oidc.Shared" Version="0.39.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ToolUp.AuthProviders.Oidc.Shared" Version="0.39.2" />
                    
Directory.Packages.props
<PackageReference Include="ToolUp.AuthProviders.Oidc.Shared" />
                    
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 ToolUp.AuthProviders.Oidc.Shared --version 0.39.2
                    
#r "nuget: ToolUp.AuthProviders.Oidc.Shared, 0.39.2"
                    
#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 ToolUp.AuthProviders.Oidc.Shared@0.39.2
                    
#: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=ToolUp.AuthProviders.Oidc.Shared&version=0.39.2
                    
Install as a Cake Addin
#tool nuget:?package=ToolUp.AuthProviders.Oidc.Shared&version=0.39.2
                    
Install as a Cake Tool

ToolUp.AuthProviders.Oidc

Generic OIDC server-side IAuthProvider for ToolUp.Platform. Discovers JWKS via .well-known/openid-configuration, validates RS256 JWT bearer tokens against the discovered keys, and projects the resolved identity into AuthenticatedUser. Provider-agnostic — works against any OIDC-compliant issuer (Auth0, Cognito, Keycloak, etc.).

Key revocation window — read before deploying

By default this provider caches JWKS keys for 10 minutes and OIDC discovery metadata for 24 hours. So:

A signing key the issuer has revoked keeps validating tokens on a given instance for up to 10 minutes while the issuer is reachable, and for as long as JWKS fetches keep failing. Once a refresh is failing, the provider prefers serving the last-known-good key set over failing every sign-in — the window is then bounded by provider availability, not by the TTL.

That is a deliberate availability-over-revocation default, matching mainstream OIDC libraries: an issuer blip should not take your application down. If your threat model includes signing-key compromise, three opt-in knobs on OidcHardening change it, and every one defaults to the behaviour above:

  • JwksCacheTtl — shorten the ordinary window. Some TimeSpan.Zero disables the JWKS cache entirely: every validation re-fetches and nothing is served from cache, stale fallback included. That is the tightest window this provider offers, at one round-trip per validated request.
  • FailClosedOnStaleJwks — bound the outage window: a failing refresh surfaces the error rather than serving possibly-revoked keys. Sign-in fails while the IdP is unreachable; that is the trade.
  • JwksEvictionSignal — bound the window across instances. A fetch failure publishes a CustomNotification on the platform-reserved scope; siblings subscribed via OidcJwksCache.subscribeToEvictions evict their own entry for that URL. Without it, a fleet's window is each instance's TTL measured independently. Requires a distributed notification channel — the in-process default reaches only the publishing process.

Not covered by any of them: per-token revocation. This provider does not perform token introspection (RFC 7662); revocation is observed only through the key set, so a revoked grant whose signing key is still published keeps validating until the token's exp. Keep access-token lifetimes short.

Full guidance, including the wiring snippet for the cross-instance signal, is in the SDK's auth-providers companion documentation.

Server-rendered sign-in failure page (Phase 1139)

OidcSsrSignIn answers every sign-in failure (missing, expired or mismatched state, an IdP error, a failed exchange, a refused token, a nonce mismatch, an already-expired token) with one small HTML page: a plain-language reason from a closed set, never IdP text, a token or an exception message, and a "Try again" link back to SignInPath carrying the validated return URL. Status codes, the no-cookie-on-failure rule and the open-redirect guard are unchanged; the page is no-store.

Out of the box the page carries minimal inline styling. To take the deployment's theme, name a stylesheet:

let page = OidcSsrSignIn.SignInPage.defaults |> OidcSsrSignIn.SignInPage.withStylesheet "/theme.css"
app |> OidcSsrSignIn.withInteractiveSignInPage page http config

withStylesheet refuses anything that is not a local, rooted path (an absolute URL, //host, whitespace, a quote, an angle bracket, a backtick or a backslash) with ArgumentException at composition, so a bad value stops the boot. The setting lives on SignInPage, not on OidcSsrSignInConfig: that record is unchanged, so every existing construction of it (full literal or defaults with { ... with }) keeps compiling, and routes / withInteractiveSignIn keep their signatures and use the default page. The inline style is dropped by a strict style-src CSP; the page then renders unstyled, which is still readable.

Licensed under Apache-2.0.

Part of the ToolUp Platform SDK — see github.com/ToolUp-Forge/toolup-forge for full documentation.

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 ToolUp.AuthProviders.Oidc.Shared:

Package Downloads
ToolUp.AuthProviders.Oidc.Client

Client-side OIDC sign-in UI for ToolUp.Platform: Authorization Code + PKCE flow against any OIDC-compliant issuer. (Phase 11.C.5 unified the `.Client` suffix convention: `ToolUp.AuthProviders.OidcClient` -> `.Oidc.Client`, matching `ToolUp.AIProviders.Claude.Client`.)

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.39.2 132 11/7/2026
0.39.1 151 11/6/2026
0.39.0 121 11/4/2026
0.38.1 155 11/1/2026
0.38.0 118 10/31/2026
0.37.0 145 10/29/2026
0.36.0 130 10/29/2026
0.35.0 124 10/28/2026
0.34.1 121 10/27/2026
0.34.0 122 10/26/2026
0.33.0 112 10/25/2026
0.32.0 126 10/24/2026
0.31.0 132 10/22/2026
0.30.0 138 10/20/2026
0.29.0 116 10/19/2026
0.28.0 111 10/19/2026
0.27.0 152 10/16/2026
0.26.0 132 10/12/2026
0.25.1 130 10/9/2026
0.24.1 144 10/6/2026
Loading failed