Skip to content

Commit 7c76735

Browse files
authored
Merge branch 'main' into IoTFreshness_Row2
2 parents 205c1ba + 7705988 commit 7c76735

File tree

926 files changed

+10549
-11422
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

926 files changed

+10549
-11422
lines changed

articles/active-directory-b2c/tutorial-create-user-flows.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ Next, specify that the application should be treated as a public client:
213213
1. Ensure that **"isFallbackPublicClient": true** is set in the application manifest:
214214
1. In the left menu, under **Manage**, select **Manifest** to open application manifest.
215215
1. Switch from the **Microsoft Graph App Manifest (New)** tab to the **AAD Graph App Manifest (Deprecating Soon)** tab.
216-
1. Find **allowPublicClient** key and ensure its value is set to **true**.
216+
1. Find **isFallbackPublicClient** key and ensure its value is set to **true**.
217217

218218

219219
Now, grant permissions to the API scope you exposed earlier in the *IdentityExperienceFramework* registration:

articles/app-service/deploy-staging-slots.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Set up Staging Environments in Azure App Service
2+
title: Set Up Staging Environments
33
description: Learn how to deploy apps to a nonproduction slot and automatically swap into production. Increase the reliability and eliminate app downtime from deployments.
44
ms.assetid: e224fc4f-800d-469a-8d6a-72bcde612450
55
ms.topic: how-to

articles/app-service/manage-backup.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,8 @@ The following table shows which app configurations are restored when you choose
329329
330330
A custom backup (on-demand backup or scheduled backup) includes all content and configuration that's included in an [automatic backup](#whats-included-in-an-automatic-backup), plus any linked database, up to the allowable maximum size.
331331
332+
Each backup contains a .zip file with backup data and an .xml file {siteName}-{dateTime}.xml, which lists the contents, including [custom domains](app-service-web-tutorial-custom-domain.md). When restoring a custom backup, custom domains from the .xml file will be added to the destination app if no DNS conflict exists (i.e., the domain is available for binding), and if the destination app has different custom domains than the .xml file's custom domain list, those custom domains will be removed.
333+
332334
When [backing up over Azure Virtual Network](#back-up-and-restore-over-azure-virtual-network), you can't [back up the linked database](#back-up-and-restore-a-linked-database).
333335
334336
### Why is my linked database not backed up?

articles/app-service/overview-authentication-authorization.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Authentication and Authorization in Azure App Service and Azure Functions
2+
title: Authentication and Authorization
33
description: Learn about the built-in authentication and authorization support in Azure App Service and Azure Functions, and how it can help secure your app against unauthorized access.
44
ms.assetid: b7151b57-09e5-4c77-a10c-375a262f17e5
55
ms.topic: conceptual

articles/app-service/overview-managed-identity.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Use managed identities for App Service and Azure Functions
2+
title: Managed Identities
33
description: Learn how managed identities work in Azure App Service and Azure Functions, along with how to configure a managed identity and generate a token for a back-end resource.
44
ms.topic: how-to
55
ms.date: 09/30/2024

articles/app-service/overview-tls.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ These suites provide strong encryption and are automatically used when TLS 1.3 i
6464

6565
### TLS 1.2
6666

67-
TLS 1.2 is the **default and recommended** TLS version for App Service. It provides strong encryption and broad compatibility while meeting compliance standards like PCI DSS. New web apps and SCM endpoints are automatically set to TLS 1.2 unless changed.
67+
TLS 1.2 is the **default** TLS version for App Service. It provides strong encryption and broad compatibility while meeting compliance standards like PCI DSS. New web apps and SCM endpoints are automatically set to TLS 1.2 unless changed.
6868

6969
Azure App Service uses a secure set of TLS 1.2 cipher suites to ensure encrypted connections and protect against known vulnerabilities. While TLS 1.0 and 1.1 can be enabled for backward compatibility, they are not recommended.
7070

articles/app-service/routine-maintenance.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ Maintenance operations upgrade machines iteratively while App Service monitors t
6060

6161
### Are business hours reflected?
6262

63-
Yes, business hours are reflected for the time zone of the region. Maintenance operations are optimized to start outside the standard business hours of 9 AM to 5 PM. Statistically, that's the best time for any interruptions and restarts of workloads because there's less stress on the system (in customer applications and transitively on the platform itself). If resources are still upgrading by 9 AM in a given region, the upgrade will safely pause before the next critical step and until the end of business hours.
63+
Yes, business hours are reflected for the time zone of the region. Maintenance operations are optimized to start outside the standard business hours of 9 AM to 5 PM. Statistically, that's the best time for any interruptions and restarts of workloads because there's less stress on the system (in customer applications and transitively on the platform itself). App Service maintenance makes a best effort to reduce maintenance operations during these business hours. If resources are still upgrading by 9 AM in a given region, the upgrade will continue until reaching a safe stopping point, pausing before the next critical step and until the end of business hours.
6464

6565
### What are my options to control routine maintenance?
6666

articles/app-service/troubleshoot-diagnostic-logs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Enable Diagnostic Logging for Apps in Azure App Service
2+
title: Enable Diagnostic Logging
33
description: Learn how to enable diagnostic logging and add instrumentation to your application, along with how to access the information logged by Azure.
44
ms.assetid: c9da27b2-47d4-4c33-a3cb-1819955ee43b
55
ms.topic: how-to
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
---
2+
title: TLS 1.0 and 1.1 retirement on Azure Application Gateway
3+
description: Guidance for managing your Application Gateway with the upcoming retirement of TLS 1.0 and 1.1.
4+
services: application gateway
5+
author: jaesoni
6+
ms.service: azure-application-gateway
7+
ms.topic: concept-article
8+
ms.date: 03/04/2025
9+
ms.author: greglin
10+
---
11+
12+
# Managing your Application Gateway with TLS 1.0 and 1.1 retirement
13+
14+
Starting **31st August 2025**, Azure Application Gateway will no longer support **TLS (Transport Layer Security) versions 1.0 and 1.1**. This change aligns with the [Azure-wide retirement](https://azure.microsoft.com/updates?id=update-retirement-tls1-0-tls1-1-versions-azure-services) of these TLS versions to enhance the security. As the owner of an Application Gateway resource, you should review both the Frontend clients and Backend servers TLS connections that may be using these older versions.
15+
16+
## Frontend TLS connections
17+
18+
With deprecation of TLS versions 1.0 and 1.1, the **older Predefined TLS policies** and certain cipher suites from the **Custom TLS policy** will be removed.
19+
20+
### Predefined policies for V2 SKUs
21+
22+
The predefined policies 20150501 and 20170401 that support TLS v1.0 and 1.1 will be discontinued and can no longer be associated with an Application Gateway resource after August 2025. It's advised to transition to one of the recommended TLS policies, 20220101 or 20220101S. Alternatively, the 20170401S policy may be used if specific cipher suites are required.
23+
24+
![A diagram showing predefined policies for V2 SKUs.](media/application-gateway-tls-version-retirement/v2-retiring-tls-policies.png)
25+
26+
### Custom policies for V2 SKUs
27+
28+
Azure Application Gateway V2 SKU offers two types of custom policies: Custom and CustomV2. The retirement of these TLS versions affects only the "Custom" policy. The newer "CustomV2" policy comes with TLS v1.3. Beyond August 2025, the older Custom policy will support only TLS v1.2 and the following cipher suites won't be supported.
29+
30+
| Unsupported cipher suites |
31+
| ---------- |
32+
| TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 |
33+
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 |
34+
| TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 |
35+
| TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 |
36+
| TLS_DHE_RSA_WITH_AES_256_CBC_SHA |
37+
| TLS_DHE_RSA_WITH_AES_128_CBC_SHA |
38+
| TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 |
39+
| TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 |
40+
| TLS_DHE_DSS_WITH_AES_256_CBC_SHA |
41+
| TLS_DHE_DSS_WITH_AES_128_CBC_SHA |
42+
| TLS_RSA_WITH_3DES_EDE_CBC_SHA |
43+
| TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA |
44+
45+
### Predefined policies for V1 SKUs
46+
47+
The V1 SKU will only support the 20170401S policy after the older policies with TLS versions 1.0 and 1.1 are discontinued. The newer 20220101 or 20220101S policies won't be available for the soon-to-be-retired V1 SKU.
48+
49+
![A diagram showing predefined policies for V1 SKUs.](media/application-gateway-tls-version-retirement/v1-retiring-tls-policies.png)
50+
51+
### Custom policies for V1 SKUs
52+
53+
Application Gateway V1 SKU only supports the older "Custom" policy. Beyond August 2025, this older Custom policy will support only TLS v1.2 and the following cipher suites won't be supported.
54+
55+
| Unsupported cipher suites |
56+
| ---------- |
57+
| TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 |
58+
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 |
59+
| TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 |
60+
| TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 |
61+
| TLS_DHE_RSA_WITH_AES_256_CBC_SHA |
62+
| TLS_DHE_RSA_WITH_AES_128_CBC_SHA |
63+
| TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 |
64+
| TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 |
65+
| TLS_DHE_DSS_WITH_AES_256_CBC_SHA |
66+
| TLS_DHE_DSS_WITH_AES_128_CBC_SHA |
67+
| TLS_RSA_WITH_3DES_EDE_CBC_SHA |
68+
| TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA |
69+
70+
## Backend TLS connections
71+
72+
You don't need to configure anything on your Application Gateway for the backend connection's TLS version as the selection of TLS policy has no control over the backend TLS connections. After retirement, the connections to backend servers will always be with preferred TLS v1.3 and up to TLS v1.2. You must ensure that your servers in the backend pools are compatible with these updated protocol versions. This compatibility avoids any disruptions when establishing a TLS/HTTPS connection with those backend servers.
73+
74+
## Next steps
75+
76+
Learn about [TLS policy types and configurations](application-gateway-ssl-policy-overview.md)
77+
Visit Azure Updates for [retirement notice](https://azure.microsoft.com/updates?searchterms=application+gateway)

articles/application-gateway/configuration-http-settings.md

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ services: application-gateway
55
author: greg-lindsay
66
ms.service: azure-application-gateway
77
ms.topic: concept-article
8-
ms.date: 10/03/2024
8+
ms.date: 03/19/2025
99
ms.author: greglin
1010
---
1111

@@ -15,37 +15,40 @@ The application gateway routes traffic to the backend servers by using the confi
1515

1616
## Cookie-based affinity
1717

18-
Azure Application Gateway uses gateway-managed cookies for maintaining user sessions. When a user sends the first request to Application Gateway, it sets an affinity cookie in the response with a hash value which contains the session details, so that the subsequent requests carrying the affinity cookie are routed to the same backend server for maintaining stickiness.
18+
Azure Application Gateway uses gateway-managed cookies for maintaining user sessions. When a user sends the first request to Application Gateway, it sets an affinity cookie in the response with a hash value that contains the session details. This process enables subsequent requests that carry the affinity cookie to be routed to the same backend server, thus maintaining stickiness.
1919

2020
This feature is useful when you want to keep a user session on the same server and when session state is saved locally on the server for a user session. If the application can't handle cookie-based affinity, you can't use this feature. To use it, make sure that the clients support cookies.
21+
2122
> [!NOTE]
22-
> Some vulnerability scans may flag the Application Gateway affinity cookie because the Secure or HttpOnly flags are not set. These scans do not take into account that the data in the cookie is generated using a one-way hash. The cookie doesn't contain any user information and is used purely for routing.
23+
> Some vulnerability scans may flag the Application Gateway affinity cookie because the Secure or HttpOnly flags are not set. These scans don't take into account that the data in the cookie is generated using a one-way hash. The cookie doesn't contain any user information and is used purely for routing.
2324
2425

2526
The [Chromium browser](https://www.chromium.org/Home) [v80 update](https://chromiumdash.appspot.com/schedule) brought a mandate where HTTP cookies without [SameSite](https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis-03#rfc.section.5.3.7) attribute have to be treated as SameSite=Lax. For CORS (Cross-Origin Resource Sharing) requests, if the cookie has to be sent in a third-party context, it has to use *SameSite=None; Secure* attributes and it should be sent over HTTPS only. Otherwise, in an HTTP only scenario, the browser doesn't send the cookies in the third-party context. The goal of this update from Chrome is to enhance security and to avoid Cross-Site Request Forgery (CSRF) attacks.
2627

2728
To support this change, starting February 17 2020, Application Gateway (all the SKU types) will inject another cookie called *ApplicationGatewayAffinityCORS* in addition to the existing *ApplicationGatewayAffinity* cookie. The *ApplicationGatewayAffinityCORS* cookie has two more attributes added to it (*"SameSite=None; Secure"*) so that sticky sessions are maintained even for cross-origin requests.
2829

29-
Note that the default affinity cookie name is *ApplicationGatewayAffinity* and you can change it. If in your network topology, you deploy multiple application gateways in line, you must set unique cookie names for each resource. If you're using a custom affinity cookie name, an additional cookie is added with `CORS` as suffix. For example: *CustomCookieNameCORS*.
30+
The default affinity cookie name is *ApplicationGatewayAffinity* and you can change it. If in your network topology, you deploy multiple application gateways in line, you must set unique cookie names for each resource. If you're using a custom affinity cookie name, an additional cookie is added with `CORS` as suffix. For example: *CustomCookieNameCORS*.
3031

3132
> [!NOTE]
32-
> If the attribute *SameSite=None* is set, it is mandatory that the cookie also contains the *Secure* flag, and must be sent over HTTPS. If session affinity is required over CORS, you must migrate your workload to HTTPS.
33-
Please refer to TLS offload and End-to-End TLS documentation for Application Gateway here – [Overview](ssl-overview.md), [Configure an application gateway with TLS termination using the Azure portal](create-ssl-portal.md), [Configure end-to-end TLS by using Application Gateway with the portal](end-to-end-ssl-portal.md).
33+
> If the attribute *SameSite=None* is set, it's mandatory that the cookie also contains the *Secure* flag, and must be sent over HTTPS. If session affinity is required over CORS, you must migrate your workload to HTTPS. Refer to TLS offload and End-to-End TLS documentation for Application Gateway. See the [SSL overview](ssl-overview.md), [Configure an application gateway with TLS termination](create-ssl-portal.md), and [Configure end-to-end TLS](end-to-end-ssl-portal.md).
3434
3535
## Connection draining
3636

3737
Connection draining helps you gracefully remove backend pool members during planned service updates. It applies to backend instances that are
3838
- explicitly removed from the backend pool, or
3939
- reported as unhealthy by the health probes.
4040

41-
You can apply this setting to all backend pool members by enabling Connection Draining in the Backend Setting. It ensures that all deregistering instances in a backend pool don't receive any new requests/connections while maintaining the existing connections until the configured timeout value. This is also true for WebSocket connections.
41+
You can apply this setting to all backend pool members by enabling Connection Draining in the Backend Setting. It ensures that all deregistering instances in a backend pool don't receive any new requests/connections while maintaining the existing connections until the configured timeout value. This process is also true for WebSocket connections.
4242

4343
| Configuration Type | Value |
4444
| ---------- | ---------- |
45-
|Default value when Connection Draining is not enabled in Backend Setting| 30 seconds |
45+
|Default value when Connection Draining isn't enabled in Backend Setting| 30 seconds |
4646
|User-defined value when Connection Draining is enabled in Backend Setting | 1 to 3600 seconds |
4747

48-
The only exception to this are requests bound for deregistering instances because of gateway-managed session affinity. These requests continue to be forwarded to the deregistering instances.
48+
The only exception to this process are requests bound for deregistering instances because of gateway-managed session affinity. These requests continue to be forwarded to the deregistering instances.
49+
50+
> [!NOTE]
51+
> There's a limitation where a configuration update will terminate ongoing connections after the connection draining timeout. To address this limitation, you must increase the connection draining time-out in the backend settings to a value higher than the max expected client download time.
4952
5053
## Protocol
5154

@@ -100,11 +103,11 @@ This setting associates a [custom probe](application-gateway-probe-overview.md#c
100103
101104
## Configuring the host name
102105

103-
Application Gateway allows for the connection established to the backend to use a *different* hostname than the one used by the client to connect to Application Gateway. While this configuration can be useful in some cases, exercise caution when overriding the hostname such that it is different between the application gateway and the client compared to the backend target.
106+
Application Gateway allows for the connection established to the backend to use a *different* hostname than the one used by the client to connect to Application Gateway. While this configuration can be useful in some cases, exercise caution when overriding the hostname such that it's different between the application gateway and the client compared to the backend target.
104107

105-
In production, it is recommended to keep the hostname used by the client towards the application gateway as the same hostname used by the application gateway to the backend target. This avoids potential issues with absolute URLs, redirect URLs, and host-bound cookies.
108+
In production environments, it's a best practice to use the same hostname for the client to application gateway connection and application gateway to backend target connection. This practice avoids potential issues with absolute URLs, redirect URLs, and host-bound cookies.
106109

107-
Before setting up Application Gateway that deviates from this, please review the implications of such configuration as discussed in more detail in Architecture Center: [Preserve the original HTTP host name between a reverse proxy and its backend web application](/azure/architecture/best-practices/host-name-preservation)
110+
Before setting up Application Gateway that deviates from this, review the implications of such configuration as discussed in more detail in Architecture Center: [Preserve the original HTTP host name between a reverse proxy and its backend web application](/azure/architecture/best-practices/host-name-preservation)
108111

109112
There are two aspects of an HTTP setting that influence the [`Host`](https://datatracker.ietf.org/doc/html/rfc2616#section-14.23) HTTP header that is used by Application Gateway to connect to the backend:
110113
- "Pick host name from backend-address"
@@ -120,10 +123,10 @@ An example case is multi-tenant services as the back end. An app service is a mu
120123

121124
By default, the custom domain name is *example.azurewebsites.net*. To access your app service by using an application gateway through a hostname that's not explicitly registered in the app service or through the application gateway's FQDN, you can override the hostname in the original request to the app service's hostname. To do this, enable the **pick host name from backend address** setting.
122125

123-
For a custom domain whose existing custom DNS name is mapped to the app service, the recommended configuration is not to enable the **pick host name from backend address**.
126+
For a custom domain whose existing custom DNS name is mapped to the app service, the recommended configuration isn't to enable the **pick host name from backend address**.
124127

125128
> [!NOTE]
126-
> This setting is not required for App Service Environment, which is a dedicated deployment.
129+
> This setting isn't required for App Service Environment, which is a dedicated deployment.
127130
128131
## Host name override
129132

0 commit comments

Comments
 (0)