source-cooperative / source-cooperative/data.source.coop
Support external OIDC Identity Providers
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 24
- Forks
- 6
- Avg merge
- 1h 32m
- Merged PRs (30d)
- 1
Description
Description
Implement support for platform-registered OIDC Identity Providers in the data proxy as described in ADR-004.
Platform IdPs are pre-configured by Source Cooperative operators. Each defines an issuer URL, well-known claims, and audience hint. Roles reference these IdPs in their identity constraints.
Key Requirements
- Platform IdP registry with initial providers:
- Source Cooperative Auth (
auth.source.coop) — interactive users, CLI login - GitHub Actions (
https://token.actions.githubusercontent.com) — CI/CD pipelines - GitLab CI/CD (
https://gitlab.com) - Azure DevOps (
https://vstoken.dev.azure.com/<org_id>) - HCP Terraform (
https://app.terraform.io) - Vercel (
https://oidc.vercel.com/<team_slug>)
- Source Cooperative Auth (
- Each IdP defines:
id,issuer_url,display_name,well_known_claims[],audience_hint - JWKS discovery and caching per IdP (1hr TTL, stale-while-revalidate up to 24hr, 256KB max response, 3s timeout)
- JWT verification: signature (via JWKS),
exp,nbf(60s clock skew tolerance),aud - Extensible design: operators can add new IdPs without code changes
Future Extension
Account-registered IdPs (allowing accounts to register corporate identity systems like Okta, Entra ID, Keycloak) is deferred but the design should not preclude it.
References
- ADR-004: Platform IdPs — IdP tiers, platform IdP table, JWKS caching
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Read ADR-004 first, then locate the data proxy's authentication and role identity-constraint entry points. The work is done when platform IdP registration, per-IdP JWKS discovery and caching, and the specified JWT checks support the listed providers without preventing future account-registered IdPs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- authentication, backend-api-design, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100