You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
v0.3.0 shipped the minimal HS256 session-issue primitive (step.auth_jwt_issue) per ADR-0002 — sufficient for symmetric-secret consumers + the bootstrap demo. Deferred to Phase II:
auth.idp module + step.auth_jwt_issue asymmetric (ES256/RS256) signing with key rotation.
step.auth_jwks_serve — /.well-known/jwks.json for multi-service verification.
ADR-0003 records choosing the sso-jwksUri verify path over engine auth.m2m multi-key verify or a bespoke IDP. Closing — supported + demonstrated + documented.
Activity
Merge pull request #43 from GoCodeAlone/feat/auth-41-cross-service-as…
intel352 commentedon Jun 2, 2026
Resolved — cross-service asymmetric auth supported by reuse (no bespoke IDP)
Phase II's needs (cross-service asymmetric ES256 verification · refresh · validation · external IDPs · provider pattern) are delivered by composing existing components + one small, provider-pattern-aligned enhancement — not a bespoke
auth.idp/JWKS/refresh implementation.Shipped
sso.oidcgains ajwksUriverify-only mode (oidc.NewRemoteKeySet+NewVerifier,signingAlgorithmsincl. ES256) — verify a JWT from a published JWKS with no shared secret and no OIDC discovery. (Plus the proto-contract fix that an incomplete v0.1.7 exposed.)auth.m2mES256 issuer +/oauth/jwks) ↔ App B (sso.oidcjwksUri verifier) across two processes. Verified: curl smoke 12/12 (accept via App A's public JWKS; reject wrong-key/aud/issuer/expired/garbage — proves genuine asymmetric, not same-key) + Playwright 8/8 + playwright-cli QA (✓ verified / ✗ rejected console).Coverage map
auth.m2msso.oidcjwksUri +step.sso_validate_tokenstep.sso_refresh_token/step.sso_token_exchange(OIDC) ; M2M = re-issueAuthProviderDescriptor+ provider pluginsstep.sso_validate_tokenADR-0003 records choosing the sso-jwksUri verify path over engine
auth.m2mmulti-key verify or a bespoke IDP. Closing — supported + demonstrated + documented.