Skip to main content
logoIstio AuthserviceVersion: Next

Envoy Standalone

The Istio Authservice can be used in a standalone Envoy instance. To use it, you just need to configure an ext-authz filter to forward traffic to the authzservice gRPC endpoint.

The following example is a minimal Envoy configuration file to forward all traffic to the authservice. The only needed elements are:

  • The HTTP filter forwarding traffic to a defined Envoy cluster that implements the Envoy ext-authz filter.
  • The definition of the Envoy cluster that points to where the authservice is deployed. It already implements the ext-authz gRPC API.
  • The running authservice instance must be configured to talk to the Identity Provider as explained in the OIDC configuration guide.
static_resources:
listeners:
- name: http
address:
socket_address:
address: 0.0.0.0
port_value: 80
filter_chains:
- filters:
- name: envoy.filters.network.http_connection_manager
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
stat_prefix: http
access_log:
- name: envoy.access_loggers.stdout
typed_config:
"@type": type.googleapis.com/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog
route_config:
name: http
virtual_hosts:
- name: http
domains: ["*"]
routes:
- match:
prefix: "/"
direct_response:
status: 200
body:
inline_string: "Access allowed\n"
http_filters:
- name: envoy.filters.http.ext_authz
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthz
transport_api_version: V3
grpc_service:
envoy_grpc:
cluster_name: ext_authz
timeout: 300s
- name: envoy.filters.http.router
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router

clusters:
- name: ext_authz
connect_timeout: 0.25s
type: LOGICAL_DNS
lb_policy: ROUND_ROBIN
typed_extension_protocol_options:
envoy.extensions.upstreams.http.v3.HttpProtocolOptions:
"@type": type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions
explicit_http_config:
http2_protocol_options: {}
load_assignment:
cluster_name: ext_authz
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: ext-authz
port_value: 10003