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/active-directory/external-identities/self-service-sign-up-add-api-connector.md
+9-9Lines changed: 9 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ services: active-directory
5
5
ms.service: active-directory
6
6
ms.subservice: B2B
7
7
ms.topic: article
8
-
ms.date: 07/13/2021
8
+
ms.date: 01/16/2023
9
9
10
10
ms.author: mimart
11
11
author: msmimart
@@ -30,13 +30,13 @@ To use an [API connector](api-connectors-overview.md), you first create the API
30
30
3. In the left menu, select **External Identities**.
31
31
4. Select **All API connectors**, and then select **New API connector**.
32
32
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.":::
34
34
35
35
5. Provide a display name for the call. For example, **Check approval status**.
36
36
6. Provide the **Endpoint URL** for the API call.
37
37
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).
38
38
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.":::
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.
191
191
192
192
### Expected response types from the web API at this step
193
193
@@ -212,7 +212,7 @@ A blocking response exits the user flow. It can be purposely issued by the API t
212
212
See an example of a [blocking response](#example-of-a-blocking-response).
213
213
214
214
### 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.
216
216
217
217
See an example of a [validation-error response](#example-of-a-validation-error-response).
| version | String | Yes | The version of your API. |
238
238
| action | String | Yes | Value must be `Continue`. |
239
239
|\<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. |
"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.",
252
252
}
253
253
254
254
```
@@ -305,7 +305,7 @@ Ensure that:
305
305
* Your API implements an authentication method outlined in [secure your API Connector](self-service-sign-up-secure-api-connector.md).
306
306
* Your API responds as quickly as possible to ensure a fluid user experience.
307
307
* 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)
309
309
* Ensure high availability of your API.
310
310
* Monitor and optimize performance of downstream APIs, databases, or other dependencies of your API.
311
311
* 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).
@@ -158,7 +158,7 @@ Next, you enable the built-in CORS support in App Service for your API.
158
158
159
159

160
160
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.
162
162
163
163
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.
164
164
@@ -170,13 +170,7 @@ In the Cloud Shell, enable CORS to your client's URL by using the [`az webapp co
170
170
az webapp cors add --resource-group myResourceGroup --name <app-name> --allowed-origins 'http://localhost:5000'
171
171
```
172
172
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 '*'`.
180
174
181
175
### Test CORS again
182
176
@@ -186,7 +180,13 @@ Refresh the browser app at `http://localhost:5000`. The error message in the **C
186
180
187
181
Congratulations, you're running an API in Azure App Service with CORS support.
188
182
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
190
190
191
191
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).
192
192
@@ -197,6 +197,26 @@ The built-in App Service CORS feature does not have options to allow only specif
197
197
>
198
198
>
199
199
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> \
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).
Copy file name to clipboardExpand all lines: articles/azure-monitor/logs/data-retention-archive.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,6 +30,8 @@ You can access archived data by [running a search job](search-jobs.md) or [resto
30
30
> [!NOTE]
31
31
> The archive period can only be set at the table level, not at the workspace level.
32
32
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
+
33
35
## Configure the default workspace retention policy
34
36
35
37
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
215
217
216
218
## Purge retained data
217
219
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
-
220
220
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.
221
221
222
222
Workspaces with a 30-day retention policy might keep data for 31 days if you don't set the `immediatePurgeDataOn30Days` parameter.
Copy file name to clipboardExpand all lines: articles/azure-monitor/logs/logs-data-export.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -43,7 +43,7 @@ Log Analytics workspace data export continuously exports data that's sent to you
43
43
- Currently, data export isn't supported in China.
44
44
45
45
## 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.
47
47
48
48
## Pricing model
49
49
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).
Copy file name to clipboardExpand all lines: articles/defender-for-cloud/continuous-export.md
+41-1Lines changed: 41 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ description: Learn how to configure continuous export of security alerts and rec
4
4
author: bmansheim
5
5
ms.author: benmansheim
6
6
ms.topic: how-to
7
-
ms.date: 11/30/2022
7
+
ms.date: 01/19/2023
8
8
---
9
9
# Continuously export Microsoft Defender for Cloud data
10
10
@@ -182,6 +182,46 @@ To export data to an Azure Event hub or Log Analytics workspace in a different t
182
182
183
183
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).
184
184
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
+
185
225
## View exported alerts and recommendations in Azure Monitor
186
226
187
227
You might also choose to view exported Security Alerts and/or recommendations in [Azure Monitor](../azure-monitor/alerts/alerts-overview.md).
0 commit comments