Skip to content

Commit c9218db

Browse files
committed
Merge branch 'main' of https://github.com/MicrosoftDocs/azure-docs-pr into WI56094-countinuous-export
2 parents 2e35c3e + eea40c2 commit c9218db

19 files changed

+134
-55
lines changed
Loading
12.6 KB
Loading

articles/active-directory/external-identities/self-service-sign-up-add-api-connector.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ services: active-directory
55
ms.service: active-directory
66
ms.subservice: B2B
77
ms.topic: article
8-
ms.date: 07/13/2021
8+
ms.date: 01/16/2023
99

1010
ms.author: mimart
1111
author: msmimart
@@ -30,13 +30,13 @@ To use an [API connector](api-connectors-overview.md), you first create the API
3030
3. In the left menu, select **External Identities**.
3131
4. Select **All API connectors**, and then select **New API connector**.
3232

33-
:::image type="content" source="media/self-service-sign-up-add-api-connector/api-connector-new.png" alt-text="Providing the basic configuration like target URL and display name for an API connector during the creation experience.":::
33+
:::image type="content" source="media/self-service-sign-up-add-api-connector/api-connector-new.png" alt-text="Screenshot of adding a new API connector to External Identities.":::
3434

3535
5. Provide a display name for the call. For example, **Check approval status**.
3636
6. Provide the **Endpoint URL** for the API call.
3737
7. Choose the **Authentication type** and configure the authentication information for calling your API. Learn how to [Secure your API Connector](self-service-sign-up-secure-api-connector.md).
3838

39-
:::image type="content" source="media/self-service-sign-up-add-api-connector/api-connector-config.png" alt-text="Providing authentication configuration for an API connector during the creation experience.":::
39+
:::image type="content" source="media/self-service-sign-up-add-api-connector/api-connector-config.png" alt-text="Screenshot of configuring an API connector.":::
4040

4141
8. Select **Save**.
4242

@@ -129,7 +129,7 @@ Content-type: application/json
129129
}
130130
```
131131

132-
The exact claims sent to the API depends on which information is provided by the identity provider. 'email' is always sent.
132+
The exact claims sent to the API depend on which information is provided by the identity provider. 'email' is always sent.
133133

134134
### Expected response types from the web API at this step
135135

@@ -187,7 +187,7 @@ Content-type: application/json
187187
"ui_locales":"en-US"
188188
}
189189
```
190-
The exact claims sent to the API depends on which information is collected from the user or is provided by the identity provider.
190+
The exact claims sent to the API depend on which information is collected from the user or is provided by the identity provider.
191191

192192
### Expected response types from the web API at this step
193193

