Skip to content

Commit a03c135

Browse files
author
gitName
committed
Merge branch 'main' of https://github.com/MicrosoftDocs/azure-docs-pr into acmcp
2 parents b47d876 + 1b18b5b commit a03c135

File tree

1,316 files changed

+7899
-122033
lines changed

Some content is hidden

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

1,316 files changed

+7899
-122033
lines changed

.openpublishing.publish.config.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -638,6 +638,12 @@
638638
"branch": "main",
639639
"branch_mapping": {}
640640
},
641+
{
642+
"path_to_root": "playwright-workspaces",
643+
"url": "https://github.com/Azure/playwright-workspaces",
644+
"branch": "main",
645+
"branch_mapping": {}
646+
},
641647
{
642648
"path_to_root": "playwright-testing-service",
643649
"url": "https://github.com/microsoft/playwright-testing-service",

articles/api-management/cors-policy.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ The `cors` policy adds cross-origin resource sharing (CORS) support to an operat
4242
|Name|Description|Required|Default|
4343
|----------|-----------------|--------------|-------------|
4444
|allow-credentials|The `Access-Control-Allow-Credentials` header in the preflight response will be set to the value of this attribute and affect the client's ability to submit credentials in cross-domain requests. Policy expressions are allowed.|No|`false`|
45-
|terminate-unmatched-request|Controls the processing of cross-origin requests that don't match the policy settings. Policy expressions are allowed.<br/><br/>When `OPTIONS` request is processed as a preflight request and `Origin` header doesn't match policy settings:<br/> - If the attribute is set to `true`, immediately terminate the request with an empty `200 OK` response<br/>- If the attribute is set to `false`, check inbound for other in-scope `cors` policies that are direct children of the inbound element and apply them. If no `cors` policies are found, terminate the request with an empty `200 OK` response. <br/><br/>When `GET` or `HEAD` request includes the `Origin` header (and therefore is processed as a simple cross-origin request), and doesn't match policy settings:<br/>- If the attribute is set to `true`, immediately terminate the request with an empty `200 OK` response.<br/> - If the attribute is set to `false`, allow the request to proceed normally and don't add CORS headers to the response.|No|`true`|
45+
|terminate-unmatched-request|Controls the processing of cross-origin requests that don't match the policy settings. Policy expressions are allowed.<br/><br/>When `OPTIONS` request is processed as a preflight request and `Origin` header doesn't match policy settings:<br/> - If the attribute is set to `true`, immediately terminate the request with an empty `200 OK` response<br/>- If the attribute is set to `false`, check inbound for other in-scope `cors` policies that are direct children of the inbound element and apply them. If no `cors` policies are found, terminate the request with an empty `200 OK` response. <br/><br/>When `GET` or `HEAD` request includes the `Origin` header (and therefore is processed as a simple cross-origin request), and doesn't match policy settings:<br/>- If the attribute is set to `true`, immediately terminate the request with an empty `200 OK` response.<br/> - If the attribute is set to `false`, allow the request to proceed normally and don't add CORS headers to the response.|No|`false`|
4646

4747
## Elements
4848

articles/api-management/policy-reference.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ ms.custom: subject-policy-reference
1414

1515
This page is an index of [Azure Policy](../governance/policy/overview.md) built-in policy
1616
definitions for Azure API Management. For additional Azure Policy built-ins for other services, see
17-
[Azure Policy built-in definitions](../governance/policy/samples/built-in-policies.md). If you're looking for policies you can use to modify API behavior in API Management, see [API Management policy reference](api-management-policies.md).
17+
[Azure Policy built-in definitions](/azure/governance/policy/samples/built-in-policies). If you're looking for policies you can use to modify API behavior in API Management, see [API Management policy reference](api-management-policies.md).
1818

1919
The name of each built-in policy definition links to the policy definition in the Azure portal. Use
2020
the link in the **Version** column to view the source on the

articles/api-management/validate-jwt-policy.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ The `validate-jwt` policy enforces existence and validity of a supported JSON we
121121
* If used in the policy, the key must be provided inline within the policy in the Base64-encoded form.
122122
* **Asymmetric** - The following encryption algorithms are supported: PS256, RS256, RS512, ES256.
123123
* If used in the policy, the key may be provided either via an OpenID configuration endpoint, or by providing the ID of an uploaded certificate (in PFX format) that contains the public key, or the modulus-exponent pair of the public key.
124+
* If the API Management instance is injected or integrated in a virtual network, any OpenID configuration endpoint URLs configured in the policy must be reachable by the gateway.
124125
* To configure the policy with one or more OpenID configuration endpoints for use with a self-hosted gateway, the OpenID configuration endpoints URLs must also be reachable by the cloud gateway.
125126
* You can use access restriction policies in different scopes for different purposes. For example, you can secure the whole API with Microsoft Entra authentication by applying the `validate-jwt` policy on the API level, or you can apply it on the API operation level and use `claims` for more granular control.
126127
* When using a custom header (`header-name`), the configured required scheme (`require-scheme`) will be ignored. To use a required scheme, JWTs must be provided in the `Authorization` header.

articles/app-service/app-service-configure-premium-v3-tier.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,4 +128,4 @@ New-AzAppServicePlan -ResourceGroupName <resource_group_name> `
128128

129129
- [Scale up an app in Azure App Service](manage-scale-up.md)
130130
- [Get started with autoscale in Azure](/azure/azure-monitor/autoscale/autoscale-get-started)
131-
- [Run a load test to identify performance bottlenecks in a web app](../load-testing/tutorial-identify-bottlenecks-azure-portal.md)
131+
- [Run a load test to identify performance bottlenecks in a web app](../app-testing/load-testing/tutorial-identify-bottlenecks-azure-portal.md)

articles/app-service/app-service-configure-premium-v4-tier.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,4 +160,4 @@ New-AzAppServicePlan -ResourceGroupName <resource_group_name> `
160160
## Related content
161161

162162
- [Scale up an app in Azure App Service](manage-scale-up.md)
163-
- [Run a load test to identify performance bottlenecks in a web app](../load-testing/tutorial-identify-bottlenecks-azure-portal.md)
163+
- [Run a load test to identify performance bottlenecks in a web app](../app-testing/load-testing/tutorial-identify-bottlenecks-azure-portal.md)

articles/app-service/app-service-ip-restrictions.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,8 @@ You can add HTTP header filters to any rule. The following HTTP header names are
157157
- `X-Azure-FDID`
158158
- `X-FD-HealthProbe`
159159

160+
++ For more information about the X-FD-HealthProbe, see [HTTP header filtering for site access restriction rules](/overview-access-restrictions#http-header-filtering-for-site-access-restriction-rules).
161+
160162
For each header name, you can add up to eight values separated by commas. The HTTP header filters are evaluated after the rule itself and both conditions must be true for the rule to apply.
161163

162164
### Multi-source rules

articles/app-service/app-service-managed-certificate-changes-july-2025.md

Lines changed: 109 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,118 @@ For a detailed explanation of the underlying changes at DigiCert, refer to [chan
2929
3030
## Impacted scenarios
3131

32-
You can't create or renew ASMCs if:
33-
- Your app is not publicly accessible.
34-
- You use Azure Traffic Manager with nested or external endpoints.
35-
- You rely on `*.trafficmanager.net` domains.
32+
You can't create or renew ASMCs if your:
33+
- Site is not publicly accessible:
34+
- Public accessibility to your app is required. If your app is only accessible through private configurations, such as requiring a client certificate, disabling public network access, using private endpoints, or applying IP restrictions, you can't create or renew a managed certificate.
35+
- Other configurations that restrict public access, such as firewalls, authentication gateways, or custom access policies, may also affect eligibility for managed certificate issuance or renewal.
3636

37-
Existing certificates remain valid until expiration (up to 6 months), but will not renew automatically if your configuration is unsupported.
37+
- Site is an Azure Traffic Manager "nested" or "external" endpoint:
38+
- Only "Azure Endpoints" on Traffic Manager is supported for certificate creation and renewal.
39+
- "Nested endpoints" and "External endpoints" is not supported.
40+
- Site relies on _*.trafficmanager.net_ domains:
41+
- Certificates for _*.trafficmanager.net_ domains is not supported for creation or renewal.
42+
43+
Existing certificates remain valid until expiration (up to six months), but will not renew automatically if your configuration is unsupported.
44+
45+
## Identify impacted resources
46+
You can use [Azure Resource Graph (ARG)](https://portal.azure.com/?feature.customPortal=false#view/HubsExtension/ArgQueryBlade) queries to help identify resources that may be affected under each scenario. These queries are provided as a starting point and may not capture every configuration. Review your environment for any unique setups or custom configurations.
47+
48+
### Scenario 1: Site is not publicly accessible
49+
This ARG query retrieves a list of sites that either have the public network access property disabled or are configured to use client certificates. It then filters for sites that are using App Service Managed Certificates (ASMC) for their custom hostname SSL bindings. These certificates are the ones that could be affected by the upcoming changes. However, this query does not provide complete coverage, as there may be other configurations impacting public access to your app that are not included here. Ultimately, this query serves as a helpful guide for users, but a thorough review of your environment is recommended. You can copy this query, paste it into [ARG Explorer](https://portal.azure.com/?feature.customPortal=false#view/HubsExtension/ArgQueryBlade), and then click "Run query" to view the results for your environment.
50+
51+
```kql
52+
// ARG Query: Identify App Service sites that commonly restrict public access and use ASMC for custom hostname SSL bindings
53+
resources
54+
| where type == "microsoft.web/sites"
55+
// Extract relevant properties for public access and client certificate settings
56+
| extend
57+
publicNetworkAccess = tolower(tostring(properties.publicNetworkAccess)),
58+
clientCertEnabled = tolower(tostring(properties.clientCertEnabled))
59+
// Filter for sites that either have public network access disabled
60+
// or have client certificates enabled (both can restrict public access)
61+
| where publicNetworkAccess == "disabled"
62+
or clientCertEnabled != "false"
63+
// Expand the list of SSL bindings for each site
64+
| mv-expand hostNameSslState = properties.hostNameSslStates
65+
| extend
66+
hostName = tostring(hostNameSslState.name),
67+
thumbprint = tostring(hostNameSslState.thumbprint)
68+
// Only consider custom domains (exclude default *.azurewebsites.net) and sites with an SSL certificate bound
69+
| where tolower(hostName) !endswith "azurewebsites.net" and isnotempty(thumbprint)
70+
// Select key site properties for output
71+
| project siteName = name, siteId = id, siteResourceGroup = resourceGroup, thumbprint, publicNetworkAccess, clientCertEnabled
72+
// Join with certificates to find only those using App Service Managed Certificates (ASMC)
73+
// ASMCs are identified by the presence of the "canonicalName" property
74+
| join kind=inner (
75+
resources
76+
| where type == "microsoft.web/certificates"
77+
| extend
78+
certThumbprint = tostring(properties.thumbprint),
79+
canonicalName = tostring(properties.canonicalName) // Only ASMC uses the "canonicalName" property
80+
| where isnotempty(canonicalName)
81+
| project certName = name, certId = id, certResourceGroup = tostring(properties.resourceGroup), certExpiration = properties.expirationDate, certThumbprint, canonicalName
82+
) on $left.thumbprint == $right.certThumbprint
83+
// Final output: sites with restricted public access and using ASMC for custom hostname SSL bindings
84+
| project siteName, siteId, siteResourceGroup, publicNetworkAccess, clientCertEnabled, thumbprint, certName, certId, certResourceGroup, certExpiration, canonicalName
85+
```
86+
87+
88+
### Scenario 2: Site is an Azure Traffic Manager "nested" or "external" endpoint
89+
If your App Service uses custom domains routed through **Azure Traffic Manager**, you may be impacted if your profile includes **external** or **nested endpoints**. These endpoint types are not supported for certificate issuance or renewal under the new validation.
90+
91+
To help identify affected Traffic Manager profiles across your subscriptions, we recommend using [this PowerShell script](https://github.com/nimccoll/NonAzureTrafficManagerEndpoints) developed by the Microsoft team. It scans for profiles with non-Azure endpoints and outputs a list of potentially impacted resources.
92+
93+
> [!NOTE]
94+
> You need at least Reader access to all subscriptions to run the script successfully.
95+
>
96+
97+
To run the script:
98+
1. Download the [PowerShell script from GitHub](https://github.com/nimccoll/NonAzureTrafficManagerEndpoints).
99+
1. Open PowerShell and navigate to the script location.
100+
1. Run the script.
101+
```
102+
.\TrafficManagerNonAzureEndpoints.ps1
103+
```
104+
105+
### Scenario 3: Site relies on _*.trafficmanager.net_ domains
106+
This ARG query helps you identify App Service Managed Certificates (ASMC) that were issued to _*.trafficmanager.net domains_. In addition, it also checks whether any web apps are currently using those certificates for custom domain SSL bindings. You can copy this query, paste it into [ARG Explorer](https://portal.azure.com/?feature.customPortal=false#view/HubsExtension/ArgQueryBlade), and then click "Run query" to view the results for your environment.
107+
108+
```kql
109+
// ARG Query: Identify App Service Managed Certificates (ASMC) issued to *.trafficmanager.net domains
110+
// Also checks if any web apps are currently using those certificates for custom domain SSL bindings
111+
resources
112+
| where type == "microsoft.web/certificates"
113+
// Extract the certificate thumbprint and canonicalName (ASMCs have a canonicalName property)
114+
| extend
115+
certThumbprint = tostring(properties.thumbprint),
116+
canonicalName = tostring(properties.canonicalName) // Only ASMC uses the "canonicalName" property
117+
// Filter for certificates issued to *.trafficmanager.net domains
118+
| where canonicalName endswith "trafficmanager.net"
119+
// Select key certificate properties for output
120+
| project certName = name, certId = id, certResourceGroup = tostring(properties.resourceGroup), certExpiration = properties.expirationDate, certThumbprint, canonicalName
121+
// Join with web apps to see if any are using these certificates for SSL bindings
122+
| join kind=leftouter (
123+
resources
124+
| where type == "microsoft.web/sites"
125+
// Expand the list of SSL bindings for each site
126+
| mv-expand hostNameSslState = properties.hostNameSslStates
127+
| extend
128+
hostName = tostring(hostNameSslState.name),
129+
thumbprint = tostring(hostNameSslState.thumbprint)
130+
// Only consider bindings for *.trafficmanager.net custom domains with a certificate bound
131+
| where tolower(hostName) endswith "trafficmanager.net" and isnotempty(thumbprint)
132+
// Select key site properties for output
133+
| project siteName = name, siteId = id, siteResourceGroup = resourceGroup, thumbprint
134+
) on $left.certThumbprint == $right.thumbprint
135+
// Final output: ASMCs for *.trafficmanager.net domains and any web apps using them
136+
| project certName, certId, certResourceGroup, certExpiration, canonicalName, siteName, siteId, siteResourceGroup
137+
```
38138

39139
## Mitigation guidance
40140

41141
### Scenario 1: Site is not publicly accessible
42142

43-
Apps that are not accessible from the public internet will not be able to create or renew ASMCs. This includes restrictions via private endpoints, firewalls, IP restrictions, client certificates, authentication gateways, or custom access policies.
143+
Apps that are not accessible from the public internet cannot create or renew ASMCs. These configurations may include restrictions enforced through private endpoints, firewalls, IP filtering, client certificates, authentication gateways, or custom access policies.
44144

45145
We recognize that making applications publicly accessible may conflict with customer security policies or introduce risk. The recommended mitigation is to replace ASMC with a custom certificate and update the TLS/SSL binding for your custom domain.
46146

@@ -91,17 +191,17 @@ Some customers may choose to allowlist [DigiCert’s domain validation IPs](http
91191
For guidance on configuring access restrictions, refer to [set up Azure App Service access restrictions](app-service-ip-restrictions.md).
92192

93193

94-
### Scenario 2: Azure Traffic Manager with nested or external endpoints
194+
### Scenario 2: Site is an Azure Traffic Manager "nested" or "external" endpoint
95195

96-
Only Azure Endpoints are supported. Nested and External endpoints are not supported for ASMC validation.
196+
Only "Azure Endpoints" are supported. "Nested" and "External" endpoints are not supported for ASMC validation.
97197

98198
**Recommended mitigation:**
99199

100200
- Switch to Azure Endpoints or use a custom domain secured with a custom certificate.
101201
- For guidance on using App Service as an Azure Traffic Manager endpoint, refer to [App Service and Traffic Manager Profiles](web-sites-traffic-manager.md#app-service-and-traffic-manager-profiles).
102202

103203

104-
### Scenario 3: Use of trafficmanager.net domains
204+
### Scenario 3: Site relies on _*.trafficmanager.net_ domains
105205

106206
Certificates for `*.trafficmanager.net` domains are not supported. If your app relies on this domain and uses ASMC, you need to remove that dependency and secure your app using a custom domain and certificate.
107207

articles/app-service/manage-scale-per-app.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,4 +139,4 @@ Follow these steps to configure high-density hosting for your apps:
139139

140140
- [What are Azure App Service plans?](overview-hosting-plans.md)
141141
- [App Service Environment overview](environment/overview.md)
142-
- [Tutorial: Run a load test to identify performance bottlenecks in a web app](../load-testing/tutorial-identify-bottlenecks-azure-portal.md)
142+
- [Tutorial: Run a load test to identify performance bottlenecks in a web app](../app-testing/load-testing/tutorial-identify-bottlenecks-azure-portal.md)

articles/app-service/manage-scale-up.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ For a table of service limits, quotas, and constraints, and supported features i
8787

8888
* [Get started with autoscale in Azure](/azure/azure-monitor/autoscale/autoscale-get-started)
8989
* [Configure Premium V3 tier for App Service](app-service-configure-premium-tier.md)
90-
* [Tutorial: Run a load test to identify performance bottlenecks in a web app](../load-testing/tutorial-identify-bottlenecks-azure-portal.md)
90+
* [Tutorial: Run a load test to identify performance bottlenecks in a web app](../app-testing/load-testing/tutorial-identify-bottlenecks-azure-portal.md)
9191
<!-- LINKS -->
9292
[vmsizes]:https://azure.microsoft.com/pricing/details/app-service/
9393
[SQLaccountsbilling]:https://go.microsoft.com/fwlink/?LinkId=234930

0 commit comments

Comments
 (0)