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

Validate JWT signature #33

Closed
2 tasks
dcseifert opened this issue Nov 14, 2019 · 5 comments
Closed
2 tasks

Validate JWT signature #33

dcseifert opened this issue Nov 14, 2019 · 5 comments
Assignees
Labels
enhancement New feature or request
Projects

Comments

@dcseifert
Copy link
Contributor

dcseifert commented Nov 14, 2019

Description

In order to keep the entire Authentication & Authorization logic away from the user of kelon, we need a simple possibility to check the signature of passed JWT-Tokens. In addition to that there must be the possibility to specify for each endpoint if it needs authentication or not.

Tasks

  • Configure Auth-Endpoints with White/Blacklisting of URLs like Istio does
  • Add documentation for new feature

Outcome

Kelon unifies the entire auth process and bundles it into one enforcement point

@dcseifert dcseifert created this issue from a note in kelon (Backlog) Nov 14, 2019
@containerpope
Copy link
Collaborator

@dcseifert we should do this by providing envoy as optional middleware to the Kelon System. Envoy could run as a sidecar or integrated and be configured by Kelon over its api. This would lead to us being able to use the rich envoy filterset.

So here we could use for example the jwt verify step for different apis without having to rebuild essential logic.
https://www.envoyproxy.io/docs/envoy/v1.8.0/configuration/http_filters/jwt_authn_filter

We should discuss this further. For example could Envoy be a better web proxy for Kelon.

What do you think?

@dcseifert
Copy link
Contributor Author

@mkjoerg Sounds like a great idea! I'll start trying this go-library from coreos for JWT-Verifikation first

@containerpope
Copy link
Collaborator

@dcseifert As discussed, running a separate envoy will not help us here, so that is perfectly fine.

@dcseifert
Copy link
Contributor Author

@mkjoerg Should we stick to Auth-Providers with Black/Whitelisting of URLs, or should we add providers to already mapped URLs inside the api.yml like envoyproxy does here:

image

@containerpope
Copy link
Collaborator

@dcseifert yes this would be a great way to configure this. The only thing I would recommend is adding an option to trigger on everything except. Like istio does it with trigger rules

    triggerRules:
      - excludedPaths:
        - prefix: /api...

Details can be seen here: https://istio.io/docs/reference/config/security/istio.authentication.v1alpha1/
This feature will also depend on: #54

@dcseifert dcseifert self-assigned this Jan 2, 2020
@dcseifert dcseifert added the enhancement New feature or request label Jan 2, 2020
kelon automation moved this from Backlog to Done Jul 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
kelon
  
Done
Development

No branches or pull requests

2 participants