EventTransform: Support OIDC and authz
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 1.6k
- Forks
- 631
- Avg merge
- 3d 13h
- Merged PRs (30d)
- 6
Description
Problem
JSONata EventTransform doesn't yet support OIDC and EventPolicy, we should add support for it
The transform-jsonata data plane is in this repo: https://github.com/knative-extensions/eventing-integrations/tree/main/transform-jsonata, there we need to:
- verify JWT tokens given the audience in an environment variable and the key set in a mounted configmap
- verify authorized subjects passed in a mounted configmap
Once the data plane part is complete, we would need to configure it in the EventTransform reconciler and when we create resources
Exit Criteria
- JSONata EventTransform sets the audience in the addressable status (Verified with end to end test)
- JSONata EventTransform verifies JWT tokens (Verified with end to end test)
- JSONata EventTransform prevents unauthorized access as configured with EventPolicies (Verified with end to end test)
Time Estimate (optional):
How many developer-days do you think this may take to resolve?
10-30
Additional context (optional)
- https://knative.dev/development/eventing/transforms/
- https://knative.dev/docs/eventing/features/sender-identity/
- https://knative.dev/docs/eventing/features/authorization
- See issues in projects for similar and related issues https://github.com/orgs/knative/projects/66
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
Start in the transform-jsonata data plane and review how it can use the audience environment variable and mounted ConfigMaps for JWT and subject verification. Then read pkg/reconciler/eventtransform/eventtransform.go and resources_jsonata.go to see how the reconciler creates and configures resources. Done means the audience appears in addressable status and end-to-end tests verify JWTs and EventPolicy authorization.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, kubernetes
- Domain
- authentication, authorization, backend, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100