Limetime management for OIDC JWKS · Issue #10620 · pypi/warehouse (original) (raw)
Navigation Menu
- Explore
- Pricing
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
Appearance settings
Description
The first step in verifying the OIDC JWTs is verifying their signatures, which means checking them against the OIDC provider's signing key set.
There are a few approaches we could take to acquiring and maintaining the updatedness of those keys:
- Bake them into the Warehouse codebase. We could pull the current JWKS blob from the URI referenced in the provider's
openid-configuration
.
- Pros: Simple.
- Cons: More tedious to update in the event of key updates/rotations; requires a PR each time any provider does so. Gaps between the rotation and updates means that Warehouse would probably reject authentic JWTs.
- Fetch the JWKS for each provider on Warehouse startup/initialization. Restarts always re-fetch the JWKS.
- Pros: Simple.
- Cons: Most of the same cons as (1).
- All of (2), but we also include a periodic job that checks each OIDC provider's JWKS on a schedule.
- Pros: No rotation downtime.
- Cons: Requires the most code.