Skip to content

Commit fd331fe

Browse files
committed
Merge branch 'main' of https://github.com/MicrosoftDocs/azure-docs-pr into rolyon-mto-prerequisites-license-requirements
2 parents b2b355e + 26eeeed commit fd331fe

19 files changed

+672
-422
lines changed
Lines changed: 61 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,102 +1,104 @@
11
---
22
title: Tutorial to configure Azure Active Directory B2C with Azure Web Application Firewall
33
titleSuffix: Azure AD B2C
4-
description: Tutorial to configure Azure Active Directory B2C with Azure Web application firewall to protect your applications from malicious attacks
4+
description: Learn to configure Azure AD B2C with Azure Web Application Firewall to protect applications from malicious attacks
55
services: active-directory-b2c
66
author: gargi-sinha
7-
manager: CelesteDG
7+
manager: martinco
88
ms.reviewer: kengaderdus
9-
109
ms.service: active-directory
1110
ms.workload: identity
1211
ms.topic: how-to
13-
ms.date: 08/17/2021
12+
ms.date: 03/08/2023
1413
ms.author: gasinh
1514
ms.subservice: B2C
1615
---
1716

18-
# Tutorial: Configure Azure Web Application Firewall with Azure Active Directory B2C
17+
# Tutorial: Configure Azure Active Directory B2C with Azure Web Application Firewall
1918

