Skip to content

Phase II: full IDP surface (JWKS, refresh tokens, asymmetric/ES256, auth.idp module) #41

Closed

Description

@intel352

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.
  • Refresh tokens (step.auth_refresh_token_issue / _verify).

Trigger: a consumer needing cross-service asymmetric JWT verification (the HS256 shared-secret model requires every validator to share the secret).

Refs: ADR-0002, docs/plans/2026-06-02-auth-bootstrap-redeem-design.md §Scope, prior docs/plans/2026-05-17-admin-bootstrap-and-passkey-upgrade-design.md §Phase II.

Activity

  1. added a commit that references this issue on Jun 2, 2026
    c34304a
  2. intel352 commented on Jun 2, 2026

    @intel352
    ContributorAuthor

    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

    Coverage map

    Need Component
    App-to-app asymmetric ES256 issue + JWKS engine auth.m2m
    Cross-service verification (no shared secret, no discovery) sso.oidc jwksUri + step.sso_validate_token
    Refresh / token exchange step.sso_refresh_token / step.sso_token_exchange (OIDC) ; M2M = re-issue
    External IDPs (Ory/Auth0/Entra/Okta) provider pattern: AuthProviderDescriptor + provider plugins
    Human/browser login OIDC login → step.sso_validate_token

    ADR-0003 records choosing the sso-jwksUri verify path over engine auth.m2m multi-key verify or a bespoke IDP. Closing — supported + demonstrated + documented.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions