Skip to content

Commit 35b2fb8

Browse files
authored
Merge pull request #196265 from MicrosoftDocs/main
Merge Main to Live, 4 AM
2 parents 269dabc + a36bf6d commit 35b2fb8

File tree

335 files changed

+6952
-3452
lines changed

Some content is hidden

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

335 files changed

+6952
-3452
lines changed

.openpublishing.redirection.defender-for-iot.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
{
22
"redirections": [
3+
{
4+
"source_path_from_root": "/articles/defender-for-iot/organizations/how-to-identify-required-appliances.md",
5+
"redirect_url": "/azure/defender-for-iot/organizations/ot-appliance-sizing",
6+
"redirect_document_id": false
7+
},
38
{
49
"source_path_from_root": "/articles/defender-for-iot/organizations/resources-manage-proprietary-protocols.md",
510
"redirect_url": "/azure/defender-for-iot/organizations/overview#extend-support-to-proprietary-protocols",

articles/active-directory/fundamentals/recover-from-deletions.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,17 @@ This article addresses recovering from soft and hard deletions in your Azure AD
2121

2222
## Monitor for deletions
2323

24-
The [Azure AD Audit Log](../reports-monitoring/concept-audit-logs.md) contains information on all delete operations performed in your tenant. We recommend that you export these logs to a security information and event management (SIEM) tool such as [Microsoft Sentinel](../../sentinel/overview.md). You can also use Microsoft Graph to audit changes and build a custom solution to monitor differences over time. For more information on finding deleted items using Microsoft Graph, see [List deleted items - Microsoft Graph v1.0. ](/graph/api/directory-deleteditems-list?view=graph-rest-1.0&tabs=http)
24+
The [Azure AD Audit Log](../reports-monitoring/concept-audit-logs.md) contains information on all delete operations performed in your tenant. We recommend that you export these logs to a security information and event management (SIEM) tool such as [Microsoft Sentinel](../../sentinel/overview.md). You can also use Microsoft Graph to audit changes and build a custom solution to monitor differences over time. For more information on finding deleted items using Microsoft Graph, see [List deleted items - Microsoft Graph v1.0. ](/graph/api/directory-deleteditems-list?tabs=http)
2525

2626
### Audit log
2727

28-
The Audit Log always records a Delete <object>” event when an object in the tenant is removed from an active state by either a soft or hard deletion.
28+
The Audit Log always records a "Delete \<object\>" event when an object in the tenant is removed from an active state by either a soft or hard deletion.
2929

3030
[![Screenshot of audit log showing deletions](./media/recoverability/delete-audit-log.png)](./media/recoverability/delete-audit-log.png#lightbox)
3131

3232

3333

34-
A delete event for applications, users, and Microsoft 365 Groups is a soft delete. For any other object type, it's a hard delete. Track the occurrence of hard-delete events by comparing Delete <object>” events with the type of object that has been deleted, noting those that do not support soft-delete. In addition, note "Hard Delete <object>" events.
34+
A delete event for applications, users, and Microsoft 365 Groups is a soft delete. For any other object type, it's a hard delete. Track the occurrence of hard-delete events by comparing "Delete \<object\>" events with the type of object that has been deleted, noting those that do not support soft-delete. In addition, note "Hard Delete \<object\>" events.
3535

3636

3737
| Object type | Activity in log| Result |
@@ -126,7 +126,7 @@ For details on restoring users, see the following documentation:
126126

127127
* See [Restore or permanently remove recently deleted user](active-directory-users-restore.md) for restoring in the Azure portal.
128128

129-
* See [Restore deleted item – Microsoft Graph v1.0](%20/graph/api/directory-deleteditems-restore?view=graph-rest-1.0&tabs=http) for restoring with Microsoft Graph.
129+
* See [Restore deleted item – Microsoft Graph v1.0](/graph/api/directory-deleteditems-restore?tabs=http) for restoring with Microsoft Graph.
130130

131131
### Groups
132132

@@ -139,7 +139,7 @@ For details on restoring soft deleted Microsoft 365 Groups, see the following do
139139

140140
* To restore from the Azure portal, see [Restore a deleted Microsoft 365 group. ](../enterprise-users/groups-restore-deleted.md)
141141

142-
* To restore by using Microsoft Graph, see [Restore deleted item – Microsoft Graph v1.0](/graph/api/directory-deleteditems-restore?view=graph-rest-1.0&tabs=http).
142+
* To restore by using Microsoft Graph, see [Restore deleted item – Microsoft Graph v1.0](/graph/api/directory-deleteditems-restore?tabs=http).
143143

144144
### Applications
145145

@@ -189,7 +189,7 @@ Hard deleted items must be recreated and reconfigured. It's best to avoid unwant
189189

190190
Ensure you have a process to frequently review items in the soft delete state and restore them if appropriate. To do so, you should:
191191

192-
* Frequently [list deleted items](/graph/api/directory-deleteditems-list?view=graph-rest-1.0&tabs=http).
192+
* Frequently [list deleted items](/graph/api/directory-deleteditems-list?tabs=http).
193193

194194
* Ensure that you have specific criteria for what should be restored.
195195

articles/active-directory/fundamentals/recoverability-overview.md

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ Create a process of pre-defined communications to make others aware of the issue
105105

106106
Document the state of your tenant and its objects regularly so that in the event of a hard delete or misconfiguration you have a road map to recovery. The following tools can help you in documenting your current state.
107107

108-
- The [Microsoft Graph APIs](https://docs.microsoft.com/graph/overview?view=graph-rest-1.0) can be used to export the current state of many Azure AD configurations.
108+
- The [Microsoft Graph APIs](/graph/overview) can be used to export the current state of many Azure AD configurations.
109109

110110
- You can use the [Azure AD Exporter](https://github.com/microsoft/azureadexporter) to regularly export your configuration settings.
111111

@@ -126,13 +126,13 @@ Graph APIs are highly customizable based on your organizational needs. To implem
126126

127127
| Resource types| Reference links |
128128
| - | - |
129-
| Users, groups, and other directory objects| [directoryObject API](/graph/api/resources/directoryObject?view=graph-rest-1.0) |
130-
| Directory roles| [directoryRole API](/graph/api/resources/directoryrole?view=graph-rest-1.0) |
131-
| Conditional Access policies| [Conditional Access policy API](/graph/api/resources/conditionalaccesspolicy?view=graph-rest-1.0) |
132-
| Devices| [devices API](/graph/api/resources/device?view=graph-rest-1.0) |
133-
| Domains| [domains API](/graph/api/domain-list?view=graph-rest-1.0&tabs=http) |
134-
| Administrative Units| [administrativeUnit API)](/graph/api/resources/administrativeunit?view=graph-rest-1.0) |
135-
| Deleted Items*| [deletedItems API](/graph/api/resources/directory?view=graph-rest-1.0) |
129+
| Users, groups, and other directory objects| [directoryObject API](/graph/api/resources/directoryObject) |
130+
| Directory roles| [directoryRole API](/graph/api/resources/directoryrole) |
131+
| Conditional Access policies| [Conditional Access policy API](/graph/api/resources/conditionalaccesspolicy) |
132+
| Devices| [devices API](/graph/api/resources/device) |
133+
| Domains| [domains API](/graph/api/domain-list?tabs=http) |
134+
| Administrative Units| [administrativeUnit API)](/graph/api/resources/administrativeunit) |
135+
| Deleted Items*| [deletedItems API](/graph/api/resources/directory) |
136136

137137

138138
Securely store these configuration exports with access provided to a limited number of admins.
@@ -167,24 +167,24 @@ The deletion of some objects can cause a ripple effect due to dependencies. For
167167

168168
## Monitoring and data retention
169169

170-
The [Azure AD Audit Log](../reports-monitoring/concept-audit-logs.md) contains information on all delete and configuration operations performed in your tenant. We recommend that you export these logs to a security information and event management (SIEM) tool such as [Microsoft Sentinel](../../sentinel/overview.md). You can also use Microsoft Graph to audit changes, and build a custom solution to monitor differences over time. For more information on finding deleted items using Microsoft Graph, see [List deleted items - Microsoft Graph v1.0 ](/graph/api/directory-deleteditems-list?view=graph-rest-1.0&tabs=http)
170+
The [Azure AD Audit Log](../reports-monitoring/concept-audit-logs.md) contains information on all delete and configuration operations performed in your tenant. We recommend that you export these logs to a security information and event management (SIEM) tool such as [Microsoft Sentinel](../../sentinel/overview.md). You can also use Microsoft Graph to audit changes, and build a custom solution to monitor differences over time. For more information on finding deleted items using Microsoft Graph, see [List deleted items - Microsoft Graph v1.0 ](/graph/api/directory-deleteditems-list?tabs=http)
171171

172172
### Audit logs
173173

174-
The Audit Log always records a Delete <object>” event when an object in the tenant is removed from an active state (either from active to soft-deleted or active to hard-deleted).
174+
The Audit Log always records a "Delete \<object\>" event when an object in the tenant is removed from an active state (either from active to soft-deleted or active to hard-deleted).
175175

176176
:::image type="content" source="media/recoverability/deletions-audit-log.png" alt-text="Screenshot of audit log detail." lightbox="media/recoverability/deletions-audit-log.png":::
177177

178178
A Delete event for applications, users, and Microsoft 365 Groups is a soft delete. For any other object type it's a hard delete.
179179

180-
| | Activity in log| Result |
180+
| Object Type | Activity in log| Result |
181181
| - | - | - |
182182
| Application| Delete application| Soft deleted |
183183
| Application| Hard delete application| Hard deleted |
184184
| User| Delete user| Soft deleted |
185185
| User| Hard delete user| Hard deleted |
186186
| Microsoft 365 Groups| Delete group| Soft deleted |
187-
| Microsoft 365 Group| Hard delete group| Hard deleted |
187+
| Microsoft 365 Groups| Hard delete group| Hard deleted |
188188
| All other objects| Delete “objectType”| Hard deleted |
189189

190190
> [!NOTE]
@@ -203,7 +203,6 @@ There are several Azure Monitor workbooks that can help you to monitor configura
203203
- Directory role and group membership updates for service principals
204204
- Modified federation settings
205205

206-
207206
The [Cross-tenant access activity workbook ](../reports-monitoring/workbook-cross-tenant-access-activity.md)can help you monitor which applications in external tenants your users are accessing, and which applications I your tenant external users are accessing. Use this workbook to look for anomalous changes in either inbound or outbound application access across tenants.
208207

209208
## Operational security

articles/app-service/configure-language-dotnetcore.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,12 +124,23 @@ namespace SomeNamespace
124124

125125
If you configure an app setting with the same name in App Service and in *appsettings.json*, for example, the App Service value takes precedence over the *appsettings.json* value. The local *appsettings.json* value lets you debug the app locally, but the App Service value lets your run the app in production with production settings. Connection strings work in the same way. This way, you can keep your application secrets outside of your code repository and access the appropriate values without changing your code.
126126

127+
::: zone pivot="platform-linux"
128+
> [!NOTE]
129+
> Note the [hierarchical configuration data](/aspnet/core/fundamentals/configuration/#hierarchical-configuration-data) in *appsettings.json* is accessed using the `__` (double underscore) delimiter that's standard on Linux to .NET Core. To override a specific hierarchical configuration setting in App Service, set the app setting name with the same delimited format in the key. you can run the following example in the [Cloud Shell](https://shell.azure.com):
130+
131+
```azurecli-interactive
132+
az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings My__Hierarchical__Config__Data="some value"
133+
```
134+
::: zone-end
135+
136+
::: zone pivot="platform-windows"
127137
> [!NOTE]
128138
> Note the [hierarchical configuration data](/aspnet/core/fundamentals/configuration/#hierarchical-configuration-data) in *appsettings.json* is accessed using the `:` delimiter that's standard to .NET Core. To override a specific hierarchical configuration setting in App Service, set the app setting name with the same delimited format in the key. you can run the following example in the [Cloud Shell](https://shell.azure.com):
129139
130140
```azurecli-interactive
131141
az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings My:Hierarchical:Config:Data="some value"
132142
```
143+
::: zone-end
133144

134145
## Deploy multi-project solutions
135146

articles/app-service/environment/networking.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,9 @@ The normal app access ports inbound are as follows:
7777

7878
You can set route tables without restriction. You can tunnel all of the outbound application traffic from your App Service Environment to an egress firewall device, such as Azure Firewall. In this scenario, the only thing you have to worry about is your application dependencies.
7979

80-
You can put your web application firewall devices, such as Azure Application Gateway, in front of inbound traffic. Doing so exposes specific apps on that App Service Environment. If you want to customize the outbound address of your applications on an App Service Environment, you can add a NAT gateway to your subnet.
80+
You can put your web application firewall devices, such as Azure Application Gateway, in front of inbound traffic. Doing so allows you to expose specific apps on that App Service Environment.
81+
82+
Your application will use one of the default outbound addresses for egress traffic to public endpoints. If you want to customize the outbound address of your applications on an App Service Environment, you can add a NAT gateway to your subnet.
8183

8284
## Private endpoint
8385

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

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,9 @@ This response is the same as the [response for the Azure AD service-to-service a
294294
> [!NOTE]
295295
> When connecting to Azure SQL data sources with [Entity Framework Core](/ef/core/), consider [using Microsoft.Data.SqlClient](/sql/connect/ado-net/sql/azure-active-directory-authentication), which provides special connection strings for managed identity connectivity. For an example, see [Tutorial: Secure Azure SQL Database connection from App Service using a managed identity](tutorial-connect-msi-sql-database.md).
296296
297-
For .NET apps and functions, the simplest way to work with a managed identity is through the [Azure Identity client library for .NET](/dotnet/api/overview/azure/identity-readme?). See the respective documentation headings of the client library for information:
297+
For .NET apps and functions, the simplest way to work with a managed identity is through the [Azure Identity client library for .NET](/dotnet/api/overview/azure/identity-readme?). For detailed guidance, see [Tutorial: Connect to Azure databases from App Service without secrets using a managed identity](tutorial-connect-msi-azure-database.md).
298+
299+
See the respective documentation headings of the client library for information:
298300

299301
- [Add Azure Identity client library to your project](/dotnet/api/overview/azure/identity-readme#getting-started)
300302
- [Access Azure service with a system-assigned identity](/dotnet/api/overview/azure/identity-readme#authenticating-with-defaultazurecredential)
@@ -304,7 +306,9 @@ The linked examples use [`DefaultAzureCredential`](/dotnet/api/overview/azure/id
304306

305307
# [JavaScript](#tab/javascript)
306308

307-
For Node.js apps and JavaScript functions, the simplest way to work with a managed identity is through the [Azure Identity client library for JavaScript](/javascript/api/overview/azure/identity-readme?). See the respective documentation headings of the client library for information:
309+
For Node.js apps and JavaScript functions, the simplest way to work with a managed identity is through the [Azure Identity client library for JavaScript](/javascript/api/overview/azure/identity-readme?). For detailed guidance, see [Tutorial: Connect to Azure databases from App Service without secrets using a managed identity](tutorial-connect-msi-azure-database.md).
310+
311+
See the respective documentation headings of the client library for information:
308312

309313
- [Add Azure Identity client library to your project](/javascript/api/overview/azure/identity-readme#install-the-package)
310314
- [Access Azure service with a system-assigned identity](/javascript/api/overview/azure/identity-readme#authenticating-with-defaultazurecredential)
@@ -316,7 +320,9 @@ For more code examples of the Azure Identity client library for JavaScript, see
316320

317321
# [Python](#tab/python)
318322

319-
For Python apps and functions, the simplest way to work with a managed identity is through the [Azure Identity client library for Python](/python/api/overview/azure/identity-readme). See the respective documentation headings of the client library for information:
323+
For Python apps and functions, the simplest way to work with a managed identity is through the [Azure Identity client library for Python](/python/api/overview/azure/identity-readme). For detailed guidance, see [Tutorial: Connect to Azure databases from App Service without secrets using a managed identity](tutorial-connect-msi-azure-database.md).
324+
325+
See the respective documentation headings of the client library for information:
320326

321327
- [Add Azure Identity client library to your project](/python/api/overview/azure/identity-readme#getting-started)
322328
- [Access Azure service with a system-assigned identity](/python/api/overview/azure/identity-readme#authenticating-with-defaultazurecredential)
@@ -326,7 +332,9 @@ The linked examples use [`DefaultAzureCredential`](/python/api/overview/azure/id
326332

327333
# [Java](#tab/java)
328334

329-
For Java apps and functions, the simplest way to work with a managed identity is through the [Azure Identity client library for Java](/java/api/overview/azure/identity-readme). See the respective documentation headings of the client library for information:
335+
For Java apps and functions, the simplest way to work with a managed identity is through the [Azure Identity client library for Java](/java/api/overview/azure/identity-readme). For detailed guidance, see [Tutorial: Connect to Azure databases from App Service without secrets using a managed identity](tutorial-connect-msi-azure-database.md).
336+
337+
See the respective documentation headings of the client library for information:
330338

331339
- [Add Azure Identity client library to your project](/java/api/overview/azure/identity-readme#include-the-package)
332340
- [Access Azure service with a system-assigned identity](/java/api/overview/azure/identity-readme#authenticating-with-defaultazurecredential)

articles/app-service/overview-vnet-integration.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,7 @@ You can't use gateway-required virtual network integration:
187187
* From a Linux app.
188188
* From a [Windows container](./quickstart-custom-container.md).
189189
* To access service endpoint-secured resources.
190+
* To resolve App Settings referencing a network protected Key Vault.
190191
* With a coexistence gateway that supports both ExpressRoute and point-to-site or site-to-site VPNs.
191192

192193
### Set up a gateway in your Azure virtual network

articles/app-service/toc.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,10 @@
7878
items:
7979
- name: Connect to databases
8080
items:
81-
- name: .NET
81+
- name: .NET with SQL DB
8282
href: tutorial-connect-msi-sql-database.md
83+
- name: Azure databases
84+
href: tutorial-connect-msi-azure-database.md
8385
- name: Connect to services
8486
items:
8587
- name: .NET

0 commit comments

Comments
 (0)