diff --git a/docs/http/traffic-policy/index.mdx b/docs/http/traffic-policy/index.mdx
index a6b758ebb9..16ebecc5a9 100644
--- a/docs/http/traffic-policy/index.mdx
+++ b/docs/http/traffic-policy/index.mdx
@@ -77,6 +77,8 @@ See [expressions](./expressions) for variable and macro definitions.
If a policy's expressions are evaluated as a match against a connection, the policy's actions will be executed. If multiple actions are defined
on a policy, the actions will execute sequentially.
+See [actions](./actions) for all available actions.
+
## Reference
### Configuration
diff --git a/docs/integrations/auth0/img/auth0-quickstart.png b/docs/integrations/auth0/img/auth0-quickstart.png
new file mode 100644
index 0000000000..db21c8d22a
Binary files /dev/null and b/docs/integrations/auth0/img/auth0-quickstart.png differ
diff --git a/docs/integrations/auth0/jwt-action.mdx b/docs/integrations/auth0/jwt-action.mdx
index 0fb2cf4145..e51c3a7c3c 100644
--- a/docs/integrations/auth0/jwt-action.mdx
+++ b/docs/integrations/auth0/jwt-action.mdx
@@ -8,13 +8,13 @@ import { ExampleAuth0 } from "/examples/actions/jwt-validation-auth0.mdx";
The JWT Validation action can be configured to validate tokens issued from Auth0.
-This is an example configuration from setting up a new API and Machine to Machine application in Auth0.
+This is an example [Traffic Policy](/docs/http/traffic-policy/) configuration for setting up a new API and Machine to Machine application in Auth0.
## 0. Define your API in Auth0
-If you haven't already done so, you will need to create an API in Auth0. If you've already done this, skip to the next section.
+You will need to create an API in Auth0. If you've already done this, skip to the next section.
Once logged into your [Auth0 Tenant Dashboard](https://manage.auth0.com/dashboard), select `Applications > APIs`, and then click `+ Create API`.
@@ -24,7 +24,15 @@ Name your API whatever you'd like, and choose an identifier and signing algorith
Once your API is created, you can define and add scopes needed in the `Permissions` tab. These values will be populated in the `scope` claim of your JWT.
-## 1. Creating a Machine to Machine application
+## 1. Accessing your JWT
+
+Upon creating your new API, Auth0 will create an associated application under `Applications > Applications` in the left navigation bar.
+
+Navigate to your application, and click on the `Quickstart` tab. Here, you will find a signed, fully functional JWT, as well as examples of progromatically generating more in multiple languages.
+
+
+
+## 2. Creating a Machine to Machine application
When you create your API in Auth0, it will automatically create a new Machine to Machine Application and authorize it to use your new API. If you added additional scopes for your API, you will need to manually add them to the new application in the `Machine to Machine Applications` tab of your new API.
@@ -32,7 +40,7 @@ When you create your API in Auth0, it will automatically create a new Machine to
If it did not create one automatically, you can create a new Machine to Machine app and select your new API when prompted.
-## 2. Configuring the ngrok JWT Validation action
+## 3. Configuring the ngrok JWT Validation action
You now have everything you need to configure the JWT Validation action inside of ngrok.
@@ -61,7 +69,7 @@ Once you've added these values, you can Save the policy and Save the Edge in ngr
```bash
curl --request GET \
--url http://your-ngrok-domain.ngrok-free.dev/ \
- --header 'authorization: Bearer YOUR-FULL-JWT-HERE'
+ --header 'authorization: Bearer YOUR-FULL-JWT-HERE-FROM-STEP-1'
```
If you were able to see the response from your API, everything is working correctly. You can double check by sending a malformed token.
diff --git a/docs/tcp/traffic-policy/index.mdx b/docs/tcp/traffic-policy/index.mdx
index 729ceb360e..df56a2a6e4 100644
--- a/docs/tcp/traffic-policy/index.mdx
+++ b/docs/tcp/traffic-policy/index.mdx
@@ -75,6 +75,8 @@ If no expressions are specified on a policy rule, its actions will always take e
If a policy's expressions are evaluated as a match against a connection, the policy's actions will be executed. If multiple actions are defined
on a policy, the actions will execute sequentially.
+See [actions](./actions) for all available actions.
+
## Reference
### Configuration
diff --git a/docs/tls/traffic-policy/index.mdx b/docs/tls/traffic-policy/index.mdx
index bbe72f9b38..8435fb4049 100644
--- a/docs/tls/traffic-policy/index.mdx
+++ b/docs/tls/traffic-policy/index.mdx
@@ -75,6 +75,8 @@ If no expressions are specified on a policy rule, its actions will always take e
If a policy's expressions are evaluated as a match against a connection, the policy's actions will be executed. If multiple actions are defined
on a policy, the actions will execute sequentially.
+See [actions](./actions) for all available actions.
+
## Reference
### Configuration
diff --git a/examples/actions/jwt-validation-auth0.mdx b/examples/actions/jwt-validation-auth0.mdx
index 623121956e..b2c01b9c8d 100644
--- a/examples/actions/jwt-validation-auth0.mdx
+++ b/examples/actions/jwt-validation-auth0.mdx
@@ -2,42 +2,55 @@ import ConfigExample from "../../src/components/ConfigExample.tsx";
export const type = "jwt-validation";
export const config = {
- issuer: {
- allow_list: [
- {
- value: "https://dev-tenant-id.us.auth0.com/",
- },
- ],
- },
- audience: {
- allow_list: [
- {
- value: "https://dev-tenant-id.us.auth0.com/api/v2/",
- },
- ],
- },
- http: {
- tokens: [
- {
- type: "jwt",
- method: "header",
- name: "Authorization",
- prefix: "Bearer ",
- },
- ],
- },
- jws: {
- allowed_algorithms: ["RS256"],
- keys: {
- sources: {
- additional_jkus: [
- "https://dev-tenant-id.us.auth0.com/.well-known/jwks.json",
- ],
- },
+ enabled: true,
+ inbound: [
+ {
+ expressions: [],
+ name: "JWT Validation",
+ actions: [
+ {
+ type: "jwt-validation",
+ config: {
+ issuer: {
+ allow_list: [
+ {
+ value: "https://dev-tenant-id.us.auth0.com/",
+ },
+ ],
+ },
+ audience: {
+ allow_list: [
+ {
+ value: "https://dev-tenant-id.us.auth0.com/api/v2/",
+ },
+ ],
+ },
+ http: {
+ tokens: [
+ {
+ type: "jwt",
+ method: "header",
+ name: "Authorization",
+ prefix: "Bearer ",
+ },
+ ],
+ },
+ jws: {
+ allowed_algorithms: ["RS256"],
+ keys: {
+ sources: {
+ additional_jkus: [
+ "https://dev-tenant-id.us.auth0.com/.well-known/jwks.json",
+ ],
+ },
+ },
+ },
+ },
+ },
+ ],
},
- },
+ ],
+ outbound: [],
};
-export const ExampleAuth0 = () => (
-
-);
+export const ExampleAuth0 = () => ;