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

feat: Support for envoy gRPC v3 external authorization API #469

Merged
merged 77 commits into from
Mar 6, 2023

Conversation

dadrus
Copy link
Owner

@dadrus dadrus commented Jan 31, 2023

Related issue(s)

closes #390

Checklist

  • I agree to follow this project's Code of Conduct.
  • I have read, and I am following this repository's Contributing Guidelines.
  • I have read the Security Policy.
  • I have referenced an issue describing the bug/feature request.
  • I have added tests that prove the correctness of my implementation.
  • I have updated the documentation.

Description

This PR implements support for Envoy ExtAuth v3 gRPC API and enables integration of heimdall with any Envoy based API Gateway, which support gRPC based integration of external authorization/authentication providers only. The only thing, which is required on heimdall side to have this integration working, is to start heimdall accordingly:

heimdall serve decision --envoy-grpc -c <path to your configuration>

That's all. No additional configuration required. If heimdall is started as shown above it will expose the gRPC service expected by Envoy, instead of the HTTP service, exposed if started without the --envoy-grpc flag. See also Quickstarts for working examples.

@dadrus dadrus changed the title feat: Support for envoy grpc v3 external authorization API wip: Support for envoy grpc v3 external authorization API Jan 31, 2023
@codecov
Copy link

codecov bot commented Feb 1, 2023

Codecov Report

Merging #469 (06f196e) into main (4cd30ab) will increase coverage by 0.28%.
The diff coverage is 91.82%.

@@            Coverage Diff             @@
##             main     #469      +/-   ##
==========================================
+ Coverage   88.50%   88.79%   +0.28%     
==========================================
  Files         194      206      +12     
  Lines        8038     8665     +627     
==========================================
+ Hits         7114     7694     +580     
- Misses        755      790      +35     
- Partials      169      181      +12     
Impacted Files Coverage Δ
internal/handler/envoyextauth/grpcv3/module.go 17.64% <17.64%> (ø)
internal/accesscontext/access_context.go 90.00% <85.71%> (ø)
...extauth/grpcv3/middleware/accesslog/interceptor.go 87.87% <87.87%> (ø)
...nal/handler/envoyextauth/grpcv3/request_context.go 91.26% <91.26%> (ø)
internal/handler/envoyextauth/grpcv3/service.go 94.44% <94.44%> (ø)
...h/grpcv3/middleware/errorhandler/error_response.go 95.83% <95.83%> (ø)
...al/fiber/middleware/accesslog/accesslog_handler.go 95.65% <96.00%> (-0.94%) ⬇️
...auth/grpcv3/middleware/errorhandler/interceptor.go 98.33% <98.33%> (ø)
cmd/serve/decision.go 83.33% <100.00%> (+27.33%) ⬆️
...nal/fiber/middleware/errorhandler/error_handler.go 100.00% <100.00%> (ø)
... and 13 more

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

@dadrus dadrus changed the title wip: Support for envoy grpc v3 external authorization API feat: Support for envoy grpc v3 external authorization API Mar 6, 2023
@dadrus dadrus changed the title feat: Support for envoy grpc v3 external authorization API feat: Support for envoy gRPC v3 external authorization API Mar 6, 2023
@dadrus dadrus merged commit 666cd07 into main Mar 6, 2023
@dadrus dadrus deleted the feat/envoy_grpc branch March 6, 2023 00:21
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.

Enable integration with Envoy based API Gateways via gRPC
1 participant