-
Notifications
You must be signed in to change notification settings - Fork 0
[S7] Implement OIDC token exchange endpoint #67
Copy link
Copy link
Open
Labels
github-integrationGitHub App + Action integrationGitHub App + Action integrationoidcOIDC / keyless authenticationOIDC / keyless authenticationsecuritySecurity hardeningSecurity hardeningsprint-7Sprint 7: OIDC, Observability & HardeningSprint 7: OIDC, Observability & Hardening
Description
Description
Enable keyless authentication from GitHub Actions via OIDC.
Endpoint
POST /v1/auth/github-oidc
Flow
- Action sends GitHub OIDC JWT
- Backend fetches GitHub JWKS from
https://token.actions.githubusercontent.com/.well-known/jwks - Verify JWT signature, expiry, audience
- Extract claims:
repository,repository_owner,ref,sha - Map
repository_owner→ KrakenKey installation → account - Issue short-lived KrakenKey access token (15 min TTL)
Security
- Cache JWKS with TTL (1 hour)
- Validate
audclaim matches KrakenKey API URL - Token scoped to the specific installation (can't access other accounts)
- Log all token exchanges
Acceptance Criteria
- Valid GitHub OIDC tokens produce KrakenKey access tokens
- Invalid/expired tokens are rejected
- Token is scoped to correct installation/account
- JWKS is cached
- Works end-to-end from GitHub Actions
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
github-integrationGitHub App + Action integrationGitHub App + Action integrationoidcOIDC / keyless authenticationOIDC / keyless authenticationsecuritySecurity hardeningSecurity hardeningsprint-7Sprint 7: OIDC, Observability & HardeningSprint 7: OIDC, Observability & Hardening