OIDC: library route (go-oidc + x/oauth2) — decision resolved #7
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "oidc-lib"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Merges the winning OIDC variant per external expert review (see
OIDC-COMPARISON.md, now carrying the decision record).What lands (from oidc-common + oidc-lib):
internal/auth: memory session store + cookies,/auth/login|callback|logoutendpoints, challenge semantics (browser → IdP redirect; WebDAV/API → Basic 401),Flowinterface,Multiprovider chain, sharedverifyLimiter(issue-#5 OOM protection refactored for reuse)POST/GET/DELETE /api/v1/app-passwordsinternal/auth/oidclib: OIDC flow viago-oidc/v3+x/oauth2— discovery, Code+PKCE, single-use expiring state, nonce binding, library-verified ID tokens (RS256/ES256 allow-list), claims mappingoidcRedirectUrl/oidcScopes/oidcUsernameClaim/oidcGroupsClaim/appPasswordsPath+CAIRN_OIDC_CLIENT_SECRETenvcmd/cairnd:auth.mode: "oidc"fully wiredgo-oidc/v3, +x/oauth2, +go-jose/v4(indirect); Go floor moves to 1.25 (go-oidc requirement)Not in scope / follow-ups: real-IdP e2e (deploy Keycloak/Authentik on k3s), LDAP provider, UI for app-password management.
oidc-stdlibandoidc-commonbranches are deleted after this merge; the hand-rolled verifier remains in git history.