Skip to content

Preserve complete issuer paths when constructing OIDC discovery URLs #270

Description

@Bakar404

Outcome

Production OIDC initialization should resolve discovery metadata for issuers with path components, including Entra v2 and realm-based issuers, without changing authentication or authorization policy.

Confirmed source finding

At b2523964e7576cafc00e84a51e1044f55826dea7, crates/crony-server/src/auth.rs:147–159 trims the trailing slash and then joins .well-known/openid-configuration relatively. Native URL joining replaces the final issuer path component instead of appending to the complete issuer.

An isolated contribution already contains a bounded fix using the pinned URL path-segment API and regression evidence. It is uncommitted/unpublished; recover and review that contribution rather than reimplementing it.

Acceptance

  • Preserve root, nested, trailing-slash and percent-encoded issuer paths when appending the discovery suffix.
  • Preserve HTTPS checks, discovery-issuer comparison, query/fragment behavior, principal mapping and authorization.
  • Cover root, nested, Entra-shaped, encoded-path, mismatched-issuer and production-HTTP rejection cases.
  • Review the existing focused regression and rerun appropriate repository gates on the exact publication candidate.
  • Report discovery compatibility separately from real provider sign-in, browser onboarding and deployment acceptance.

Related: #16, #242, #248. This narrow fix does not close those workstreams or authorize their pending execution/review scopes.

Local evidence, not yet published: docs/evidence/2026-09-13-oidc-discovery-issuer-path.md records two relevant baseline failures and eight fixed-suite passes; docs/evidence/2026-09-13-azure-readiness-repository-gate.md records the historical repository gate. Those checks were not rerun during the read-only audit.

Activity

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

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions