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
Copy file name to clipboardExpand all lines: articles/app-service/tutorial-secure-ntier-app.md
+11-10Lines changed: 11 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -103,7 +103,7 @@ You need two App Service web apps, one for the frontend and one for the backend.
103
103
104
104
For more information, see the [az appservice plan create](/cli/azure/afd/profile#az-appservice-plan-create) command reference.
105
105
106
-
1. Create the two web apps.
106
+
1. Create the frontend and backend web apps.
107
107
108
108
The tutorial example creates two sample Node.js apps, where the runtime language version is `NODE:24-lts`. If you prefer to use your own apps, set the `--runtime` parameter `<language-version>` value accordingly. You can run the `az webapp list-runtimes` command for the list of available runtimes:
109
109
@@ -118,6 +118,7 @@ You need two App Service web apps, one for the frontend and one for the backend.
For more information, see the [az network private-endpoint create](cli/azure/network/private-endpoint#az-network-private-endpoint-create) command reference.
239
+
For more information, see the [az network private-endpoint create](/cli/azure/network/private-endpoint#az-network-private-endpoint-create) command reference.
239
240
240
241
1. Link the private endpoint to the Private DNS zone with a DNS Zone group for the backend web app private endpoint.
241
242
@@ -260,7 +261,7 @@ The virtual network infrastructure consists of the following resources:
260
261
261
262
The browser message indicates direct access is denied:
262
263
263
-
:::image type="content" source="./media/tutorial-secure-ntier-app/backend-app-service-forbidden.png" alt-text="Screenshot of the browser message when direct access to the backend app is forbidden.":::
264
+
:::image type="content" source="./media/tutorial-secure-ntier-app/backend-app-service-forbidden.png" border="false" alt-text="Screenshot of the browser message when direct access to the backend app is forbidden.":::
264
265
265
266
For more information on App Service access restrictions with private endpoints, see [Azure App Service access restrictions](overview-access-restrictions.md#app-access).
266
267
@@ -288,7 +289,7 @@ Because your backend web app isn't publicly accessible, you must allow your cont
288
289
az webapp update --resource-group $resourceGroupName --name $backendAppName --set publicNetworkAccess=Enabled
289
290
```
290
291
291
-
1.Set the unmatched rule action for the main web app to deny all traffic.
292
+
1. Set the unmatched rule action for the main web app to deny all traffic.
292
293
293
294
This setting denies public access to the main web app even though the general app access setting is set to allow public access.
294
295
@@ -414,7 +415,7 @@ You can set up continuous deployment with GitHub Actions.
414
415
415
416
1. In the **Settings** tab, set the **Source** option to **GitHub**:
416
417
417
-
:::image type="content" source="./media/tutorial-secure-n-tier-app/choose-web-app-source.png" alt-text="Screenshot that shows how to choose the deployment source for the frontend web app in the Azure portal.":::
418
+
:::image type="content" source="./media/tutorial-secure-ntier-app/choose-web-app-source.png" border="false" alt-text="Screenshot that shows how to choose the deployment source for the frontend web app in the Azure portal.":::
418
419
419
420
1. If you're deploying from GitHub for the first time, select **Authorize** and follow the authorization prompts. If you want to deploy from a different user's repository, select **Change Account**.
420
421
@@ -440,7 +441,7 @@ Now you're ready to check the connections and access to your frontend and backen
440
441
441
442
You should see the following browser message:
442
443
443
-
:::image type="content" source="./media/tutorial-secure-ntier-app/backend-app-service-forbidden.png" alt-text="Screenshot of the browser message when direct access to the backend app is forbidden.":::
444
+
:::image type="content" source="./media/tutorial-secure-ntier-app/backend-app-service-forbidden.png" border="false" alt-text="Screenshot of the browser message when direct access to the backend app is forbidden.":::
444
445
445
446
If you **can** reach the app, then check your configuration:
446
447
@@ -452,7 +453,7 @@ Now you're ready to check the connections and access to your frontend and backen
452
453
453
454
When the connection succeeds, you see the following page:
454
455
455
-
:::image type="content" source="./media/tutorial-secure-ntier-app/frontend-url-content-fetcher.png" alt-text="Screenshot of a successful connection to the frontend app running in the browser.":::
456
+
:::image type="content" source="./media/tutorial-secure-ntier-app/frontend-url-content-fetcher.png" border="false" alt-text="Screenshot of a successful connection to the frontend app running in the browser.":::
456
457
457
458
1. In the URL box, enter the URL for your backend web app, `https://<backend-app-name>.azurewebsites.net`, and select **Fetch**.
458
459
@@ -490,17 +491,17 @@ Validate the frontend web app is reaching the backend web app over the private l
490
491
curl https://<backend-app-name>.azurewebsites.net
491
492
```
492
493
493
-
:::image type="content" source="./media/tutorial-secure-ntier-app/frontend-ssh-validation.png" alt-text="Screenshot of an SSH session to a frontend instance showing how to validate app connections to the backend.":::
494
+
:::image type="content" source="./media/tutorial-secure-ntier-app/frontend-ssh-validation.png"border="false"alt-text="Screenshot of an SSH session to a frontend instance showing how to validate app connections to the backend.":::
494
495
495
496
The `nslookup`command should resolve to the private IP address of your backend web app. The private IP address should be an address from your virtual network.
496
497
497
498
You can confirm your private IP address in the Azure portal. Go to the **Settings**>**Networking** page for your backend web app.
498
499
499
-
:::image type="content" source="./media/tutorial-secure-ntier-app/backend-app-service-inbound-ip.png" alt-text="Screenshot that shows the Networking page for a web app in the Azure portal with the inbound IP address highlighted.":::
500
+
:::image type="content" source="./media/tutorial-secure-ntier-app/backend-app-service-inbound-ip.png"border="false"alt-text="Screenshot that shows the Networking page for a web app in the Azure portal with the inbound IP address highlighted.":::
500
501
501
502
1. Repeat the same `nslookup` and `curl` commands from another terminal (one that isn't an SSH session on your frontend instances).
502
503
503
-
:::image type="content" source="./media/tutorial-secure-ntier-app/frontend-external-terminal.png" alt-text="Screenshot of an external terminal running the nslookup and curl commands for the backend web app showing access is forbidden.":::
504
+
:::image type="content" source="./media/tutorial-secure-ntier-app/frontend-external-terminal.png" border="false" alt-text="Screenshot of an external terminal running the nslookup and curl commands for the backend web app showing access is forbidden.":::
504
505
505
506
The `nslookup` command returns the **public IP** for the backend web app. Because public access to the backend web app is disabled, if you try to reach the public IP, you get an access denied error. This error means the site isn't accessible from the public internet, which is the intended behavior.
0 commit comments