We have an existing gRPC service, when a client connects to it there is a simple authorization header that is generated and used by all subsequent requests.
We need to load balance the service with envoyproxy, and the way it is now it will not work as the authorization header is often obtained from one endpoint and the an attempt to use that header with another endpoint (which of course has not registered the token so it will not allow a connection).
We can disable the auth checks in the cluster service, but we do need to be sure that requests are authorized.
My question is what is the best way to do this. Options I can see are:
- Remove auth checking from the endpoint completely (does not seem like a good idea, even though this service will only be accessible from within our firewall and the envoyproxy)
- Implement JWT in envoyproxy, providing a service to provide a valid token
- This means all endpoints would still be unprotected, but at least envoy will require a valid JWT token before it allows traffic
- Is this adequate?
- Implement JWT and also send the token to the cluster endpoint for further validation
Any recommendations, and just as important an example configuration will be very helpful.
Thanks,
Cory