Skip to content

Conversation

@kafeelhasan
Copy link
Contributor

Proposed Changes

This PR adds documentation for configuring OIDC authentication with Microsoft Entra ID in private subnet NGINXaaS deployments, addressing networking challenges for external authentication endpoints.

Changes Made

  • Azure NAT Gateway solution with NSG rules and Microsoft IP ranges
  • Azure Firewall solution with DNS proxy and FQDN filtering
  • Complete Azure CLI commands for NAT Gateway, Firewall, NSG, and route tables
  • OIDC configuration for Microsoft Entra ID JWT keyfile endpoint
  • DNS resolver setup for private subnet environments
  • Network rules for TCP 443 access to login.microsoftonline.com

Benefits

  • Enables OIDC authentication in private subnet deployments
  • Provides two networking solutions with cost/security trade-offs
  • Reduces implementation errors with production-ready CLI commands
  • Meets enterprise security requirements for network isolation

Checklist

Before sharing this pull request, I completed the following checklist:

Footnotes

  1. Potentially sensitive information includes personally identify information (PII), authentication credentials, and live URLs. Refer to the style guide for guidance about placeholder content.

@kafeelhasan kafeelhasan requested a review from a team as a code owner November 4, 2025 09:27
@kafeelhasan kafeelhasan self-assigned this Nov 4, 2025
@github-actions github-actions bot added documentation Improvements or additions to documentation product/nginxaas-azure Issues related to NGINX as a Service for Azure labels Nov 4, 2025
@kafeelhasan kafeelhasan requested a review from russokj November 4, 2025 09:31
Copy link
Contributor

@mjang mjang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've done a "light" writer edit


Learn how to configure F5 NGINXaaS for Azure with OpenID Connect (OIDC) authentication using Microsoft Entra ID when your NGINXaaS deployment is in a private subnet. This guide addresses the networking requirements to enable authentication traffic to reach Microsoft Entra ID endpoints while maintaining security controls.

When NGINXaaS is deployed in a private subnet, authentication traffic must reach external Microsoft Entra ID endpoints at `login.microsoftonline.com`. This guide provides two solutions to enable this connectivity while controlling outbound traffic:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So when we have three solutions....

Suggested change
When NGINXaaS is deployed in a private subnet, authentication traffic must reach external Microsoft Entra ID endpoints at `login.microsoftonline.com`. This guide provides two solutions to enable this connectivity while controlling outbound traffic:
When NGINXaaS is deployed in a private subnet, authentication traffic must reach external Microsoft Entra ID endpoints at `login.microsoftonline.com`. This guide provides the following solutions to enable this connectivity while controlling outbound traffic:

1. **Azure Firewall** - Higher security, more granular control

## Before you begin

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need some sort of intro, such as:

Suggested change
To complete this guide, you need to set up the following:

{{< table >}}
| Feature | Azure NAT Gateway | Azure Firewall |
|---------|-------------------|----------------|
| **Hourly Cost** | Lower ($0.045+ per hour) | Higher ($1.25+ per hour) |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be better to link to the Azure source for these costs.

Otherwise, if Azure raises their prices, a customer could say: "But NGINX told us that the price would be..."

{{< call-out "note" >}}The `oidc_jwt_keyfile` endpoint is not listed in the Microsoft App Registration's endpoints pane but is required for proper OIDC configuration.{{< /call-out >}}

1. Configure DNS resolution appropriately:
- For IPv4-only deployments, set `ipv6=off` in your resolver directive in the `openid_connect.server_conf` file
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this is a duplicate of current line 75

Suggested change
- For IPv4-only deployments, set `ipv6=off` in your resolver directive in the `openid_connect.server_conf` file

1. **Route Configuration**: Confirm the route table is properly associated with the NGINXaaS subnet.

## Security considerations

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need some sort of intro, such as:

Suggested change
To secure your systems, address the following:

- **Network Segmentation**: Consider additional network segmentation for enhanced security.

## Cost optimization

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
To optimize your systems, we recommend:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation product/nginxaas-azure Issues related to NGINX as a Service for Azure

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants