You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit converts the majority of important psuedo-callouts in
documentation to proper Hugo call-out shortcodes. The instances that
have been left are parts of files that will be deprecated in the future.
As part of this commit, metadata and Markdown linting issues were also
fixed, and some peripheral process documentation was updated for
clarity.
Copy file name to clipboardExpand all lines: content/nginx-one/nginx-configs/config-templates/submit-templates.md
+39-15Lines changed: 39 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,17 +1,17 @@
1
1
---
2
-
nd-docs: DOCS-000
3
2
title: Submit templates
4
3
toc: true
5
4
weight: 200
6
-
type:
7
-
- how-to
5
+
nd-content-type:how-to
6
+
nd-product: ONE
8
7
---
9
8
10
9
# Template submission and preview guide
11
10
12
11
This guide explains how to submit templates for rendering NGINX configurations and preview the results using the Templates API.
13
12
14
13
Before submitting templates for preview, you need to import templates into NGINX One Console.
14
+
15
15
- See the [Import Templates Guide]({{< ref "import-templates.md" >}}) for instructions on creating templates.
16
16
- For guidance on writing templates, see the [Template Authoring Guide]({{< ref "author-templates.md" >}}).
17
17
@@ -20,11 +20,11 @@ Before submitting templates for preview, you need to import templates into NGINX
20
20
Template submission allows you to compose templates that generate complete NGINX configuration. The process involves:
21
21
22
22
1.**Discovering templates** - Find base and augment templates that match your infrastructure needs
23
-
2.**Understanding capabilities** - Review what contexts and features the base template supports
24
-
3.**Selecting augments** - Choose augments for additional features (CORS, rate limiting, SSL, etc.)
25
-
4.**Providing values** - Supply values for all template variables
26
-
5.**Preview and validate** - Generate and review the complete NGINX configuration
27
-
6.**Save as staged config** - Use NGINX One Console to save the preview as a staged configuration for deployment
23
+
1.**Understanding capabilities** - Review what contexts and features the base template supports
24
+
1.**Selecting augments** - Choose augments for additional features (CORS, rate limiting, SSL, etc.)
25
+
1.**Providing values** - Supply values for all template variables
26
+
1.**Preview and validate** - Generate and review the complete NGINX configuration
27
+
1.**Save as staged config** - Use NGINX One Console to save the preview as a staged configuration for deployment
28
28
29
29
## Current limitations
30
30
@@ -41,7 +41,8 @@ Before creating a submission, find base and augment templates that match your in
41
41
42
42
Use the [List Templates]({{< ref "/nginx-one/api/api-reference-guide/#operation/listTemplates" >}}) API operation to find templates organized by use case.
43
43
44
-
**Example Response:**
44
+
**Example response:**
45
+
45
46
```json
46
47
{
47
48
"count": 3,
@@ -89,11 +90,13 @@ Use the [List Templates]({{< ref "/nginx-one/api/api-reference-guide/#operation/
89
90
```
90
91
91
92
**Use Case Identification:**
93
+
92
94
-**Base templates** represent primary NGINX use cases (reverse proxy, load balancer, static site, API gateway)
93
95
-**Template descriptions** help identify which base template matches your infrastructure need
94
96
-**augment_includes** shows what additional features each base template supports
95
97
96
98
**Information Available In API Response:**
99
+
97
100
-**object_id** - A unique identifier of a template to use in submission requests
98
101
-**type** - Identifies base templates (use exactly one) vs augment templates (use zero or more)
99
102
-**allowed_in_contexts** - Shows where augment templates can be applied within a base template
@@ -106,12 +109,14 @@ The API response contains all information needed for creating a submission to re
106
109
Use the [Retrieve a Template]({{< ref "/nginx-one/api/api-reference-guide/#operation/getTemplate" >}}) API operation only when you need to examine template content or detailed variable requirements.
107
110
108
111
**When to use template details:**
112
+
109
113
- Review the actual template code and structure
110
114
- Examine detailed schema definitions for variable validation
111
115
- Understand specific variable names and constraints
112
116
- Debug template behavior or compatibility issues
113
117
114
-
**Example Response:**
118
+
**Example response:**
119
+
115
120
```json
116
121
{
117
122
"allowed_in_contexts": [],
@@ -149,6 +154,7 @@ Use the [Retrieve a Template]({{< ref "/nginx-one/api/api-reference-guide/#opera
-**Schema definition** - Shows required variables (`backend_url`) and their validation rules
154
160
-**Variable constraints** - Data types, descriptions, and any pattern requirements
@@ -164,31 +170,41 @@ The following sections describe what you need for the request:
164
170
### Required parameters
165
171
166
172
**Query Parameter:**
173
+
167
174
-`preview_only=true` - Currently the only supported mode. Renders configuration for preview without creating a submission object.
168
175
169
176
### Configuration path (`conf_path`)
170
177
171
-
**Required.** The absolute path where the main NGINX configuration file should be placed.
178
+
{{< call-out "important" >}}
172
179
173
-
**Examples:**
174
-
-`/etc/nginx/nginx.conf` (standard installation)
175
-
-`/opt/nginx/nginx.conf` (custom installation)
180
+
This path determines where augment configurations are rendered:
176
181
177
-
**Important:** This path determines where augment configurations are rendered:
178
182
- Base template → renders to the exact `conf_path`
179
183
- Augment templates → render to `{base_dir}/conf.d/augments/{filename}.{hash}.conf`
180
184
181
185
Where `base_dir` is derived from `conf_path`:
186
+
182
187
-`conf_path: /etc/nginx/nginx.conf` → augments in `/etc/nginx/conf.d/augments/`
183
188
-`conf_path: /opt/nginx/nginx.conf` → augments in `/opt/nginx/conf.d/augments/`
184
189
190
+
{{< /call-out >}}
191
+
192
+
**Required.** The absolute path where the main NGINX configuration file should be placed.
193
+
194
+
**Examples:**
195
+
196
+
-`/etc/nginx/nginx.conf` (standard installation)
197
+
-`/opt/nginx/nginx.conf` (custom installation)
198
+
185
199
### Template properties
186
200
187
201
**Base Template:**
202
+
188
203
-`object_id` - Template unique identifier (use a template where `type` is `base`)
189
204
-`values` - Key-value pairs for template variables
190
205
191
206
**Augment Templates:**
207
+
192
208
-`object_id` - Template unique identifier (use a template where `type` is `augment`)
193
209
-`target_context` - NGINX context where the augment should be applied
194
210
-`values` - Key-value pairs for template variables (optional if template has no variables)
@@ -199,13 +215,15 @@ Where `base_dir` is derived from `conf_path`:
199
215
Augment templates must specify a `target_context` that determines where the augment will be placed in the base template.
200
216
201
217
**Validation:**
218
+
202
219
- The augment's `target_context` must be listed in the augment template's `allowed_in_contexts` (specified during import)
203
220
204
221
**Available Contexts:**
205
222
206
223
See the [Template Authoring Guide]({{< ref "author-templates.md#config-templates-contexts" >}}) for detailed information about context paths and how they map to NGINX configuration structure.
207
224
208
225
**Rendering Behavior:**
226
+
209
227
- If the base template has an `augment_includes` placeholder for the target context, the augment content is injected there
210
228
- If the base template doesn't have a matching placeholder, the augment is ignored (no error)
211
229
- If the base template has placeholders but no matching augments are provided, those placeholders render as empty strings
@@ -352,15 +370,18 @@ Parse errors indicate the rendered configuration has NGINX syntax issues, often
352
370
When templates are successfully rendered, the system creates multiple files:
353
371
354
372
### Base template output
373
+
355
374
-**File:** Exact path specified in `conf_path`
356
375
-**Content:** Rendered base template with augment content injected at `augment_includes` points
@@ -417,6 +438,7 @@ Template rendering follows predictable ordering rules at two levels:
417
438
Directives render in the exact order they appear in the template file. This includes the placement of `{{ augment_includes "context_path" . }}` extension points.
418
439
419
440
**Example:**
441
+
420
442
```nginx
421
443
http {
422
444
# This renders first
@@ -435,6 +457,7 @@ http {
435
457
When multiple augments target the same context, they render in the order specified in the submission request's augments array.
436
458
437
459
**Example submission:**
460
+
438
461
```json
439
462
{
440
463
"conf_path": "/etc/nginx/nginx.conf",
@@ -458,6 +481,7 @@ When multiple augments target the same context, they render in the order specifi
Copy file name to clipboardExpand all lines: content/nginx-one/secure-your-fleet/set-up-security-alerts.md
+7-2Lines changed: 7 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@ title: "Set up security alerts"
3
3
weight: 500
4
4
toc: true
5
5
nd-content-type: how-to
6
-
nd-product: NGINX One
6
+
nd-product: ONE
7
7
---
8
8
9
9
With this page, you'll learn how to set up alerts in F5 Distributed Cloud. Once configured, you'll see the CVEs and insecure configurations associated with your NGINX fleet. These instructions are intended for those responsible for keeping their NGINX infrastructure and application traffic secure. It assumes you know how to:
@@ -139,14 +139,19 @@ When you set up an email alert for a problem, you'll see the alert in:
139
139
140
140
You may also get a follow-up email with the subject **Alert Resolved**.
141
141
142
-
> **Important:** Sometimes an **Alert Resolved** email is sent even though the issue is still active.
142
+
{{< call-out "important" >}}
143
+
144
+
Sometimes an **Alert Resolved** email is sent even though the issue is still active.
143
145
To check the current status, go to the NGINX One Console.
144
146
145
147
For CVEs, the trusted source is:
148
+
146
149
-**NGINX One Console > Manage > Instances > `Instance hostname`**
147
150
148
151
Open the instance dashboard to see the latest list of CVEs. Use the Console, not email, to confirm whether an issue is resolved.
Copy file name to clipboardExpand all lines: content/nginx/deployment-guides/single-sign-on/active-directory-federation-services.md
+11-17Lines changed: 11 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,19 +1,17 @@
1
1
---
2
-
description: Enable OpenID Connect-based single sign-on (SSO) for applications proxied by NGINX Plus, using Microsoft AD FS as the identity provider (IdP).
3
-
type:
4
-
- how-to
5
2
title: Single Sign-On with Microsoft Active Directory FS
3
+
description: Enable OpenID Connect-based single sign-on (SSO) for applications proxied by NGINX Plus, using Microsoft AD FS as the identity provider (IdP).
6
4
toc: true
7
5
weight: 300
8
-
product: NGINX-PLUS
6
+
nd-content-type: how-to
7
+
nd-product: NPL
9
8
nd-docs: DOCS-1683
10
9
---
11
10
12
11
This guide explains how to enable single sign-on (SSO) for applications being proxied by F5 NGINX Plus. The solution uses OpenID Connect as the authentication mechanism, with [Microsoft Active Directory Federation Services](https://docs.microsoft.com/en-us/windows-server/identity/active-directory-federation-services) (AD FS) as the Identity Provider (IdP) and NGINX Plus as the Relying Party (RP), or OIDC client application that verifies user identity.
13
12
14
13
{{< call-out "note" >}} This guide applies to [NGINX Plus Release 35]({{< ref "nginx/releases.md#r35" >}}) and later. In earlier versions, NGINX Plus relied on an [njs-based solution](#legacy-njs-guide), which required NGINX JavaScript files, key-value stores, and advanced OpenID Connect logic. In the latest NGINX Plus version, the new [OpenID Connect module](https://nginx.org/en/docs/http/ngx_http_oidc_module.html) simplifies this process to just a few directives.{{< /call-out >}}
15
14
16
-
17
15
## Prerequisites
18
16
19
17
- A Microsoft AD FS instance, either on-premises or in [Azure](https://learn.microsoft.com/en-us/windows-server/identity/ad-fs/deployment/how-to-connect-fed-azure-adfs), with administrator privileges.
@@ -22,7 +20,6 @@ This guide explains how to enable single sign-on (SSO) for applications being pr
22
20
23
21
- A domain name pointing to your NGINX Plus instance, for example, `demo.example.com`.
24
22
25
-
26
23
## Configure the AD FS Server {#adfs-setup}
27
24
28
25
[Microsoft Active Directory Federation Services](https://docs.microsoft.com/en-us/windows-server/identity/active-directory-federation-services) (AD FS) serves as the Identity Provider.
@@ -80,15 +77,15 @@ Check the OpenID Connect endpoint URL. By default, AD FS publishes the `.well-kn
- the `adfs-server-address` is your AD FS server address
86
84
87
85
- the `/adfs/.well-known/openid-configuration` is the default address for AD FS for document location
88
86
89
87
- the `jq` command (optional) is used to format the JSON output for easier reading and requires the [jq](https://jqlang.github.io/jq/) JSON processor to be installed.
90
88
91
-
92
89
The configuration metadata is returned in the JSON format:
93
90
94
91
```json
@@ -109,23 +106,21 @@ Check the OpenID Connect endpoint URL. By default, AD FS publishes the `.well-kn
109
106
110
107
`https://adfs-server-address/adfs`.
111
108
112
-
113
109
{{< call-out "note" >}} You will need the values of **Client ID**, **Client Secret**, and **Issuer** in the next steps. {{< /call-out >}}
114
110
115
-
116
111
## Set up NGINX Plus {#nginx-plus-setup}
117
112
118
113
With AD FS configured, you can enable OIDC on NGINX Plus. NGINX Plus serves as the Rely Party (RP) application — a client service that verifies user identity.
119
114
120
-
121
115
1. Ensure that you are using the latest version of NGINX Plus by running the `nginx -v` command in a terminal:
122
116
123
117
```shell
124
118
nginx -v
125
119
```
120
+
126
121
The output should match NGINX Plus Release 35 or later:
127
122
128
-
```none
123
+
```text
129
124
nginx version: nginx/1.29.0 (nginx-plus-r35)
130
125
```
131
126
@@ -142,7 +137,7 @@ With AD FS configured, you can enable OIDC on NGINX Plus. NGINX Plus serves as t
142
137
# ...
143
138
}
144
139
```
145
-
<span id="adfs-setup-oidc-provider"></span>
140
+
146
141
5. In the [`http {}`](https://nginx.org/en/docs/http/ngx_http_core_module.html#http) context, define the AD FS OIDC provider named `adfs` by specifying the [`oidc_provider {}`](https://nginx.org/en/docs/http/ngx_http_oidc_module.html#oidc_provider) context:
147
142
148
143
```nginx
@@ -177,7 +172,7 @@ With AD FS configured, you can enable OIDC on NGINX Plus. NGINX Plus serves as t
177
172
178
173
- If the **userinfo** directive is set to `on`, NGINX Plus will fetch `/userinfo` from the AD FS and append the claims from userinfo to the `$oidc_claims_` variables.
179
174
180
-
- **Important:** All interaction with the IdP is secured exclusively over SSL/TLS, so NGINX must trust the certificate presented by the IdP. By default, this trust is validated against your system's CA bundle (the default CA store foryour Linux or FreeBSD distribution). If the IdP's certificate is not includedin the system CA bundle, you can explicitly specify a trusted certificate or chain with the [`ssl_trusted_certificate`](https://nginx.org/en/docs/http/ngx_http_oidc_module.html#ssl_trusted_certificate) directive so that NGINX can validate and trust the IdP's certificate.
175
+
- {{< call-out "important" >}} All interaction with the IdP is secured exclusively over SSL/TLS, so NGINX must trust the certificate presented by the IdP. By default, this trust is validated against your system's CA bundle (the default CA store foryour Linux or FreeBSD distribution). If the IdP's certificate is not includedin the system CA bundle, you can explicitly specify a trusted certificate or chain with the [`ssl_trusted_certificate`](https://nginx.org/en/docs/http/ngx_http_oidc_module.html#ssl_trusted_certificate) directive so that NGINX can validate and trust the IdP's certificate. {{< /call-out >}}
181
176
182
177
```nginx
183
178
http {
@@ -288,7 +283,9 @@ With AD FS configured, you can enable OIDC on NGINX Plus. NGINX Plus serves as t
288
283
}
289
284
}
290
285
```
286
+
291
287
12. Save the NGINX configuration file and reload the configuration:
288
+
292
289
```nginx
293
290
nginx -s reload
294
291
```
@@ -368,19 +365,16 @@ http {
368
365
369
366
4. Refresh `https://demo.example.com/` again. You should be redirected to AD FS for a fresh sign‑in, proving the session has been terminated.
370
367
371
-
372
368
## Legacy njs-based AD FS Solution {#legacy-njs-guide}
373
369
374
370
If you are running NGINX Plus R33 and earlier or if you still need the njs-based solution, refer to the [Legacy njs-based Microsoft AD FS Guide]({{< ref "nginx/deployment-guides/single-sign-on/oidc-njs/active-directory-federation-services.md">}}) for details. The solution uses the [`nginx-openid-connect`](https://github.com/nginxinc/nginx-openid-connect) GitHub repository and NGINX JavaScript files.
375
371
376
-
377
372
## See Also
378
373
379
374
- [NGINX Plus Native OIDC Module Reference documentation](https://nginx.org/en/docs/http/ngx_http_oidc_module.html)
380
375
381
376
- [Release Notes for NGINX Plus R35]({{< ref "nginx/releases.md#r35">}})
382
377
383
-
384
378
## Revision History
385
379
386
380
- Version 2 (August 2025) – Added RP‑initiated logout (logout_uri, post_logout_uri, logout_token_hint) and userinfo support.
0 commit comments