<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Services on </title>
    <link>https://emissary-ingress.dev/docs/4.1/topics/running/services/</link>
    <description>Recent content in Services on </description>
    <generator>Hugo</generator>
    <language>en</language>
    <atom:link href="https://emissary-ingress.dev/docs/4.1/topics/running/services/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Authentication service</title>
      <link>https://emissary-ingress.dev/docs/4.1/topics/running/services/auth-service/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://emissary-ingress.dev/docs/4.1/topics/running/services/auth-service/</guid>
      <description>&lt;p&gt;Emissary provides a highly flexible mechanism for authentication,&#xA;via the &lt;code&gt;AuthService&lt;/code&gt; resource.  An &lt;code&gt;AuthService&lt;/code&gt; configures&#xA;Emissary to use an external service to check authentication and&#xA;authorization for incoming requests.  Each incoming request is&#xA;authenticated before routing to its destination.&lt;/p&gt;&#xA;&lt;p&gt;All requests are validated by the &lt;code&gt;AuthService&lt;/code&gt; (unless the &lt;code&gt;Mapping&lt;/code&gt;&#xA;applied to the request sets &lt;code&gt;bypass_auth&lt;/code&gt;).  It is not possible to&#xA;combine multiple &lt;code&gt;AuthServices&lt;/code&gt;.  While it is possible to create&#xA;multiple &lt;code&gt;AuthService&lt;/code&gt; resources, Emissary load-balances between&#xA;them in a round-robin fashion.  This is useful for canarying an&#xA;&lt;code&gt;AuthService&lt;/code&gt; change, but is not useful for deploying multiple&#xA;distinct &lt;code&gt;AuthServices&lt;/code&gt;.  In order to combine multiple external&#xA;services (either having multiple services apply to the same request,&#xA;or selecting between different services for the different requests),&#xA;instead of using an &lt;code&gt;AuthService&lt;/code&gt;, use an &lt;a href=&#34;https://emissary-ingress.dev/docs/edge-stack/latest/topics/using/filters/&#34;&gt;Ambassador Edge Stack &lt;code&gt;External&lt;/code&gt;&#xA;&lt;code&gt;Filter&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ExtAuth protocol</title>
      <link>https://emissary-ingress.dev/docs/4.1/topics/running/services/ext-authz/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://emissary-ingress.dev/docs/4.1/topics/running/services/ext-authz/</guid>
      <description>&lt;p&gt;By design, the ExtAuth protocol used by &lt;a href=&#34;../auth-service&#34;&gt;the AuthService&lt;/a&gt; and by &lt;a href=&#34;https://emissary-ingress.dev/docs/edge-stack/latest/topics/using/filters/external&#34;&gt;External Filters&lt;/a&gt; is highly flexible. The authentication service is the first external service invoked on an incoming request (e.g., it runs before the rate limit filter). Because the logic of authentication is encapsulated in an external service, you can use this to support a wide variety of use cases. For example:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Supporting traditional SSO authentication protocols, e.g., OAuth, OpenID Connect, etc.&lt;/li&gt;&#xA;&lt;li&gt;Supporting HTTP basic authentication (&lt;a href=&#34;https://github.com/datawire/ambassador-auth-httpbasic&#34;&gt;see a sample implementation&lt;/a&gt;).&lt;/li&gt;&#xA;&lt;li&gt;Only authenticating requests that are under a rate limit and rejecting authentication requests above the rate limit.&lt;/li&gt;&#xA;&lt;li&gt;Authenticating specific services (URLs), and not others.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;For each request, the ExtAuth service may either:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Log Service</title>
      <link>https://emissary-ingress.dev/docs/4.1/topics/running/services/log-service/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://emissary-ingress.dev/docs/4.1/topics/running/services/log-service/</guid>
      <description>&lt;p&gt;By default, Emissary puts the access logs on stdout; such&#xA;that the can be read using &lt;code&gt;kubectl logs&lt;/code&gt;.  The format of those logs,&#xA;and the local destination of them, can be configured using the&#xA;&lt;a href=&#34;../../ambassador&#34;&gt;&lt;code&gt;envoy_log_&lt;/code&gt; settings in the &lt;code&gt;ambassador Module&lt;/code&gt;&lt;/a&gt;.  However, the&#xA;options there only allow for logging local to Emissary&amp;rsquo;s Pod.  By&#xA;configuring a &lt;code&gt;LogService&lt;/code&gt;, you can configure Emissary to&#xA;report its access logs to a remote service, in addition to the usual&#xA;&lt;code&gt;ambassador Module&lt;/code&gt; configured logging.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rate limit service</title>
      <link>https://emissary-ingress.dev/docs/4.1/topics/running/services/rate-limit-service/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://emissary-ingress.dev/docs/4.1/topics/running/services/rate-limit-service/</guid>
      <description>&lt;p&gt;Rate limiting is a powerful technique to improve the &lt;a href=&#34;https://blog.getambassador.io/rate-limiting-a-useful-tool-with-distributed-systems-6be2b1a4f5f4&#34;&gt;availability and&#xA;resilience of your&#xA;services&lt;/a&gt;.&#xA;In Emissary, each request can have one or more &lt;em&gt;labels&lt;/em&gt;. These labels are&#xA;exposed to a third-party service via a gRPC API. The third-party service can&#xA;then rate limit requests based on the request labels.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Note that &lt;code&gt;RateLimitService&lt;/code&gt; is only applicable to Emissary,&#xA;and not Ambassador Edge Stack, as Ambassador Edge Stack includes a&#xA;built-in rate limit service.&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tracing service</title>
      <link>https://emissary-ingress.dev/docs/4.1/topics/running/services/tracing-service/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://emissary-ingress.dev/docs/4.1/topics/running/services/tracing-service/</guid>
      <description>&lt;p&gt;Applications that consist of multiple services can be difficult to debug, as a single request can span multiple services. Distributed tracing tells the story of your request as it is processed through your system. Distributed tracing is a powerful tool to debug and analyze your system in addition to request logging and metrics.&lt;/p&gt;&#xA;&lt;p&gt;When enabled, the &lt;code&gt;TracingService&lt;/code&gt; will instruct Emissary to initiate a trace on requests by generating and populating an &lt;code&gt;x-request-id&lt;/code&gt; HTTP header. Services can make use of this &lt;code&gt;x-request-id&lt;/code&gt; header in logging and forward it in downstream requests for tracing. Emissary also integrates with external trace visualization services, including Zipkin-compatible APIs such as &lt;a href=&#34;https://zipkin.io/&#34;&gt;Zipkin&lt;/a&gt; and &lt;a href=&#34;https://github.com/jaegertracing/&#34;&gt;Jaeger&lt;/a&gt; to allow you to store and visualize traces. You can read further on &lt;a href=&#34;https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/observability/tracing&#34;&gt;Envoy&amp;rsquo;s Tracing capabilities&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