@@ -212,7 +212,7 @@ A blocking response exits the user flow. It can be purposely issued by the API t
212212
See an example of a [blocking response](#example-of-a-blocking-response).
213213

214214
### Validation-error response
215-
When the API responds with a validation-error response, the user flow stays on the attribute collection page and a `userMessage` is displayed to the user. The user can then edit and resubmit the form. This type of response can be used for input validation.
215+
When the API responds with a validation-error response, the user flow stays on the attribute collection page, and a `userMessage` is displayed to the user. The user can then edit and resubmit the form. This type of response can be used for input validation.
216216

217217
See an example of a [validation-error response](#example-of-a-validation-error-response).
218218

@@ -237,7 +237,7 @@ Content-type: application/json
237237
| version | String | Yes | The version of your API. |
238238
| action | String | Yes | Value must be `Continue`. |
239239
| \<builtInUserAttribute> | \<attribute-type> | No | Values can be stored in the directory if they selected as a **Claim to receive** in the API connector configuration and **User attributes** for a user flow. Values can be returned in the token if selected as an **Application claim**. |
240-
| \<extension\_{extensions-app-id}\_CustomAttribute> | \<attribute-type> | No | The claim does not need to contain `_<extensions-app-id>_`, it is *optional*. Returned values can overwrite values collected from a user. |
240+
| \<extension\_{extensions-app-id}\_CustomAttribute> | \<attribute-type> | No | The claim doesn't need to contain `_<extensions-app-id>_`, it's *optional*. Returned values can overwrite values collected from a user. |
241241

242242
### Example of a blocking response
243243

@@ -248,7 +248,7 @@ Content-type: application/json
248248
{
249249
"version": "1.0.0",
250250
"action": "ShowBlockPage",
251-
"userMessage": "There was a problem with your request. You are not able to sign up at this time.",
251+
"userMessage": "There was an error with your request. Please try again or contact support.",
252252
}
253253
254254
```
@@ -305,7 +305,7 @@ Ensure that:
305305
* Your API implements an authentication method outlined in [secure your API Connector](self-service-sign-up-secure-api-connector.md).
306306
* Your API responds as quickly as possible to ensure a fluid user experience.
307307
* Azure AD will wait for a maximum of *20 seconds* to receive a response. If none is received, it will make *one more attempt (retry)* at calling your API.
308-
* If using a serverless function or scalable web service, use a hosting plan that keeps the API "awake" or "warm" in production. For Azure Functions, it's recommended to use at minimum the [Premium plan](../../azure-functions/functions-scale.md)
308+
* If using a serverless function or scalable web service, use a hosting plan that keeps the API "awake" or "warm" in production. For Azure Functions, it's recommended to use at minimum the [Premium plan](../../azure-functions/functions-scale.md#overview-of-plans)
309309
* Ensure high availability of your API.
310310
* Monitor and optimize performance of downstream APIs, databases, or other dependencies of your API.
311311
* Your endpoints must comply with the Azure AD TLS and cipher security requirements. For more information, see [TLS and cipher suite requirements](../../active-directory-b2c/https-cipher-tls-requirements.md).

articles/app-service/app-service-web-tutorial-rest-api.md

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Learn how Azure App Service helps you host your RESTful APIs with C
44
ms.assetid: a820e400-06af-4852-8627-12b3db4a8e70
55
ms.devlang: csharp
66
ms.topic: tutorial
7-
ms.date: 04/28/2020
7+
ms.date: 01/31/2023
88
ms.custom: "devx-track-csharp, mvc, devcenter, seo-javascript-september2019, seo-javascript-october2019, seodec18, devx-track-azurecli"
99
---
1010

@@ -158,7 +158,7 @@ Next, you enable the built-in CORS support in App Service for your API.
158158
159159
![CORS error in browser client](./media/app-service-web-tutorial-rest-api/azure-app-service-cors-error.png)
160160
161-
Because of the domain mismatch between the browser app (`http://localhost:5000`) and remote resource (`http://<app_name>.azurewebsites.net`), and the fact that your API in App Service is not sending the `Access-Control-Allow-Origin` header, your browser has prevented cross-domain content from loading in your browser app.
161+
The domain mismatch between the browser app (`http://localhost:5000`) and remote resource (`http://<app_name>.azurewebsites.net`) is recognized by your browser as a cross-origin resource request. Also, the fact that your REST API the App Service app is not sending the `Access-Control-Allow-Origin` header, the browser has prevented cross-domain content from loading.
162162
163163
In production, your browser app would have a public URL instead of the localhost URL, but the way to enable CORS to a localhost URL is the same as a public URL.
164164
@@ -170,13 +170,7 @@ In the Cloud Shell, enable CORS to your client's URL by using the [`az webapp co
170170
az webapp cors add --resource-group myResourceGroup --name <app-name> --allowed-origins 'http://localhost:5000'
171171
```
172172

173-
You can set more than one client URL in `properties.cors.allowedOrigins` (`"['URL1','URL2',...]"`). You can also enable all client URLs with `"['*']"`.
174-
175-
> [!NOTE]
176-
> If your app requires credentials such as cookies or authentication tokens to be sent, the browser may require the `ACCESS-CONTROL-ALLOW-CREDENTIALS` header on the response. To enable this in App Service, set `properties.cors.supportCredentials` to `true` in your CORS config. This cannot be enabled when `allowedOrigins` includes `'*'`.
177-
178-
> [!NOTE]
179-
> Specifying `AllowAnyOrigin` and `AllowCredentials` is an insecure configuration and can result in cross-site request forgery. The CORS service returns an invalid CORS response when an app is configured with both methods.
173+
You can add multiple allowed origins by running the command multiple times or by adding a comma-separate list in `--allowed-origins`. To allow all origins, use `--allowed-origins '*'`.
180174

181175
### Test CORS again
182176

@@ -186,7 +180,13 @@ Refresh the browser app at `http://localhost:5000`. The error message in the **C
186180

187181
Congratulations, you're running an API in Azure App Service with CORS support.
188182
189-
## App Service CORS vs. your CORS
183+
## Frequently asked questions
184+
185+
- [App Service CORS vs. your CORS](#app-service-cors-vs-your-cors)
186+
- [How do I set allowed origins to a wildcard subdomain?](#how-do-i-set-allowed-origins-to-a-wildcard-subdomain)
187+
- [How do I enable the ACCESS-CONTROL-ALLOW-CREDENTIALS header on the response?](#how-do-i-enable-the-access-control-allow-credentials-header-on-the-response)
188+
189+
#### App Service CORS vs. your CORS
190190
191191
You can use your own CORS utilities instead of App Service CORS for more flexibility. For example, you may want to specify different allowed origins for different routes or methods. Since App Service CORS lets you specify one set of accepted origins for all API routes and methods, you would want to use your own CORS code. See how ASP.NET Core does it at [Enabling Cross-Origin Requests (CORS)](/aspnet/core/security/cors).
192192
@@ -197,6 +197,26 @@ The built-in App Service CORS feature does not have options to allow only specif
197197
>
198198
>
199199

200+
#### How do I set allowed origins to a wildcard subdomain?
201+
202+
A wildcard subdomain like `*.contoso.com` is more restrictive than the wildcard origin `*`. However, the app's CORS management page in the Azure portal doesn't let you set a wildcard subdomain as an allowed origin. However, you can do it using the Azure CLI, like so:
203+
204+
```azurecli-interactive
205+
az webapp cors add --resource-group <group-name> --name <app-name> --allowed-origins 'https://*.contoso.com'
206+
```
207+
208+
#### How do I enable the ACCESS-CONTROL-ALLOW-CREDENTIALS header on the response?
209+
210+
If your app requires credentials such as cookies or authentication tokens to be sent, the browser may require the `ACCESS-CONTROL-ALLOW-CREDENTIALS` header on the response. To enable this in App Service, set `properties.cors.supportCredentials` to `true`.
211+
212+
```azurecli-interactive
213+
az resource update --name web --resource-group <group-name> \
214+
--namespace Microsoft.Web --resource-type config \
215+
--parent sites/<app-name> --set properties.cors.supportCredentials=true
216+
```
217+
218+
This operation is not allowed when allowed origins include the wildcard origin `'*'`. Specifying `AllowAnyOrigin` and `AllowCredentials` is an insecure configuration and can result in cross-site request forgery. To allow credentials, try replacing the wildcard origin with [wildcard subdomains](#how-do-i-set-allowed-origins-to-a-wildcard-subdomain).
219+
200220
[!INCLUDE [cli-samples-clean-up](../../includes/cli-samples-clean-up.md)]
201221

202222
<a name="next"></a>

articles/azure-monitor/app/java-in-process-agent.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -520,7 +520,7 @@ Structured logging (attaching custom dimensions to your logs) can be accomplishe
520520
<dependency>
521521
<groupId>com.microsoft.azure</groupId>
522522
<artifactId>applicationinsights-core</artifactId>
523-
<version>3.4.7</version>
523+
<version>3.4.8</version>
524524
</dependency>
525525
```
526526

articles/azure-monitor/app/java-spring-boot.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ To enable Application Insights Java programmatically, you must add the following
4545
<dependency>
4646
<groupId>com.microsoft.azure</groupId>
4747
<artifactId>applicationinsights-runtime-attach</artifactId>
48-
<version>3.4.3</version>
48+
<version>3.4.8</version>
4949
</dependency>
5050
```
5151

articles/azure-monitor/logs/data-retention-archive.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ You can access archived data by [running a search job](search-jobs.md) or [resto
3030
> [!NOTE]
3131
> The archive period can only be set at the table level, not at the workspace level.
3232
33+
When you shorten an existing retention policy, it takes 30 days for Azure Monitor to remove data, to prevent data loss in error configuration, and let you revert it. You can [purge data](#purge-retained-data) immediately when required.
34+
3335
## Configure the default workspace retention policy
3436

3537
You can set the workspace default retention policy in the Azure portal to 30, 31, 60, 90, 120, 180, 270, 365, 550, and 730 days. You can set a different policy for specific tables by [configuring the retention and archive policy at the table level](#set-retention-and-archive-policy-by-table). If you're on the *free* tier, you'll need to upgrade to the paid tier to change the data retention period.
@@ -215,8 +217,6 @@ Get-AzOperationalInsightsTable -ResourceGroupName ContosoRG -WorkspaceName Conto
215217

216218
## Purge retained data
217219

218-
When you shorten an existing retention policy, it takes several days for Azure Monitor to remove data that you no longer want to keep.
219-
220220
If you set the data retention policy to 30 days, you can purge older data immediately by using the `immediatePurgeDataOn30Days` parameter in Azure Resource Manager. The purge functionality is useful when you need to remove personal data immediately. The immediate purge functionality isn't available through the Azure portal.
221221

222222
Workspaces with a 30-day retention policy might keep data for 31 days if you don't set the `immediatePurgeDataOn30Days` parameter.

articles/azure-monitor/logs/logs-data-export.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ Log Analytics workspace data export continuously exports data that's sent to you
4343
- Currently, data export isn't supported in China.
4444

4545
## Data completeness
46-
Data export is optimized for moving large data volumes to your destinations. In certain retry conditions, it can include a fraction of duplicated records. The export operation might fail when ingress limits are reached. For more information, see [Create or update a data export rule](#create-or-update-a-data-export-rule). In such a case, a retry continues for up to 30 minutes. If the destination is still unavailable, data will be discarded until the destination becomes available.
46+
Data export is optimized for moving large data volumes to your destinations. The export operation might fail when destinations ingress limits are reached, and a retry continues for up to 12 hours. For more information, see [Create or update a data export rule](#create-or-update-a-data-export-rule) for limits and recommended alerts. If the destination is still unavailable, data is discarded. In certain retry conditions, retry can cause a fraction of duplicated records.
4747

4848
## Pricing model
4949
Data export charges are based on the volume of data exported measured in bytes. The size of data exported by Log Analytics Data Export is the number of bytes in the exported JSON-formatted data. Data volume is measured in GB (10^9 bytes).

articles/defender-for-cloud/continuous-export.md

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Learn how to configure continuous export of security alerts and rec
44
author: bmansheim
55
ms.author: benmansheim
66
ms.topic: how-to
7-
ms.date: 11/30/2022
7+
ms.date: 01/19/2023
88
---
99
# Continuously export Microsoft Defender for Cloud data
1010

@@ -182,6 +182,46 @@ To export data to an Azure Event hub or Log Analytics workspace in a different t
182182

183183
You can also configure export to another tenant through the REST API. For more information, see the automations [REST API](/rest/api/defenderforcloud/automations/create-or-update?tabs=HTTP).
184184

185+
## Continuously export to an Event Hub behind a firewall
186+
187+
You can enable continuous export as a trusted service, so that you can send data to an Event Hub that has an Azure Firewall enabled.
188+
189+
**To grant access to continuous export as a trusted service**:
190+
191+
1. Sign in to the [Azure portal](https://portal.azure.com).
192+
193+
1. Navigate to **Microsoft Defender for Cloud** > **Environmental settings**.
194+
195+
1. Select the relevant resource.
196+
197+
1. Select **Continuous export**.
198+
199+
1. Select **Export as a trusted service**.
200+
201+
:::image type="content" source="media/continuous-export/export-as-trusted.png" alt-text="Screenshot that shows where the checkbox is located to select export as trusted service.":::
202+
203+
You'll now need to add the relevant role assignment on the destination Event Hub.
204+
205+
**To add the relevant role assignment on the destination Event Hub**:
206+
207+
1. Navigate to the selected Event Hub.
208+
209+
1. Select **Access Control** > **Add role assignment**
210+
211+
:::image type="content" source="media/continuous-export/add-role-assignment.png" alt-text="Screenshot that shows where the add role assignment button is found." lightbox="media/continuous-export/add-role-assignment.png":::
212+
213+
1. Select **Azure Event Hubs Data Sender**.
214+
215+
1. Select the **Members** tab.
216+
217+
1. Select **+ Select members**.
218+
219+
1. Search for and select **Windows Azure Security Resource Provider**.
220+
221+
:::image type="content" source="media/continuous-export/windows-security-resource.png" alt-text="Screenshot that shows you where to enter and search for Windows Azure Security Resource Provider." lightbox="media/continuous-export/windows-security-resource.png":::
222+
223+
1. Select **Review + assign**.
224+
185225
## View exported alerts and recommendations in Azure Monitor
186226

187227
You might also choose to view exported Security Alerts and/or recommendations in [Azure Monitor](../azure-monitor/alerts/alerts-overview.md).
76 KB
Loading

0 commit comments

Comments
 (0)