Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[data-plane] Receiver: Reject unauthorized requests #4043

Closed
creydr opened this issue Aug 7, 2024 · 5 comments
Closed

[data-plane] Receiver: Reject unauthorized requests #4043

creydr opened this issue Aug 7, 2024 · 5 comments
Labels
area/data-plane help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. triage/accepted Issues which should be fixed (post-triage)

Comments

@creydr
Copy link
Contributor

creydr commented Aug 7, 2024

We need to verify in the receiver (ingress), that an request is authorized. Therefor we should do the following in the receiver:

  • Get the OIDC identity of the sender
  • In case the resources (Broker/KafkaChannel/KafkaSink) .status.policies is set:
    • check, if the senders identity is subject of any of the linked EventPolicies (in their .status.from[]).
      • If it is present: continue with the request
      • If not: reject the request with a 403 status code
  • In case the resources .status.policies is empty:
    • Check the default-authorization-mode and do the following depending on its value:
      • allow-all: Continue with the request
      • deny-all: reject the request with a 403 status code
      • allow-same-namespace: check, if the senders identity is from the same namespace, as the resource. If so, continue with the request, otherwise reject with a 403

We should also add an e2e test for the above scenarios.

Additional context:

Additional hints for new contributors before starting with this issue:

  1. When the issue has the Draft status, the issue is subject to change and thus should not be started to be worked on
  2. Make sure you've read and understood the CONTRIBUTING.md guidelines
  3. Make sure you're able to run Knative Eventing locally with Knative Eventing Kafka and run at least the unit tests.
  4. Feel free to raise any questions you have either directly here in the issue, in the #knative-eventing Slack channel or join the Eventing Workgroup Meeting / Office Hours
  5. When you feel comfortable with this issue, feel free to assign it to you (e.g. by commenting /assign). Please be aware that we might unassign you, if we don't see any progress from your side to give other contributors also a chance to work on this issue.
@creydr
Copy link
Contributor Author

creydr commented Aug 7, 2024

/help
/triage accepted

Copy link

knative-prow bot commented Aug 7, 2024

@creydr:
This request has been marked as needing help from a contributor.

Please ensure the request meets the requirements listed here.

If this request no longer meets these requirements, the label can be removed
by commenting with the /remove-help command.

In response to this:

/help
/triage accepted

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@knative-prow knative-prow bot added triage/accepted Issues which should be fixed (post-triage) help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. labels Aug 7, 2024
@Cali0707
Copy link
Member

/area data-plane

@creydr creydr moved this from 📝 Draft to 📋 Backlog in Eventing Authorization Aug 13, 2024
@creydr creydr moved this from 📋 Backlog to 📝 Draft in Eventing Authorization Aug 15, 2024
@creydr
Copy link
Contributor Author

creydr commented Aug 15, 2024

Putting back in "Draft" status, as this maybe could be included in #4042 already

@creydr
Copy link
Contributor Author

creydr commented Aug 26, 2024

Done in #4041 / #4061

@creydr creydr closed this as completed Aug 26, 2024
@github-project-automation github-project-automation bot moved this from 📝 Draft to ✅ Done in Eventing Authorization Aug 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/data-plane help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. triage/accepted Issues which should be fixed (post-triage)
Projects
None yet
Development

No branches or pull requests

2 participants