pub struct HTTPRouteRulesBackendRefsFiltersExternalAuth {
pub backend_ref: HTTPRouteRulesBackendRefsFiltersExternalAuthBackendRef,
pub forward_body: Option<HTTPRouteRulesBackendRefsFiltersExternalAuthForwardBody>,
pub grpc: Option<HTTPRouteRulesBackendRefsFiltersExternalAuthGrpc>,
pub http: Option<HTTPRouteRulesBackendRefsFiltersExternalAuthHttp>,
pub protocol: HTTPRouteRulesBackendRefsFiltersExternalAuthProtocol,
}Expand description
ExternalAuth configures settings related to sending request details to an external auth service. The external service MUST authenticate the request, and MAY authorize the request as well.
If there is any problem communicating with the external service, this filter MUST fail closed.
Support: Extended
Fields§
§backend_ref: HTTPRouteRulesBackendRefsFiltersExternalAuthBackendRefBackendRef is a reference to a backend to send authorization requests to.
The backend must speak the selected protocol (GRPC or HTTP) on the referenced port.
If the backend service requires TLS, use BackendTLSPolicy to tell the implementation to supply the TLS details to be used to connect to that backend.
forward_body: Option<HTTPRouteRulesBackendRefsFiltersExternalAuthForwardBody>ForwardBody controls if requests to the authorization server should include the body of the client request; and if so, how big that body is allowed to be.
It is expected that implementations will buffer the request body up to
forwardBody.maxSize bytes. Bodies over that size must be rejected with a
4xx series error (413 or 403 are common examples), and fail processing
of the filter.
If unset, or forwardBody.maxSize is set to 0, then the body will not
be forwarded.
Feature Name: HTTPRouteExternalAuthForwardBody
grpc: Option<HTTPRouteRulesBackendRefsFiltersExternalAuthGrpc>GRPCAuthConfig contains configuration for communication with ext_authz protocol-speaking backends.
If unset, implementations must assume the default behavior for each included field is intended.
http: Option<HTTPRouteRulesBackendRefsFiltersExternalAuthHttp>HTTPAuthConfig contains configuration for communication with HTTP-speaking backends.
If unset, implementations must assume the default behavior for each included field is intended.
protocol: HTTPRouteRulesBackendRefsFiltersExternalAuthProtocolExternalAuthProtocol describes which protocol to use when communicating with an ext_authz authorization server.
When this is set to GRPC, each backend must use the Envoy ext_authz protocol
on the port specified in backendRefs. Requests and responses are defined
in the protobufs explained at:
https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/auth/v3/external_auth.proto
When this is set to HTTP, each backend must respond with a 200 status
code in on a successful authorization. Any other code is considered
an authorization failure.
Feature Names: GRPC Support - HTTPRouteExternalAuthGRPC HTTP Support - HTTPRouteExternalAuthHTTP
Trait Implementations§
Source§impl Clone for HTTPRouteRulesBackendRefsFiltersExternalAuth
impl Clone for HTTPRouteRulesBackendRefsFiltersExternalAuth
Source§fn clone(&self) -> HTTPRouteRulesBackendRefsFiltersExternalAuth
fn clone(&self) -> HTTPRouteRulesBackendRefsFiltersExternalAuth
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Default for HTTPRouteRulesBackendRefsFiltersExternalAuth
impl Default for HTTPRouteRulesBackendRefsFiltersExternalAuth
Source§fn default() -> HTTPRouteRulesBackendRefsFiltersExternalAuth
fn default() -> HTTPRouteRulesBackendRefsFiltersExternalAuth
Source§impl<'de> Deserialize<'de> for HTTPRouteRulesBackendRefsFiltersExternalAuth
impl<'de> Deserialize<'de> for HTTPRouteRulesBackendRefsFiltersExternalAuth
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for HTTPRouteRulesBackendRefsFiltersExternalAuth
impl JsonSchema for HTTPRouteRulesBackendRefsFiltersExternalAuth
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PartialEq for HTTPRouteRulesBackendRefsFiltersExternalAuth
impl PartialEq for HTTPRouteRulesBackendRefsFiltersExternalAuth
Source§fn eq(&self, other: &HTTPRouteRulesBackendRefsFiltersExternalAuth) -> bool
fn eq(&self, other: &HTTPRouteRulesBackendRefsFiltersExternalAuth) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for HTTPRouteRulesBackendRefsFiltersExternalAuth
Auto Trait Implementations§
impl Freeze for HTTPRouteRulesBackendRefsFiltersExternalAuth
impl RefUnwindSafe for HTTPRouteRulesBackendRefsFiltersExternalAuth
impl Send for HTTPRouteRulesBackendRefsFiltersExternalAuth
impl Sync for HTTPRouteRulesBackendRefsFiltersExternalAuth
impl Unpin for HTTPRouteRulesBackendRefsFiltersExternalAuth
impl UnwindSafe for HTTPRouteRulesBackendRefsFiltersExternalAuth
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more