20-
In this sample tutorial, learn how to enable [Azure Web Application Firewall (WAF)](https://azure.microsoft.com/services/web-application-firewall/#overview) solution for Azure Active Directory (AD) B2C tenant with custom domain. Azure WAF provides centralized protection of your web applications from common exploits and vulnerabilities.
19+
Learn how to enable the Azure Web Application Firewall (WAF) service for an Azure Active Directory B2C (Azure AD B2C) tenant, with a custom domain. WAF protects web applications from common exploits and vulnerabilities.
2120

22-
>[!NOTE]
23-
>This feature is in public preview.
21+
See, [What is Azure Web Application Firewall?](../web-application-firewall/overview.md)
2422

2523
## Prerequisites
2624

27-
To get started, you'll need:
28-
29-
- An Azure subscription – If you don't have a subscription, you can get a [free account](https://azure.microsoft.com/free/).
30-
31-
- [An Azure AD B2C tenant](tutorial-create-tenant.md) – The authorization server, responsible for verifying the user’s credentials using the custom policies defined in the tenant. It's also known as the identity provider.
25+
To get started, you need:
3226

33-
- [Azure Front Door (AFD)](../frontdoor/index.yml) – Responsible for enabling custom domains for Azure AD B2C tenant.
27+
* An Azure subscription
28+
* If you don't have one, get an [Azure free account](https://azure.microsoft.com/free/)
29+
* **An Azure AD B2C tenant** – authorization server that verifies user credentials using custom policies defined in the tenant
30+
* Also known as the identity provider (IdP)
31+
* See, [Tutorial: Create an Azure Active Directory B2C tenant](tutorial-create-tenant.md)
32+
* **Azure Front Door (AFD)** – enables custom domains for the Azure AD B2C tenant
33+
* See, [Azure Front Door and CDN documentation](../frontdoor/index.yml)
34+
* **WAF** – manages traffic sent to the authorization server
35+
* [Azure Web Application Firewall](https://azure.microsoft.com/services/web-application-firewall/#overview)
3436

35-
- [Azure WAF](https://azure.microsoft.com/services/web-application-firewall/#overview) – Manages all traffic that is sent to the authorization server.
37+
## Custom domains in Azure AD B2C
3638

37-
## Azure AD B2C setup
39+
To use custom domains in Azure AD B2C, use the custom domain features in AFD. See, [Enable custom domains for Azure AD B2C](./custom-domain.md?pivots=b2c-user-flow).
3840

39-
To use custom domains in Azure AD B2C, it's required to use custom domain feature provided by AFD. Learn how to [enable Azure AD B2C custom domains](./custom-domain.md?pivots=b2c-user-flow).
41+
> [!IMPORTANT]
42+
> After you configure the custom domain, see [Test your custom domain](./custom-domain.md?pivots=b2c-custom-policy#test-your-custom-domain).
4043
41-
After custom domain for Azure AD B2C is successfully configured using AFD, [test the custom domain](./custom-domain.md?pivots=b2c-custom-policy#test-your-custom-domain) before proceeding further.
44+
## Enable WAF
4245

43-
## Onboard with Azure WAF
44-
45-
To enable Azure WAF, configure a WAF policy and associate that policy to the AFD for protection.
46+
To enable WAF, configure a WAF policy and associate it with the AFD for protection.
4647

4748
### Create a WAF policy
4849

49-
Create a basic WAF policy with managed Default Rule Set (DRS) in the [Azure portal](https://portal.azure.com).
50-
51-
1. Go to the [Azure portal](https://portal.azure.com). Select **Create a resource** and then search for Azure WAF. Select **Azure Web Application Firewall (WAF)** > **Create**.
50+
Create a WAF policy with Azure-managed default rule set (DRS). See, [Web Application Firewall DRS rule groups and rules](../web-application-firewall/afds/waf-front-door-drs.md).
5251

53-
2. Go to the **Create a WAF policy** page, select the **Basics** tab. Enter the following information, accept the defaults for the remaining settings.
52+
1. Go to the [Azure portal](https://portal.azure.com).
53+
2. Select **Create a resource**.
54+
3. Search for Azure WAF.
55+
4. Select **Azure Web Application Firewall (WAF)**.
56+
5. Select **Create**.
57+
6. Go to the **Create a WAF policy** page.
58+
7. Select the **Basics** tab.
59+
8. For **Policy for**, select **Global WAF (Front Door)**.
60+
9. For **Front Door SKU**, select between **Basic**, **Standard**, or **Premium** SKU.
61+
10. For **Subscription**, select your Front Door subscription name.
62+
11. For **Resource group**, select your Front Door resource group name.
63+
12. For **Policy name**, enter a unique name for your WAF policy.
64+
13. For **Policy state**, select **Enabled**.
65+
14. For **Policy mode**, select **Detection**.
66+
15. Select **Review + create**.
67+
16. Go to the **Association** tab of the Create a WAF policy page.
68+
17. Select **+ Associate a Front Door profile**.
69+
18. For **Front Door**, select your Front Door name associated with Azure AD B2C custom domain.
70+
19. For **Domains**, select the Azure AD B2C custom domains to associate the WAF policy to.
71+
20. Select **Add**.
72+
21. Select **Review + create**.
73+
22. Select **Create**.
5474

55-
| Value | Description |
56-
|:--------|:-------|
57-
| Policy for | Global WAF (Front Door)|
58-
| Front Door SKU | Select between Basic, Standard, or Premium SKU |
59-
|Subscription | Select your Front Door subscription name |
60-
| Resource group | Select your Front Door resource group name |
61-
| Policy name | Enter a unique name for your WAF policy |
62-
| Policy state | Set as Enabled |
63-
| Policy mode | Set as Detection |
75+
### Detection and Prevention modes
6476

65-
3. Select **Review + create**
77+
When you create WAF policy, the policy is in Detection mode. We recommend you don't disable Detection mode. In this mode, WAF doesn't block requests. Instead, requests that match the WAF rules are logged in the WAF logs.
6678

67-
4. Go to the **Association** tab of the Create a WAF policy page, select + **Associate a Front Door profile**, enter the following settings
79+
Learn more: [Azure Web Application Firewall monitoring and logging](../web-application-firewall/afds/waf-front-door-monitor.md)
6880

69-
| Value | Description |
70-
|:----|:------|
71-
| Front Door | Select your Front Door name associated with Azure AD B2C custom domain |
72-
| Domains | Select the Azure AD B2C custom domains you want to associate the WAF policy to|
81+
The following query shows the requests blocked by the WAF policy in the past 24 hours. The details include, rule name, request data, action taken by the policy, and the policy mode.
82+
83+
![Screenshot of blocked requests.](./media/partner-azure-web-application-firewall/blocked-requests-query.png)
7384

74-
5. Select **Add**.
85+
![Screenshot of blocked requests details, such as Rule ID, Action, Mode, etc.](./media/partner-azure-web-application-firewall/blocked-requests-details.png)
7586

76-
6. Select **Review + create**, then select **Create**.
87+
Review the WAF logs to determine if policy rules cause false positives. Then, exclude the WAF rules based on the WAF logs.
7788

78-
### Change policy mode from detection to prevention
89+
Learn more: [Define exclusion rules based on Web Application Firewall logs](../web-application-firewall/afds/waf-front-door-exclusion.md#define-exclusion-based-on-web-application-firewall-logs)
7990

80-
When a WAF policy is created, by default the policy is in Detection mode. In Detection mode, WAF doesn't block any requests, instead, requests matching the WAF rules are logged in the WAF logs. For more information about WAF logging, see [Azure WAF monitoring and logging](../web-application-firewall/afds/waf-front-door-monitor.md).
91+
#### Switching modes
8192

82-
The sample query shows all the requests that were blocked by the WAF policy in the past 24 hours. The details include, rule name, request data, action taken by the policy, and the policy mode.
93+
To see WAF operating, select **Switch to prevention mode**, which changes the mode from Detection to Prevention. Requests that match the rules in the DRS are blocked and logged in the WAF logs.
8394

84-
![Image shows the blocked requests](./media/partner-azure-web-application-firewall/blocked-requests-query.png)
95+
![Screenshot of options and selections for DefaultRuleSet under Web Application Firewall policies.](./media/partner-azure-web-application-firewall/switch-to-prevention-mode.png)
8596

86-
![Image shows the blocked requests details](./media/partner-azure-web-application-firewall/blocked-requests-details.png)
97+
To revert to Detection mode, select **Switch to detection mode**.
8798

88-
It's recommended that you let the WAF capture requests in Detection mode. Review the WAF logs to determine if there are any rules in the policy that are causing false positive results. Then after [exclude the WAF rules based on the WAF logs](../web-application-firewall/afds/waf-front-door-exclusion.md#define-exclusion-based-on-web-application-firewall-logs).
89-
90-
To see WAF in action, use Switch to prevention mode to change from Detection to Prevention mode. All requests that match the rules defined in the Default Rule Set (DRS) are blocked and logged in the WAF logs.
91-
92-
![Image shows the switch to prevention mode](./media/partner-azure-web-application-firewall/switch-to-prevention-mode.png)
93-
94-
In case you want to switch back to the detection mode, you can do so by using Switch to detection mode option.
95-
96-
![Image shows the switch to detection mode](./media/partner-azure-web-application-firewall/switch-to-detection-mode.png)
99+
![Screenshot of DefaultRuleSet with Switch to detection mode.](./media/partner-azure-web-application-firewall/switch-to-detection-mode.png)
97100

98101
## Next steps
99102

100-
- [Azure WAF monitoring and logging](../web-application-firewall/afds/waf-front-door-monitor.md)
101-
102-
- [WAF with Front Door service exclusion lists](../web-application-firewall/afds/waf-front-door-exclusion.md)
103+
* [Azure Web Application Firewall monitoring and logging](../web-application-firewall/afds/waf-front-door-monitor.md)
104+
* [Web Application Firewall (WAF) with Front Door exclusion lists](../web-application-firewall/afds/waf-front-door-exclusion.md)

articles/aks/azure-disk-csi.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,7 @@ The output of the command resembles the following example:
413413
- To learn how to use CSI driver for Azure Files, see [Use Azure Files with CSI driver][azure-files-csi].
414414
- To learn how to use CSI driver for Azure Blob storage, see [Use Azure Blob storage with CSI driver][azure-blob-csi].
415415
- For more information about storage best practices, see [Best practices for storage and backups in Azure Kubernetes Service][operator-best-practices-storage].
416+
- For more information about disk-based storage solutions, see [Disk-based solutions in AKS][disk-based-solutions].
416417

417418
<!-- LINKS - external -->
418419
[access-modes]: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes
@@ -451,3 +452,4 @@ The output of the command resembles the following example:
451452
[enable-on-demand-bursting]: ../virtual-machines/disks-enable-bursting.md?tabs=azure-cli
452453
[az-premium-ssd]: ../virtual-machines/disks-types.md#premium-ssds
453454
[general-purpose-machine-sizes]: ../virtual-machines/sizes-general.md
455+
[disk-based-solutions]: /azure/cloud-adoption-framework/scenarios/app-platform/aks/storage#disk-based-solutions

articles/aks/use-system-pools.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ The following limitations apply when you create and manage AKS clusters that sup
3838

3939
## System and user node pools
4040

41-
For a system node pool, AKS automatically assigns the label **kubernetes.azure.com/mode: system** to its nodes. This causes AKS to prefer scheduling system pods on node pools that contain this label. This label doesn't prevent you from scheduling application pods on system node pools. However, we recommend you isolate critical system pods from your application pods to prevent misconfigured or rogue application pods from accidentally killing system pods.
41+
For a system node pool, AKS automatically assigns the label **kubernetes.azure.com/mode: system** to its nodes. This causes AKS to prefer scheduling system pods on node pools that contain this label. This label doesn't prevent you from scheduling application pods on system node pools. However, we recommend you isolate critical system pods from your application pods to prevent misconfigured or rogue application pods from accidentally killing system pods.
42+
4243
You can enforce this behavior by creating a dedicated system node pool. Use the `CriticalAddonsOnly=true:NoSchedule` taint to prevent application pods from being scheduled on system node pools.
4344

4445
System node pools have the following restrictions:
@@ -61,6 +62,7 @@ You can do the following operations with node pools:
6162
* You can delete system node pools, provided you have another system node pool to take its place in the AKS cluster.
6263
* An AKS cluster may have multiple system node pools and requires at least one system node pool.
6364
* If you want to change various immutable settings on existing node pools, you can create new node pools to replace them. One example is to add a new node pool with a new maxPods setting and delete the old node pool.
65+
* Use [node affinity][node-affinity] to *require* or *prefer* which nodes can be scheduled based on node labels. You can set `key` to `kubernetes.azure.com`, `operator` to `In`, and `values` of either `user` or `system` to your YAML, applying this definition using `kubectl apply -f yourYAML.yaml`.
6466

6567
## Create a new AKS cluster with a system node pool
6668

@@ -104,7 +106,7 @@ New-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -NodeCoun
104106

105107
### [Azure CLI](#tab/azure-cli)
106108

107-
You can add one or more system node pools to existing AKS clusters. It's recommended to schedule your application pods on user node pools, and dedicate system node pools to only critical system pods. This prevents rogue application pods from accidentally killing system pods. Enforce this behavior with the `CriticalAddonsOnly=true:NoSchedule` [taint][aks-taints] for your system node pools.
109+
You can add one or more system node pools to existing AKS clusters. It's recommended to schedule your application pods on user node pools, and dedicate system node pools to only critical system pods. This prevents rogue application pods from accidentally killing system pods. Enforce this behavior with the `CriticalAddonsOnly=true:NoSchedule` [taint][aks-taints] for your system node pools.
108110

109111
The following command adds a dedicated node pool of mode type system with a default count of three nodes.
110112

@@ -143,7 +145,7 @@ $myAKSCluster | Set-AzAksCluster
143145

144146
## Show details for your node pool
145147

146-
You can check the details of your node pool with the following command.
148+
You can check the details of your node pool with the following command.
147149

148150
### [Azure CLI](#tab/azure-cli)
149151

@@ -354,3 +356,4 @@ In this article, you learned how to create and manage system node pools in an AK
354356
[maximum-pods]: configure-azure-cni.md#maximum-pods-per-node
355357
[update-node-pool-mode]: use-system-pools.md#update-existing-cluster-system-and-user-node-pools
356358
[start-stop-nodepools]: /start-stop-nodepools.md
359+
[node-affinity]: operator-best-practices-advanced-scheduler.md#node-affinity

articles/azure-monitor/autoscale/autoscale-multiprofile.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ The example below shows an autoscale setting with a default profile and recurrin
4141

4242
:::image type="content" source="./media/autoscale-multiple-profiles/autoscale-default-recurring-profiles.png" alt-text="A screenshot showing an autoscale setting with default and recurring profile or scale condition":::
4343

44-
In the above example, on Monday after 6 AM, the recurring profile will be used. If the instance count is less than 3, autoscale scales to the new minimum of three. Autoscale continues to use this profile and scales based on CPU% until Monday at 6 PM. At all other times scaling will be done according to the default profile, based on the number of requests. After 6 PM on Monday, autoscale switches to the default profile. If for example, the number of instances at the time is 12, autoscale scales in to 10, which the maximum allowed for the default profile.
44+
In the above example, on Monday after 3 AM, the recurring profile will cease to be used. If the instance count is less than 3, autoscale scales to the new minimum of three. Autoscale continues to use this profile and scales based on CPU% until Monday at 8 PM. At all other times scaling will be done according to the default profile, based on the number of requests. After 8 PM on Monday, autoscale switches to the default profile. If for example, the number of instances at the time is 12, autoscale scales in to 10, which the maximum allowed for the default profile.
4545

4646
## Multiple contiguous profiles
4747
Autoscale transitions between profiles based on their start times. The end time for a given profile is determined by the start time of the following profile.
31.8 KB
Loading

articles/communication-services/quickstarts/email/includes/email-message-status.md

Lines changed: 0 additions & 19 deletions
This file was deleted.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
title: include file
3+
description: include file
4+
author: natekimball-msft
5+
manager: koagbakp
6+
services: azure-communication-services
7+
ms.author: natekimball
8+
ms.date: 03/03/2023
9+
ms.topic: include
10+
ms.service: azure-communication-services
11+
ms.custom: private_preview, event-tier1-build-2022
12+
---
13+
14+
15+
| Status Name | Description |
16+
| ----------- | ------------|
17+
| NotStarted | We're not sending this status from our service at this time. |
18+
| Running | The email send operation is currently in progress and being processed. |
19+
| Succeeded | The email send operation has completed without error and the email is out for delivery. Any detailed status about the email delivery beyond this stage can be obtained either through Azure Monitor or through Azure Event Grid. [Learn how to subscribe to email events](../handle-email-events.md) |
20+
| Failed | The email send operation wasn't successful and encountered an error. The email wasn't sent. The result contains an error object with more details on the reason for failure or cancellation. |
21+
| Canceled | The email send operation was canceled before it could complete. The email wasn't sent. The result contains an error object with more details on the reason for failure or cancellation.|

articles/communication-services/quickstarts/email/includes/send-email-az-cli.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,5 +123,5 @@ az communication email status get --message-id "\<messageId\>"
123123

124124
- Replace "\<messageId\>" with the messageId from the response of the send request.
125125

126-
[!INCLUDE [Email Message Status](./email-message-status.md)]
126+
[!INCLUDE [Email Message Status](./email-operation-status.md)]
127127

0 commit comments

Comments
 (0)