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

Adding client identity authentication using JWTs tokens #4

Open
wants to merge 6 commits into
base: github-workflow
Choose a base branch
from

Conversation

trvll
Copy link

@trvll trvll commented Nov 8, 2021

This PR adds client identity authentication capabilities [1] by leveraging JWT Authentication mechanism provided by Envoy's filter extensions.filters.http.jwt_authn [2].

Adding matchJWT object as attribute to http rule set;
Parses applied policy containing matchJWT;
Hands over object parsed from policy to proxy xDS server (envoy API);
Adds envoy redirect with jwt_authn filter in place which listen for ingress traffic and authorize it by validating header token against policy data.
NOTE: it is necessary to enable the needed extension on envoy proxy. To enable it is necessary to uncomment the line below on proxy source file envoy_build_config/extensions_build_config.bzl, recompile the source and replace the cilium-envoy binary on system:

"envoy.filters.http.jwt_authn": "//source/extensions/filters/http/jwt_authn:config",

References:
[1] https://kloudone.atlassian.net/wiki/spaces/AC/pages/1271202197/Draft+PRD+Microsegmentation+with+Client+JWT+Identity
[2] https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/http/jwt_authn/v3/config.proto.html

trvll added 6 commits November 8, 2021 11:33
This commit introduces the client identity authentication using
envoy as a proxy responsible to enforce the policy rules by
deploying the http.jwt_authn filter which will process ingress
requests to select workload and validate it using the configured
external identity provider (e.g. auth0).

Changes:

- CiliumNetwrokPolicy CRD
- Policy Parsing
- Envoy redirects addition
- Envoy filters configuration

The unit tests and e2e as well still missing.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant