-
Notifications
You must be signed in to change notification settings - Fork 0
OIDC
SharpAccess implements a generic keyed OpenID Connect profile using Authorization Code + PKCE.
The flow requires:
- exact issuer validation;
- exact supported signing-algorithm validation;
- state and nonce validation;
- PKCE;
- bounded return paths and metadata;
- explicit endpoint host allowlists;
- one-time local exchange after the provider callback;
- HTTPS for non-loopback production origins and callbacks.
Unsupported implicit, password, and other unapproved flows are rejected.
Each keyed provider supplies its issuer, client identity, protected client secret, callback, authorization endpoint, token endpoint, JWKS endpoint, and allowed hosts. A configured but disabled provider does not activate its feature requirements.
- The browser navigates to the SharpAccess challenge endpoint with a bounded local return path.
- SharpAccess creates protected state and PKCE material.
- The provider authenticates the user and returns to the exact callback.
- SharpAccess validates the response, issuer, signature, nonce, and state.
- SharpAccess places a short-lived one-time local exchange code in the URL fragment.
- The browser removes the fragment and exchanges the code through the local SharpAccess endpoint.
- The host establishes the normal secure refresh session.
The sample’s Google-compatible exchange endpoint is:
POST /auth/oauth/google/exchange
Release evidence requires fresh OIDC authorization material. Authorization codes, PKCE verifiers, nonces, state values, and tokens are one-time or short-lived and must never be reused or retained with secrets.
SharpAccess · Windows · .NET 10 · PowerShell 7 · Repository · Security · License