<p>I'm testing the Istio(service mesh) Authorization and Authentication feature and been doing some tests to implement JWT on micro services environment. And the docs isn't clear about the differences between the object kind "AuthorizationPolicy" and "RequestAuthentication",</p>

asd123ea
<p>Not sure if you have checked those 2 documentation pages:</p>

<p><a href="https://istio.io/latest/docs/reference/config/security/authorization-policy/" rel="noreferrer">Authorization Policy</a> and <a href="https://istio.io/latest/docs/reference/config/security/request_authentication/" rel="noreferrer">RequestAuthentication</a>.</p>

<p>Using Authorization Policy you can ALLOW or DENY a request, but you can't define Authentication, so the requests will be accepted or not, but without considering authentication methods.</p>

<p>The RequestAuthentication, on the other hand will define the authentication method that will be used to validate the request, but that do not restrict the requests without authentication at all, so you would need an authorization rule linked to it.</p>

<p>This phrase within the RequestAuthentication doc explains it:</p>

<blockquote>
  <p>A request that does not contain any authentication credentials will be accepted but will not have any authenticated identity. <strong>To restrict access to authenticated requests only, this should be accompanied by an authorization rule</strong>.</p>
</blockquote>

<p>So in your Authorization Policy you can define the policies to ALLOW or DENY a request, and with the RequestAuthentication you can define your authentication methods.</p>

<p>If you want to limit it to authenticated requests, then you will need both.
Basically, the best approach will depend on your use case.</p>
