ToolUp.AuthProviders.Oidc.Shared
0.22.0
Prefix Reserved
dotnet add package ToolUp.AuthProviders.Oidc.Shared --version 0.22.0
NuGet\Install-Package ToolUp.AuthProviders.Oidc.Shared -Version 0.22.0
<PackageReference Include="ToolUp.AuthProviders.Oidc.Shared" Version="0.22.0" />
<PackageVersion Include="ToolUp.AuthProviders.Oidc.Shared" Version="0.22.0" />
<PackageReference Include="ToolUp.AuthProviders.Oidc.Shared" />
paket add ToolUp.AuthProviders.Oidc.Shared --version 0.22.0
#r "nuget: ToolUp.AuthProviders.Oidc.Shared, 0.22.0"
#:package ToolUp.AuthProviders.Oidc.Shared@0.22.0
#addin nuget:?package=ToolUp.AuthProviders.Oidc.Shared&version=0.22.0
#tool nuget:?package=ToolUp.AuthProviders.Oidc.Shared&version=0.22.0
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.Zerodisables 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 aCustomNotificationon the platform-reserved scope; siblings subscribed viaOidcJwksCache.subscribeToEvictionsevict 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.
Licensed under Apache-2.0.
Part of the ToolUp Platform SDK — see github.com/ToolUp-Forge/toolup-forge for full documentation.
| 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
- ToolUp.Platform.Client (>= 0.22.0)
- ToolUp.Platform.Core (>= 0.22.0)
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` and `ToolUp.AuthProviders.EntraExternalId.Client`.) |
GitHub repositories
This package is not used by any popular GitHub repositories.